Flat Coloring

So you’ve got a cool black on white drawing, and now you want to color it! The thing we’ll aim for in this tutorial is to get your lineart colored in with flat colors. So no shading just yet. We’ll be going through some techniques for preparing the lineart, and we’ll be using the layer docker to put each colour on a separate layer, so we can easily access each colour when we add shading.


This tutorial is adapted from this tutorial by it’s original author.

Understanding Layers

To fill lineart comfortably, it’s best to take advantage of the layerstack. The layer stack is pretty awesome, and it’s one of those features that make digital art super-convenient.

In traditional art, it is not uncommon to first draw the full background before drawing the subject. Or to first draw a line art and then colour it in. Computers have a similar way of working.

In programming, if you tell a computer to draw a red circle, and then afterwards tell it to draw a smaller yellow circle, you will see the small yellow circle overlap the red circle. Switch the commands around, and you will not see the yellow circle at all: it was drawn before the red circle and thus ‘behind’ it.

This is referred to as the “drawing order”. So like the traditional artist, the computer will first draw the images that are behind everything, and layer the subject and foreground on top of it. The layer docker is a way for you to control the drawing order of multiple images, so for example, you can have your lineart drawn later than your colors, meaning that the lines will be drawn over the colors, making it easier to make it neat!

Other things that a layer stack can do are blending the colors of different layers differently with blending modes, using a filter in the layer stack, or using a mask that allows you to make parts transparent.


Programmers talk about transparency as ‘’Alpha’‘, which is because the ‘a’ symbol is used to present transparency in the algorithms for painting one color on top of another. Usually when you see the word ‘’Alpha’’ in a graphics program, just think of it as affecting the transparency.

Preparing your line-art

Put the new layer underneath the layer containing the lineart(drag and drop or use the up/down arrows for that), and draw on it.

layer structure for flatting in krita

…And notice nothing happening. This is because the white isn’t transparent. You wouldn’t really want it to either, how else would you make convincing highlights? So what we first need to do to colour in our drawing is prepare our lineart. There’s several methods of doing so, each with varying qualities.

The Multiply Blending Mode

So, typically, to get a black and white lineart usable for colouring, you can set the blending mode of the lineart layer to Multiply. You do this by selecting the layer and going to the drop down that says Normal and setting that to Multiply.

blend mode setup of lineart flat coloring

And then you should be able to see your colors!

Multiply is not a perfect solution however. For example, if through some image editing magic I make the lineart blue, it results into this:

effects of multiply blend mode

This is because multiply literally multiplies the colors. So it uses maths!

What it first does is take the values of the RGB channels, then divides them by the max(because we’re in 8bit, this is 255), a process we call normalising. Then it multiplies the normalised values. Finally, it takes the result and multiplies it with 255 again to get the result values.

  Pink Pink(normalised) Blue Blue(normalised) Normalised, multiplied Result
Red 222 0.8705 92 0.3607 0.3139 80
Green 144 0.5647 176 0.6902 0.3897 99
Blue 123 0.4823 215 0.8431 0.4066 103

This isn’t completely undesirable, and a lot of artists use this effect to add a little richness to their colors.


Easy, can work to your benefit even with coloured lines by softening the look of the lines while keeping nice contrast.


Not actually transparent. Is a little funny with coloured lines.

Using Selections

The second method is one where we’ll make it actually transparent. In other programs this would be done via the channel docker, but Krita doesn’t do custom channels, instead it uses Selection Masks to store custom selections.

  1. duplicate your lineart layer.

  2. convert the duplicate to a selection mask. mouseright the layer, then Convert ‣ to Selection Mask.

  3. Invert the selection mask. Select ‣ Invert Selection.

  4. Make a new layer, and do Edit ‣ Fill with foreground color.


And you should now have the line art on a seperate layer.


Actual transparency.


Doesn’t work when the lineart is coloured.

Using Masks

This is a simpler variation of the above.

  1. Make a filled layer underneath the lineart layer.

  2. Convert the lineart layer to a transparency mask mouseright the layer, then Convert ‣ to Transparency Mask.

  3. Invert the transparency mask by going to Filter ‣ Adjust ‣ Invert



Actual transparency. You can also very easily doodle a pattern on the filled layer where the mask is on without affecting the transparency.


Doesn’t work when the lineart is coloured already. We can still get faster.

Using Color to Alpha

By far the fastest way to get transparent lineart.

  1. Select the line art layer and apply the color to alpha filter. Filter ‣ Colors ‣ Color to Alpha. The default values should be sufficient for lineart.


Actual transparency. Works with coloured line art as well, because it removes the white specifically.


You’ll have to lock the layer transparency or seperate out the alpha via the rightclick menu if you want to easily color it.

Colouring the image

Much like preparing the line art, there’s many different ways of colouring a layer.

You could for example fill in everything by hand, but while that is very precise it also takes a lot of work. Let’s take a look at the other options, shall we?

Fill Tool

fill-tool icon

In most cases the fill-tool can’t deal with the anti-aliasing(the soft edge in your lineart to make it more smooth when zoomed out) In Krita you have the grow-shrink option. Setting that to say… 2 expands the colour two pixels.

Threshold decides when the fill-tool should consider a different colour pixel to be a border. And the feathering adds a extra soft border to the fill.

Now, if you click on a gapless-part of the image with your preferred colour…(Remember to set the opacity to 1.0!)

Depending on your lineart, you can do flats pretty quickly. But setting the threshold low can result in little artifacts around where lines meet:

colors filled with fill tool

However, setting the threshold high can end with the fill not recognising some of the lighter lines. Besides these little artifacts can be removed with the brush easily.


Pretty darn quick depending on the available settings.


Again, not great with gaps or details. And it works best with aliased line-art.


Selections work using the selection tools.

selecting with selection tools for filling color

For example with the Path Selection Tool you can easily select a curved area, and the with Shift + mouseleft (not mouseleft + Shift, there’s a difference!) you can easily add to an existing selection.

selection mask in Krita

You can also edit the selection if you have Select ‣ Show Global Selection Mask turned on. Then you can select the global selection mask, and paint on it. (Above with the alternative selection mode, activated in the lower-left corner of the stats bar)

When done, select the color you want to fill it with and press shift + backspace.

filling color in selection

You can save selections in selection masks by mouseright a layer, and then going to Add ‣ Local Selection. You first need to deactivate a selection by pressing the circle before adding a new selection.

This can serve as an alternative way to split out different parts of the image, which is good for more painterly pieces:

result of coloring made with the help of selection tools


A bit more precise than filling.


Previewing your color isn’t as easy.

Geometric tools

So you have a tool for making rectangles or circles. And in the case of Krita, a tool for bezier curves. Select the path tool (path tool), and set the tool options to fill=foreground and outline=none. Make sure that your opacity is set to 1.00(fully opaque).

By clicking and holding, you can influence how curvy a line draw with the path tool is going to be. Letting go of the mouse button confirms the action, and then you’re free to draw the next point.

filling color in lineart using path tool

You can also erase with a geometric tool. Just press E or the eraser button.

erasing with path tool


Quicker than using the brush or selections. Also decent with lineart that contains gaps.


Fiddly details aren’t easy to fill in with this. So I recommend skipping those and filling them in later with a brush.

Colorize Mask

So, this is a bit of an odd one. In the original tutorial, you’ll see I’m suggesting using G’Mic, but that was a few years ago, and g’mic is a little unstable on windows. Therefore, the Krita developers have been attempting to make an internal tool doing the same.

It is disabled in 3.1, but if you use 4.0 or later, it is in the toolbox. Check the Colorize Mask for more information.

So it works like this:

  1. Select the colorize mask tool.
  2. Tick the layer you’re using.
  3. Paint the colors your want to use on the colorize mask
  4. Click update to see the results:
coloring with colorise mask

When you are satisfied, mouseright the colorize mask, and go to Convert ‣ Paint Layer. This will turn the colorize mask to a generic paint layer. Then, you can fix the last issues by aking the lineart semi-transparent and painting the flaws away with a pixel art brush.

result from the colorise mask

Then, when you are done, split the layers via Layers ‣ Split ‣ Split Layer. There’s a few options you can choose, but the following should be fine:

slitting colors into islands

Finally, press Ok and you should get the following. Each color patch it on a different layer, named by the palette in the menu and alpha locked, so you can start painting right away!

resulting color islands from split layers


Works with anti aliased lineart. Really quick to get the base work done. Can auto-close gaps.


No anti aliasing of it’s own. You have to choose between getting details right or the gaps auto-closed.


I hope this has given you a good idea of how to fill in flats using the various techniques, as well as getting a hand of different Krita features. Remember that a good flat filled lineart is better than a badly shaded one, so keep practising to get the best out of these techniques!