What “flatting” is (and why it matters)
Flatting is the technical step where you create clean, closed regions of base color (often called flats) for every major shape in your illustration: skin, hair, shirt, pants, props, and background elements. The goal is not rendering or lighting yet—it is building a reliable “map” of color areas that makes later shading and highlighting fast and controlled.
Good flats have three qualities:
- Coverage: no unpainted gaps along edges.
- Separation: each material/part is its own region so you can shade it independently.
- Consistency: edges are clean and predictable (no fuzzy halos unless you intentionally want them).
Quick Fill essentials: Fill Tool behavior and the settings that matter
Fill Tool modes: what it “looks at” when filling
Krita’s Fill Tool can fill based on different references. The exact names can vary slightly by version, but the idea is consistent: you choose whether the fill should consider only the current layer or use other layers as boundaries.
- Current layer only: useful when your flats are already enclosed on the same layer.
- Reference other layers / all layers: useful when you want the lineart layer to act as the boundary while you fill on a separate flats layer.
Practical tip: keep your lineart above your flats. Then set the Fill Tool to reference the lineart as the boundary while painting on the flats layer underneath.
Threshold: controlling “how far” the fill spreads
Threshold determines how similar neighboring pixels must be to be considered the same area. It mainly matters when you’re filling areas that have anti-aliased edges or slightly varied tones (for example, gray lineart or textured scans).
- Listen to the audio with the screen off.
- Earn a certificate upon completion.
- Over 5000 courses for you to explore!
Download the app
- Too low: the fill stops early, leaving tiny unfilled gaps near edges.
- Too high: the fill can leak past boundaries, especially if the lineart is light or broken.
Workflow: start with a modest threshold, click-fill, then adjust up or down until the fill reliably reaches the edge without leaking.
Anti-aliasing: clean edges vs. crisp edges
Anti-aliasing smooths the edge of the filled region. For flats, you usually want anti-aliasing on so edges don’t look jagged. However, if you are building pixel-art-like flats or you need extremely crisp edges for later selections, you may prefer it off.
Rule of thumb: keep it on for most illustrations; turn it off only when you have a specific reason.
Grow/Shrink (or “expand”) the fill to avoid halos
Even with correct threshold, you can sometimes get a thin “halo” of unfilled pixels between lineart and flats, especially if the lineart is anti-aliased. If your Fill Tool offers an option to grow/expand the filled area by a pixel or two, use it to push the flat color slightly under the lineart.
- Expand by 1–2 px: common for clean lineart at typical canvas sizes.
- Expand too much: can cause overlaps between neighboring flats if they touch closely.
Accurate filling with alpha: “Selection from Layer” and filling inside boundaries
When you already have a shape painted (even roughly), the most reliable way to refine it is to use the layer’s transparency as a selection. This avoids leaks entirely because you’re filling only where pixels already exist.
Step-by-step: fill using a layer’s alpha
- Make sure the target shape exists on its own flats layer (for example, “Hair Flats”). It can be messy at first.
- Create a selection from that layer’s opaque pixels (often available as “Select Opaque” / “Alpha to Selection” / “Select from Layer”).
- With the selection active, use the Fill Tool or a large brush to replace the color cleanly.
- Deselect and check edges.
This method is excellent for recoloring and for enforcing clean, consistent base colors after you’ve blocked things in.
Step-by-step: use “inherit alpha” or “lock transparency” to shade later
Once flats are correct, you want shading to stay inside them.
- Lock Transparency (Alpha Lock): paint directly on the flats layer; new strokes only affect existing pixels.
- Alpha Inheritance (clip to parent): create a new layer above the flats and set it to inherit alpha from the flats layer below; paint shading on the new layer non-destructively.
Practical recommendation: use Alpha Inheritance for shading so you can change blending modes, opacity, or erase shading without damaging the flats.
Colorize Mask basics: fast flats when lineart is clean
A Colorize Mask can speed up flatting by letting you place color “hints” inside regions, then having Krita compute the filled areas based on line boundaries. It works best when your lineart is closed (no big gaps) and reasonably dark/consistent.
When to use it
- Good for: characters with many enclosed shapes (hair segments, clothing panels), clean inked lineart.
- Less ideal for: painterly sketches, very broken lines, heavy texture, or open silhouettes without clear boundaries.
Step-by-step: a simple Colorize Mask flat pass
- Keep your lineart on its own layer above everything.
- Add a Colorize Mask (on the lineart layer or a dedicated layer, depending on your workflow).
- Paint color hints inside each region (skin, hair, shirt). Don’t worry about perfect edges—just keep hints clearly inside the intended area.
- Update/preview the mask result to see computed flats.
- Fix problem areas by adding more hints near boundaries or closing gaps in lineart where needed.
- Convert the result to paint layers (or export the flats) so you can use them like normal flats layers for shading.
Quality check: zoom in around tight corners (fingers, collar edges). If you see mis-fills, add a small hint closer to the boundary or repair the line gap.
Organizing flats: groups, naming, and separation for speed
Flats become most useful when they are organized so you can target parts instantly.
Recommended structure
- Group: Character Flats
- Skin_Flat
- Hair_Flat
- Eyes_Flat
- Top_Flat
- Pants_Flat
- Shoes_Flat
- Accessories_Flat
- Group: Background Flats
- Sky_Flat
- Ground_Flat
- Buildings_Flat (or Trees_Flat, etc.)
- Foreground_Elements_Flat
Keep each major material on its own layer when possible. If you must combine, combine only parts that will always be shaded together.
A simple palette workflow: limited colors, faster decisions
Use palette dockers to keep colors consistent
Create a dedicated palette for the illustration and keep it visible while flatting. Add swatches for each material (skin base, hair base, cloth base, background base). This prevents “almost the same” colors from creeping in.
Harmony tools: quick variations without losing cohesion
Color harmony tools help you generate related colors (for example, slightly warmer skin or a cooler shadow base) while staying consistent. Use them to derive a small set of variations from your base colors rather than picking random new hues.
Sampling discipline: sample from your flats, not from the canvas chaos
- Sample from the flats layers to keep your base colors consistent.
- Avoid sampling from anti-aliased edges (you may pick a blended edge color by accident).
- Keep a limited palette: for a beginner-friendly project, aim for ~8–15 base swatches total (character + background).
Practical assignment: create clean flats for a character + background
Goal
Create complete flats for a simple character and a simple background, organized into two groups, with no gaps, and prepared for shading using alpha inheritance or locked transparency.
Step-by-step checklist
- Create two groups: “Character Flats” and “Background Flats”.
- Add one flats layer per material (Skin_Flat, Hair_Flat, Shirt_Flat, etc.).
- Fill each region efficiently:
- Use the Fill Tool referencing lineart as boundary for closed shapes.
- Adjust threshold until edges fill without leaking.
- Enable anti-aliasing for smooth edges.
- If available, expand fill slightly (1–2 px) to tuck color under lineart.
- Fix tricky areas:
- For tiny gaps or open lines, switch to manual painting to close the boundary, then fill again.
- For recolors, use Selection from Layer/Alpha and refill cleanly.
- Verify no gaps:
- Temporarily hide the lineart layer and inspect edges at 100–200% zoom.
- Add a temporary bright “check layer” behind everything (e.g., neon green) to reveal unpainted holes.
- Prepare for shading:
- Create a new layer above each flat (e.g., Skin_Shadow) and enable alpha inheritance so shading stays inside.
- Alternatively, enable lock transparency on the flat layer if you prefer painting directly.
Self-test (pass/fail)
| Check | Pass condition |
|---|---|
| Edge coverage | No visible white/transparent slivers when lineart is hidden |
| No leaks | Neighboring regions do not spill into each other |
| Organization | Character and background flats are in separate groups with clear names |
| Shading-ready | Each material has alpha inheritance shading layers or alpha lock enabled |