An Introduction to Krita

Share

This article is an introduction to Krita (as of version 5.2). Here, I list some of Krita's notable features, general ways to use the application, common issues you may encounter, and I review part of it and compare to other applications.

Krita is a free application for editing images. Its focus is on digital art, digital illustration, and digital painting. It's an alternative to photo editors like Photoshop, GIMP, and Affinity Photo, and digital art software like Clip Studio Paint (CSP), Paint Tool SAI, MyPaint, and FireAlpaca (MediBang Paint). Krita has some shortcomings compared to commercial market leaders (CSP and Photoshop), but it's still extremely capable for a free application.

Krita Documents

Krita can open digital image files in all common formats: JPG, PNG, BMP, WebP, GIF. It also supports countless others: TIFF, AVIF, RAW, TGA, XFC, ORA, ICO, PSD.

Once opened, the image becomes a "document" opened inside Krita. Each document is displayed inside Krita's window as a canvas that can be edited with tools. Documents can have layers.

It's possible to open multiple documents at once in Krita. By default, they're opened as tabs, so only one is displayed at a time. Krita also supports displaying opened documents in a MDI (Multiple-Document Interface), in which case they become sub-windows inside Krita.

It's possible to have two views of the same document (e.g. at different zoom levels). Krita doesn't support dragging and dropping tabs at corners of the window (like CSP does), but it's possible to make two views side by side by making one sub-window always on top.

Observation: in GIMP, it's possible to have the grid or guides visible in only one view. In Krita, this is not possible, as all views share the same view settings except for panning, zoom, rotation, and mirroring.

After a document is edited, it can be saved in Krita's native file format (file extension: .kra). You should ALWAYS save your projects in this format. The document can also be exported to common formats like PNG and JPG, including exporting metadata such as EXIF, author information, etc..

Most artists will start by creating a new document instead of opening an image. When creating a new document, you must select the resolution of the image in pixels, and its DPI/PPI (pixels per inch). The PPI of the average PC screen is between 70 and 100. For print, 300 DPI and higher (600) is recommended. This means if you have a 100 PPI screen and you want to draw for print at 600 DPI, the drawing should look six times larger than it should be when printed when the zoom level is at 100%. In this case, say that the printed illustration should occupy a physical space equivalent to 1000 pixels on your screen. Digitally, the drawing would have 6000 pixels of width, then.

It's normal for digital art to be created at very high resolutions. If you're publishing digitally (e.g. to post on the Internet, on Instagram, etc.), a common recommendation is to make the canvas twice (i.e. four times) as large than as the size you want to publish. For example, if you want an illustration to have 1000x1000px when published (1 megapixel), you draw at 2000x2000px (4 megapixels) resolution, and then you scale it down by 50% before publishing. It's a good idea to export a 100% size PNG and then open that PNG and resize that to a 50% JPG before publishing in order to avoid resizing your project file and then saving it by accident.

Note: a 4 megapixel canvas uses four times more memory than an 1 megapixel canvas.

When creating a new document, you can also select a color model (RGB/Alpha, L*A*B*/Alpha, CMYK, etc.), a color depth (8 bit, 16 bit, 32 bit), and a profile (sRGB, linear RGB, etc.). Increasing the color depth improves blending quality and removes "banding" artifacts, but consumes more memory. Color model and profile affect how color works in general. What everyone uses is sRGB, the default, which is gamma-corrected (also called "perceptual" RGB) and can result in poor blending of colors with smudging brushes. It's worth noting that other profiles must be converted to the screen profile before being displayed on screen. Converting can result in noticeable loss of color data when you convert 8 bit values from one profile to another, in the form of "banding" artifacts. Linear RGB solves the blending problem by simulating how light works in real life, but because it needs to be converted to sRGB in most cases, you would have to work on it at higher color depth, which means increased memory consumption. The L*A*B* model is fundamentally different from the RGB model, but has better blending than sRGB without requiring 16 bit depths. Krita recommends avoiding using CMYK1, and that you should let the printing house do the conversion to CMYK for you.

A comparison of sRGB (perceptual RGB, i.e. in gamma corrected color space), CIELAB color model, and Linear RGB color blending created with a yellow-purple gradient.
A comparison of sRGB (perceptual RGB, i.e. in gamma corrected color space), CIELAB color model, and Linear RGB color blending created with a yellow-purple gradient in GIMP.

Interface

Krita's main interface consists of a menubar, a toolbar where some brush settings can be found, a toolbox where tools can be selected, a statusbar that displays some information about the current state of the image editor, and several panels that can be moved around and "docked" at corners of the window that Krita calls "dockers."

There are a few important dockers that are shown by default: the Layers docker, the Tool Options docker, the Brush Presets docker, and the Advanced Color Selector docker.

Krita has a lot of other dockers which can be displayed and hidden through Settings -> Dockers on the menubar.

Each docker has a label and 3 buttons: a padlock to lock edits, a button to un-dock the docker and make it a floating window, and an X button to "close" (hide) the docker. Dockers can be dragged around by their labels when they're unlocked. It's possible to place two dockers in the same rectangular space, turning them into tabs.

You can save your dockers placement through Window -> Workspace -> New Workspace.... There are many workspaces pre-installed, notably an Animation workspace that displays the Animation Timeline docker.

Resetting the Interface

A common problem new users face is that sometimes part of Krita's interface disappears. You can reset it to its default state through Window -> Workspace -> Default. Some more specific fixes:

Krita shows an undo and redo button in the toolbar if the Edit toolbar is shown. If it disappears, check Settings -> Toolbars Shown -> Edit.(related: 2024 bug)

Krita shows a button to edit the brush settings in the toolbar, foreground and background color, among other things. If it disappears, check Settings -> Toolbars Shown -> Brushes and Stuff.

Hiding the Interface

It's possible to make all the dockers disappear so only the canvas is visible by pressing the Tab key. Press it again to make the reappear.

Anecdote: for me, this works smoothly on Windows, but for some reason there is a lag when switching in Linux.

Tools

Like every other image editor, Krita's workflow consists of activating a tool in the toolbox and then clicking on the canvas. The effect of clicks on the canvas varies according to which tool is currently selected in the toolbox. There can only be one tool active at a time. Tools can be given custom keyboard shortcuts.

Observation: Krita's toolbox is rather unintuitive. Some tools that would be actual tools in other applications—such as the dodge tool, burn tool, blur tool, and most notably: the eraser tool and the clone stamp tool—are actually brushes in Krita. This means you won't find them in the toolbox, because they can only be selected from the brush selector while the brush tool is active—they are in the Digital preset that comes pre-installed.

The tools in Krita's toolbox, labelled: vector tools: select shapes, text, edit shapes, calligraphy; raster tools: brush, line, rectangle, ellipse, polygon, freehand path, bezier, multibrush, dynamic brush, polyline; move & resize tools: transform, move, crop; sample & fill tools: gradient, eyedropper, colorize mask, smart patch, bucket fill, enclose and fill; utility tools: assistant, measure, reference image; selection tools: rectangular, elliptical, polygonal, lasso, magic wand, similar color, Bézier curve, magnetic curve; view tools: zoom, pan.
The tools in Krita's toolbox, labelled and categorized.

As Krita is a digital art application, most users will only use a few tools, such as:

  1. The freehand brush tool to draw.
  2. The eyedropper to select colors from the canvas.
  3. The selection tools to select parts of the canvas.
  4. The transform tool to move parts of the canvas.

Observation: Krita's text tool is terrible(2018 Bug). I recommend using Inkscape if you're working with text.

Tools have parameters that affect their behavior. Most of these parameters can be found in the Tool Options docker. Some of them are found in the toolbar.

Notably:

  1. The gradient tool's gradient is in the toolbar.
  2. The fill tool's pattern is in the toolbar.
  3. When a drawing tool such as the brush tool is selected, it paints on the canvas with the foreground color, which is found in the toolbar.
  4. The currently selected brush is in the toolbar.
  5. A button to edit and create your own brushes is in the toolbar.
  6. The drawing tools that have fills, like the rectangle and circle, use the background color found in the toolbar.
  7. The opacity and size of the current brush are in the toolbar.

Observation: the toolbar is static: it never changes, no matter which tool is selected. This is different from how FireAlpaca, Photoshop, and Inkscape work, for example. This means that in some cases the toolbar will have settings that are irrelevant for the current tool, e.g. none of the selection tools make use of the currently selected color.

Observation: many tools really should be grouped as a single tool with an option to switch modes in the toolbar. For example, rectangle, circle, and polygon drawing and selection tools just occupy space in the toolbox. There is no such grouping in Krita. There are 3 different brush tools that support pen pressure, which would make a lot more sense as a single tool. In Krita and GIMP, there is a "select by color" tool which selects all pixels of a similar color. In some applications, this would be a simple setting in the magic wand tool.

Observation: conversely, the opposite is also a problem: in GIMP, there are several transform tools, such as warp transform, cage transform, and perspective; in Krita, these tools appear to be missing at first glance, but they're actually settings found in the Tool Options docker when transform is active. Notably, "liquify," which is a filter in some applications, is a transform tool mode in Krita.

Observation: Krita's crop tool can't rotate(2017 bug) or scale(2023 bug) automatically like Photoshop's.

Observation: there are 4 things in the toolbar that will make Krita "stop working," in the sense that drawing a brush won't draw anything, or will draw things wrong. First you have a dropdown list button with the blend mode for the current brush. It says "normal" by default in most painting brushes. You can change this to "multiply" for example, and then drawing with white color will do nothing. There's a button to switch eraser mode, which turns the current brush into an eraser, so it won't draw, it will erase. There is a button to preserve alpha (lock alpha), which makes brushes not draw in transparent areas; if the layer is new, it's all transparent, so you can't draw anywhere. And there is an option to change the opacity and flow of the brush. By default only the opacity is visible on the toolbar, and you need to click a down arrow button next to it to see what the current flow is.

Brushes

Krita has multiple powerful brush engines. It comes with several "engines" of its own, such as for simple pixel brushes, smudging brushes, bristle brushes, spray brushes, an "engine" that applies a filter (used by blur and sharpen), an "engine" that is the clone stamp tool, an "engine" that can distort the canvas like a liquify tool, an "engine" for hatching, for sprays, etc. Notably, it has a "shape engine" that works like the brush in Alchemy, and a "sketch" engine that draws weird interconnected lines. Note that most of these "engines" are used by one or two brushes built into Krita. Most brushes just use the pixel, smudge, and bristle engines. Krita also comes with a "MyPaint" engine. MyPaint is an application known for its infinite canvas and high quality brush engine. Krita doesn't have an infinite canvas, but through this it's able to have part of what makes MyPaint great.

Each "engine" has several parameters that can be customized in a brush editor. Some parameters can be bound to pen pressure, pen speed, tilt, rotation, distance, fade, etc. Some notable parameters include toggleable anti-aliasing, multiple ways to set the "hardness" of dabs, square dabs, textured dabs, blending mode per brush, and random dab scattering.

I hear the watercolor brushes are particularly good.

Krita's brush presets can be downloaded and installed in brush packs. Installed brushes can be tagged with multiple tags (not a single-category-per-brush system) through the Brush Presets docker.

Customizing Brushes

Observation: creating your own brushes in Krita, organizing them, or even selecting them is a frustrating experience compared to almost every other digital art application.

It's possible to set a keyboard shortcut for quickly switching between the current brush and the previously selected brush. This is useful if you want to use an eraser, since you can switch between eraser and pencil with a single key press. You just need to make sure you select the eraser first, and then you select the pencil. Unfortunately, there is no indicator in Krita's interface of what the previous brush was, so this isn't as obvious as switching foreground and background colors.

Krita comes with a built-in plugin called "Ten Brushes" that lets you set 10 keyboard shortcuts for 10 specific brushes. I do not understand why a phrase such as "built-in plugin" exists in this world, nor do I understand why is it limited to 10 brushes, or why you can't just set the keyboard shortcuts on the brushes themselves like you can in SAI, or even set a keyboard shortcut for a category of brush like you can in CSP or FireAlpaca.

Observation: Ten Brushes doesn't support brushes with commas in their names currently(2024 bug).

Observation: Krita's brushes are ALWAYS SORTED ALPHABETICALLY and there is no way to reorder them save for renaming them(2014 bug). You can't just drag and drop them like you can in SAI, FireAlpaca, or CSP. Consequently, in order to make erasers appear first in the Brush Presets docker, you'll see that the brushes will be named like this:

  1. a) Eraser Circle
  2. a) Eraser Small
  3. a) Eraser Soft
  4. b) Airbrush Soft
  5. b) Basic-1

Note that their names start with a) to make them become first in alphabetical order. There is no built-in tool to quickly rename multiple brushes. Since Krita uses tags instead of categories, if you do try to rename them you need to be aware of the sorting order of a brush in all tags it belongs, not just the tag that is being displayed currently.

In unrelated news Intel is adding AI to Krita(see announcement).

Brushes in Krita have icons called "thumbnails." There is no option in Krita to just display the name of the brush in a compact list. You can make it a vertical list, but each item is around twice as tall as it needs to be. In CSP and FireAlpaca, you would have compact lists. In SAI, small icons with text names. Because Krita is "thumbnail-oriented," that means if you create a new brush you'll need to create an icon for your brush, or you'll have a really hard time finding the brush you just made. Krita has a tool (Load from Icon Library) to let you create a quick thumbnail for your custom brush by changing the hue, saturation and lightness of an icon from set of built-in icons.

The buttons to add and delete a brush are hidden in a side pane in the Brush Editor that lets you browse your brush presets. They are not found in the Brush Presets docker that you normally use to browse your brush presents, which is where you would be able to find such thing in literally every other application. The button to "add" a brush doesn`t actually add a brush, despite having a "plus" symbol for icon. Instead, it just creates a new brush of a certain type (engine) in the brush editor. The new brush isn't saved unless you click Save New Brush Preset..... Saving a new brush preset always saves it without any tags, even if you're browsing a tag in the Brush Editor brush presets browser, which means you'll have to search for the name of the brush you just created to add a tag to it. If you just made the tag "my custom brushes" and you want to create 10 brushes, you have to do this 10 times. By the way, the brushes that you can find in the Brush Editor brush presets browser are only the brushes that existed BEFORE the Brush Editor was opened, which means if you save a new brush from the editor, you won't be able to find it in the presets browser inside the editor unless you close the editor first and then open it again.

Observation: sometimes, if you modify a brush after you saved it, and then save again, its icon will change to the icon of another brush. You'll notice when this will happen because you'll see the wrong icon displayed before you save(2023 bug). Unrelated, but related, sometimes it becomes blank(2024 bug).

Stroke Stabilization

Krita has pen stroke stabilization support. It's configurable in the Tool Settings of the brush tool. This is meant to help with drawing line art.

When stroke stabilization is enabled, the brush in the software will "lag behind" the mouse cursor. More specifically, instead of instantly moving to the mouse cursor position, the program "samples" a number of positions of the cursor, then averages these positions to "stabilize" the movement. Higher stabilization typically means the program will use the average of more samples, which also means the brush will have to wait for longer before following the mouse cursor. With high enough stabilization, it's possible to draw with a mouse, without a drawing tablet.

In drawing applications, there are 3 visible cursor positions at all times: first, you have the actual mouse position on the system, this is what is really moved by the mouse or stylus pen; then you have the position of the mouse cursor displayed in the program in the form of a "circle" brush outline, which always lags behind the position in the system; and then you have the stabilized brush position, which legs behind the brush outline. It's worth noting that slower drawing programs running on slow computers will have a greater lag between the cursor in the system and the cursor in the program. More specifically, when you move your cursor, the program needs to create an image to display the canvas with the brush outline moving on it on the screen. If the program is running at 30 FPS, there is always going to be a 33 millisecond lag between where your mouse cursor actually is and where the brush outline shows on the canvas, for example. Complex programs like Krita and CSP have a longer lag, while simpler programs like SAI have a shorter lag.

In Krita, it's possible to change the brush cursor in the application settings, hiding the outline or using a crosshair for the cursor.

Observation: CSP has more options for this. Notably, it's possible to make the cursor obey the stroke stabilization so the stroke doesn't lag behind the brush outline.

Observation: stabilization is a global setting in Krita. it's not possible to have two brushes with two different stabilization settings, like you would be able to in CSP(2015 bug).

There are 3 different stabilizations algorithms available in Krita: Basic (no settings), Weighted, and Stabilizer, plus disabled. Note that every application has its own algorithm, so stabilization in Krita won't feel the same as elsewhere. Krita also has a "Dynamic Brush Tool" which uses simple physics calculations to move the brush. It can be used as an alternative stabilization method. In fact, I don't know why this tool is a separate tool and not just a different stabilization method(2022 bug).

Observation: I'd rank Krita's stabilization pretty low compared to other software(2021 bug). I hear SAI has the best stroke stabilization and is great for line art. FireAlpaca is a pretty good too. And then there's CSP, but i's stabilization feels too strong in most settings. In Krita, Weighted is an old algorithm that was replaced by Stabilizer because it had trouble stabilizing the end of the stroke. In both cases, you need very high levels to actually stabilize a stroke, but at high levels it's impossible to draw details because the brush takes too long to start moving if you only move the cursor slightly. Krita does offer more parameters to customize the stabilizer than other software, but that doesn't help much when you can get the stabilization you want by setting stabilizer to "10" in FireAlpaca, whatever "10" means, and you can't achieve the same stabilization in Krita no matter what you do. The other programs simply have better defaults, although this is mostly a matter of preference. I do not understand why not just have dozens of options to customize this stabilization. It seems relatively simple to tinker with.

Tip: some artists use external software to stabilize strokes, e.g. OpenTabletDriver's plugins. This stabilizes the cursor at system level.

Tip: if you're struggling to sketch precisely a small tablet, you can try making stabilization very high, or you can try to sketch without stabilization and then use the "distort" brushes to slightly nudge your sketch to fix it.

Global Pressure Curve

It's possible to configure a global curve for pen pressure in Krita's application settings. With this you can make all strokes stronger or weaker. In CSP, you have the option to let CSP calibrate the curve automatically by simply drawing a stroke on the canvas. In Krita, the curve needs to be modified normally. Krita comes with a tool that lets you see the pen input values so you can check how much pressure Krita gets when you press the stylus against the tablet.

Filters

Like many image editors, Krita has "filters" which can be applied to the image in two ways: destructively, through the menubar, or non-destructively, by adding a filter layer or filter mask to the document. This latter feature is similar to "adjustment layers" found in Photoshop and Affinity Photo.

Through these filters we can adjust the change the color of parts of an image, adjust the brightness, unblur an image, blur an image (Krita has a simple blur, gaussian blur, lens blur, and motion blur), besides countless other things.

In particular, I like that you can change the hue of the image through luma and chromas instead of HSL.

Infographic: color adjustment method comparison in Krita. A base photo of an blue iris with 5 different color adjustment methods applied to change the color of the eye. HSV/HSL (lightness), HSL (luma), and HSI (intensity) with -83° hue. Each made the eye green but left a pink color near the pupil. They also produced slightly different shades of green. Blue-Red Chroma, Luma: -17/-11/0, produced a more "natural looking" green iris without a purple outline. Colorize: 115º hue produced an unnatural, bright green. Photo: Anna Hirsch. Infographic by VirtualCuriosities.com.
A comparison of color adjustment methods in Krita, using turning a green eye blue as example. Observe that in methods that shift the hue of pixels, the blue eye with a brown center becomes green with a pink center. It may be hard to tell from this example, but HSV and HSL had the same result, HS/Luma was slightly lighter, and HS/Intensity was even lighter. The red-blue chroma adjustment method produces the most natural-looking results. Colorize produces a strong but unnatural green. Photo by Anna Hirsch on Flickr.

Krita comes with a plugin to use G'MIC filters (also available in GIMP). The G'MIC filters can only be used destructively.

Layers

Like every complex image editor, Krita is layer-based. This means that in a single Krita document there will be multiple images composited "one on top of the other" that are called "layers." The basic idea is that layers start full of transparent pixels, and as you draw on them, the layers become opaque. Opaque pixels hide the pixels from the layers below. When you "erase," what you're doing is simply turning the pixels transparent again.

There is always at least one layer selected at a time. When you click on the canvas with a drawing tool, it only affects the currently selected layer.

You can stack as many layers as you want in the layer stack. You can organize your layers by placing them into layer groups (quickly group them with Ctrl+G). Krita has many other types of layers as well.

The location of Krita's "Add New Layer" popup menu in the "Layers" docker.
The location of Krita's "Add New Layer" popup menu.

It's possible to "merge" a layer with the layer below through the option "Merge with Layer Below" in its context menu. It's possible to merge groups, turning them into a single layer. It's possible to merge all layers in the image by clicking "Flatten image."

Observation: while multiple layers are selected, "Merge with Layer Below" merges the selected layers; it doesn't merge them with the layer below the selection(2022 bug).

By default, Edit -> Copy copies the pixel data from the currently selected layer. It's possible to copy the image composited from all layers (i.e. copy what's visible on the screen) by clicking "Copy merged" instead.

Layers can be hidden and made visible by clicking on an eye icon. They can be locked by clicking on a padlock. Other 3 options layers have in Krita is the ability of "inherit alpha" and "lock alpha." The term "alpha" is another name for the level of opacity in a pixel. Often, the color of a pixel is determined by 3 values, for the colors red, green, and blue (RGB). With alpha, it's called RGBA.

When the alpha is inherited, the layer will ignore the alpha values in the layer's pixels, and use the alpha values from the layer stack so far instead. This can be used like a "clipping mask." For example, if you have one layer for the line art, and a layer underneath for the areas filled with colors in the drawing, you can clip a texture or shading to those areas by inheriting its alpha. To do this, you must first place the text and the fills in a layer group, and the texture must be above the fills.

When alpha is locked, you can quickly change the color of the entire layer by pressing Shift+Backspace to fill it with the foreground color. This is used to test other flat colors.

Besides the alpha value of the pixels, each layer has an opacity level that applies to the entire layer.

Layers can also have a blend mode. Krita has many, many blend mode. Perhaps too many, because selecting them is kind of difficult. Notably, Krita has the blend modes Erase, Destination In, and Destination Atop, which can be used to make one layer manipulate the transparency of the layers below it. It's possible to "favorite" blend modes by clicking the square at the left of the brush name in the dropdown list (it's a checkbox).

Observation: it's not possible to sort favorited blend modes, they're sorted alphabetically, which means "normal," the default blend mode, is never the first option. It's categorized in Mix -> Normal.

Commonly used blend modes like Multiply and Addition are found in the Arithmetic category. Blend modes that affect alpha are found in the Mix category. Notably, Dissolve is in there. There are entire categories for Lighten and Darken (which include Screen, Dodge and Burn). The Overlay blend mode is in Mix. The Difference blend mode is found in the Negative category. There are different "color and "saturation" blend modes for different representations: HSL, HSV, HSI, HSY.

Krita has vector layers, but its vector layers use SVG technology. They are completely different from CSP's vector layers (or SAI's line art layers). They are not very helpful for line art.

Krita's filter layers let you use a filter as a layer. Fill layers fill the whole canvas with a color or pattern. File layers let you link a file to inside Krita, so that if the file changes, the layer changes as well.

Transparency masks let you erase parts of a layer non-destructively. Transform masks let you transform layers non-destructively. Clone layers let you create a clone of a layer that automatically updates when the original changes.

We can use these layers to create all sorts of complex non-destructive effects.

Non-Destructive, Real-Time Chromatic Aberration in Krita: a tutorial image describing the steps necessary to achieve the effect: Step 1: Use a flat color fill layer with "multiply" blend mode to create a monochrome image; Step 2: Make black transparent with a cross-channel adjustment filter; Note: If your input is transparent, add a clone of the input above the filter with "Destination In" blend mode; Step 3: Create a clone of the extracted color under it, with "Subtract" blend mode to remove the red color from the input; Step 4: Add the red color back by changing the "extracted color" blend mode to "addition." This should show the original image; Step 5: Place the "extracted color" into a group, change the group blend mode to "addition," add a transform mask and move the transform mask around with the transform tool; Tip: Use warp transform, mesh or liquify to get rid of the lack of red at the edges; Photo by domantasm. on Flickr; VirtualCuriosities.com
Image version of the tutorial "How to Add Chromatic Aberration in Krita (Non-Destructive Effect)." Photo by domantasm. on Flickr (CC BY 2.0).

Observation: in Krita, transparency masks are a grayscale layer where black means transparent and white means opaque, which can be confusing. Fill layers and filter layers have internal transparency masks that work similarly. In CSP and FireAlpaca, for example, single-color layers are very similar to fill layers, but they work with alpha instead of intensity(2022 bug).

Layers have names. Clicking two times on the layer lets you rename the layer.

Layers have properties that you can access by right clicking on the layer to show its context menu.

Observation: I'd expect double clicking on the thumbnail to open the layer properties, but that doesn't work(2016 bug). A workaround is pressing its keyboard shortcut: F3.

Observation: the default paint layer type has "inherit alpha" and "lock alpha" as checkboxes in its properties, but other layer types, like the fill layer, do not have these checkboxes in their properties for some reason.

Observation: it's possible to change which layer is being cloned by a clone layer after creating it, but this parameter isn't found in its layer properties. Instead, you need to click Set Copy From... in its context menu.

Layers can have a "style," such as stroke or drop shadow, which can be added by selecting Layer Style... in their context menu.

It's possible to quickly make only a single layer or layer group visible, hiding all others, by right clicking and selecting the Isolate Active Layer and Isolate Active Group in the context menu. These two parameters aren't settings of a layer, they are modes of Krita. If you select a different layer, the visible layer automatically changes. This means you can't tinker with one layer's properties while making a different layer is visible in this manner. With these options, it's possible to view the internal black and white transparency mask of filter layers.

You can turn a layer's alpha into a selection by clicking Select Opaque (Replace) in the context menu.

In Krita, layers may be marked with a color, and this color can be used by other tools. For example, it's possible to mark line art layers with green, and then make the magic wand or fill bucket tools consider only green layers to select and fill areas of an illustration quickly. Similarly, if you are retouching photos, the same can be done with the eyedropper tool to select colors from the layer below.

How to Draw in Krita

An example workflow for using Krita would be:

  1. Create a new canvas.
  2. Sketch something in a layer.
  3. Enable stroke stabilization and draw the line art in another layer. Use a layer group for line art if you are working with overlapping lines, e.g. if you're drawing eyes behind hair, it's easier to erase mistakes if they are in different layers.
  4. Hide the sketch layer.
  5. Create a new layer group under the line art for the color.
  6. Create a layer for flat colors.
  7. Mark the line art layers with a color like green; configure the magic wand or bucket fill to target green layers; then in the flat colors layer start filling areas with flat colors.
  8. Create a new layer above the flat colors with Multiply blend mode. Name it "shading." Use inherit alpha to clip it to the flat colors below. Anything drawn in this layer will make the colors below darker.
  9. Create a new layer above the flat colors with Addition blend mode. Name it "lighting." Use inherit alpha to clip it to the flat colors below. Anything drawn in this layer will make the colors below brighter.
  10. Lock the alpha of the line art layer and paint on it with colored brushes to change the color of the line art.
  11. Add a filter layer on top of everything with the color adjustment curves to adjust the brightness and contrast of the illustration.
  12. Export the result.

Naturally, different artists have different workflows. Some artists paint everything in a single layer. Some artists have a different layer for every single color in the illustration. Some artists do not use colored line art. Many artists do not use adjustment layers to correct the colors after drawing.

In Krita, there is a "colorize mask" tool that can be used to instantly color parts of an illustration. This is a rather unique Krita feature.

Tip: from the technical side, paint layers are optimized to automatically "crop" themselves to their opaque pixels, getting rid of the data for transparent pixels. This means that a layer in a 1024x1024px canvas that fills the whole canvas will use 4 mebibytes of memory (8-bit RGBA), but a layer that only has a tiny circle will use a lot less memory because it's not necessary to store data for all transparent pixels in memory. This optimization is a bounding box optimization. This means if there are two tiny circles, one on the top-left corner, one on the bottom-right corner, even thought the middle of the canvas is vastly transparent, the layer still needs to use 4 mebibytes of memory because its bounding box spans the entire canvas. With this is consideration, it's a bad idea to use a single color per layer if colors can be found all around the canvas, as it would consume a lot of memory. A workaround is to split the layers, e.g. if a character has red hair and red shoes, create a layer for the red hair and a separate layer for the red shoes, so that their bounding boxes remain small.

Tip: if you are drawing fan art, the tool options of the eyedropper tool have a setting that lets you quickly add a color to a palette. You can use this to sample all the colors of a character in one go.

Observation: in CSP, it's possible to mark a single layer or group as "selection source" for selection operations. Although this is more limited than what is possible in Krita, it's also quicker since it doesn't require opening a context menu.

Observation: in CSP, it's possible to mark a layer as "draft" so it doesn't get exported. You would use this instead of manually hiding sketch layers.

Observation: in FireAlpaca and CSP, there are 8-bit and 1-bit layers that are optimized for drawing with a single color per layer. A 8-bit layer consumes 4 times less memory than a 32-bit layer in Krita (which is 8-bit RGBA). In these programs, you can easily change the color of a layer, e.g. from red to blue, without having to lock the alpha.

Selections

Selection tools in Krita share a few common operations. By default, clicking and dragging a selection on the canvas replaces the currently selected area with the newly selected area.

Before clicking, you can hold the Shift key to add to the current selection, and the Alt key to subtract from the current selection.

After you click, while you are dragging, the Shift key constrains the aspect ratio or direction (angle) of the current tool.

You can use selections to copy only the currently selected area. The transform tool also only applies to the selected area, so if you select a head, for example, you can make the header larger or smaller, or rotate or move it, using the transform tool.

Observation: Krita's selection tools are generally worse than GIMP's. In particular, selecting things with pixel perfection is easier in GIMP because selections can be edited before they're applied. This make GIMP clunkier in general, but there are situations where this workflow is advantageous. The magnetic lasso and magic wand are worse than GIMP. In both cases, they're not really perfect, so for editing photos it's easier to change the internal transparency mask of a filter layer with a brush than trying to select the pixels with selection tools.

Observation: neither Krita nor GIMP have the "brush selection tool" that works like a magic wand, which can be found in Photoshop and Affinity Photo.

Selections in Krita are fractional (like transparency masks), not binary. Pixels can be 50% selected. It's possible to feather (blur) selections through the Select menu.

It's possible to draw on the "selection" as if it were a layer: click on Select -> Show Global Selection Mask, then select the selection mask at the very top of the Layers docker. Note that Krita doesn't have a way to split the Layers docker in two views like CSP does, so you need to scroll to the top of the stack to select it(2022 bug). While the selection mask is selected, you can also transform the selection itself with the transform tool.

Observation: in CSP, selection tools are affected by symmetry, meaning that if you select the left side while horizontal symmetry is enable, the right side will be selected too automatically. In Krita, this doesn't happen(2018 bug). A workaround is to enable the global selection mask and paint on it with symmetry enabled.

Rulers and Guides

Like most image editors, it's possible to create vertical and horizontal guides across the canvas by dragging them from the rulers at the edges of the window. The rulers are disabled by default. You can enable them by clicking View -> Show Rulers. These guides aren't exported when you save as PNG, JPG, etc.

Krita has a tool called Assistant Tool that can be used to draw perspective lines, 2-point persective, vanishing point, etc. These lines aren't exported either.

It's possible to configure a grid through the Grid and Guides docker.

Symmetry

Krita supports horizontal and vertical mirroring symmetry for its brushes through the toolbar. Symmetry can be moved around, and the symmetry line can be hidden or locked for edits.

Krita also supports rotational symmetry through multibrush tool. This is configured in its Tool Options.

Observation: I do not know why this isn't a "symmetry docker" that lets you do both of these things. The multibrush tool also has a setting to paint with multiple brushes at once, but, again, I don't see why this couldn't be a setting instead of a whole separate tool.

Observation: in CSP, symmetry lines are guides saved in the document, and you can created multiple of them per document, so you could have one layer group with one type of symmetry and another layer group with another type of symmetry. In Krita, the position is saved in the document, but there is only one symmetry line per document(related 2022 bug, but for assistant tool). Consequently, if you are using symmetry in Krita, it's best to use it only in the center instead of moving it around since there is a button to quickly move the line to the center but no button to remember where you placed the line last time if you accidentally move it.

Reference Images

In Krita, it's possible to place "reference images" that are displayed on the window even outside the canvas boundaries, and aren't exported. You can do this by simply drag and dropping the image file into Krita, or by selecting the reference images tool in the toolbox and clicking, in its Tool Options, to paste the image from the clipboard.

Reference images can be moved around and resized with the reference images tool. They can be exported as a set, imported, or deleted with the Tool Options.

Observation: it's not possible to crop reference images(2018 bug). An alternative is to paste them into a new document first, copy the rectangle you care about, and then paste it in Krita as a reference image.

Reference images is an area where Krita outshines other applications. FireAlpaca can only display one reference image at a time, in a window that is hidden by default. CSP can only display one image at a time, too, but it can navigate a folder of reference images. One drawback is that in other software the reference docker is always visible, while in Krita the reference image disappears if you zoom in or pan away from it. There is no way to "pin" reference images to screen, despite the reference image tool having a pin for icon(2018 bug).

Tip: you can also use an external software like Beeref (beeref.org) to create collages of reference images that appear on top of all windows.

3D Posing Models

Krita doesn't have native support for 3D posing models like CSP does. There is, however, a plugin that lets you place a 3D scene from Blender into Krita.

Seamless Pattern Drawing

Besides symmetry, Krita has a "Wrap Around Mode" found in its toolbar that can help you quickly create seamless tileable patterns, e.g. to use as textures in 3D games.

Smart Patch Tool

Krita has a tool that can instantly remove objects from photos called the Smart Patch Tool. With this tool, you draw over something and an algorithm will try to "fill" the area drawn over so it looks like the surrounding areas. It's rather slow, but it has impressive results, specially with small objects.

For example, if you had a photo of a person on the beach, you could remove the person replacing its pixels with pixels similar to the beach, the sea, and the horizon simply by drawing over the person.

Animation Tools

Krita supports timeline-based animation. This feature is very limited at the moment, so I think it needs a proper disclaimer.

In programs like GIMP and FireAlpaca, it's possible to create animations by creating layers or layer groups that are treated as frames. This means that creating "animations" in a digital art program or image editor has never been particularly difficult. The problem has always been editing them.

If each layer or group is a frame, that means if you have a part that doesn't move in one layer, like the background, you need to copy-paste it to every frame, and if you change the background, you need to copy-paste the change every time.

Krita has a timeline-based interface which is one step above this. You can display the timeline docker through Settings -> Dockers -> Animation Timeline. You can also switch workspace to animation, but be sure to save your current workspace if you customize it or you'll lose the changes.

In the timeline-based interface, it's possible to set keyframes per layer. This means if the background never changes, you just never create any keyframes for it. You only create keyframes for the layers that do change.

In simpler programs, the speed of a frame would be difficult to edit as well. Typically this would be done by writing the amount of time a single frame is displayed in the name of the layer. In Krita, because there is a timeline editor, this isn't necessary. You can simply move a keyframe around to make it last longer.

Krita also supports animation curves through a separate docker. You can use it to make the opacity of a layer change linearly, or to move a layer.

These features make Krita better for animation than FireAlpaca or GIMP, which only support the bare minimum. It's just easier to create a GIF in Krita than it is to do in GIMP.

However, that doesn't mean Krita is actually good for animation in general. For example, Krita lacks a proper camera support(2019 bug), which CSP has, so it's difficult to zoom in, pan, and rotate animations. You can animate transform masks for this, but if you try to draw on a transformed layer, the brush doesn't draw on the transformed coordinates, e.g. if you use a transform mask to "zoom out," it will look zoomed out on the screen, but when you try to draw on it, it will draw as if there was no zoom. This is something Krita could support regardless of animation, but it just doesn't support it currently.

Another huge issue for long animation (long being still under one minute) is the fact that there is no palette management in Krita. For example, if you drew a character with red hair for 30 seconds at 10 fps, that is 300 frames. To change the color of the hair, guess what you would have to do: you would have to manually change the color in 300 different frames. If you plan to do something like this, I strongly suggest using a different software like OpenToonz instead, which has palette management built into it and was created for animation.

Observation: I noticed that Krita's colorize mask tool actually seems to do something very similar to what palette management should be doing: splitting every color into a separate internal single-channel layer for that color alone. Unfortunately, this functionality seems baked into the colorize mask tool, and is not available elsewhere in the program.

Compositions

Krita has a docker that lets you save a "composition" of the document, in the sense of which layers are visible. For example, if you are working with a single document that has multiple versions of the same drawing, like Goku vs. Super Saiyan Goku, you can save one composition with blonde hair hidden, and another composition with blonde hair visible.

Record Timelapses

Krita comes with a built-in recoding tool available through the "recorder" docker. This recording tool works differently from recording the screen with a screen recorder like OBS Studio. It only records changes to the canvas.

References

  1. https://docs.krita.org/en/general_concepts/colors/color_models.html (accessed 2024-07-17) ↩︎

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *