The first thing to remember is that Krita is a 2D paint application while other programs such as Photoshop are designed for image manipulation. This means that the other programs may have more features than Krita in general– but Krita has tools that are relevant to digital painting. The tools are designed for concept art, creating comics, and textures. If you use a feature that isn’t listed, make a quick video tutorial and let us know. We’ll put it up to share with everyone.
An intuitive user interface that stays out of your way. The dockers and panels can be moved and customized for your specific workflow. Once you have your setup, you can save it as your own workspace. You can also create your own shortcuts for commonly used tools.
Have a shaky hand? Add a stabilizer to your brush to smoothen it out. Krita includes 3 different ways to smooth and stabilize your brush strokes. There is even a dedicated Dynamic Brush tool where you can add drag and mass.
Quickly pick your color and brush by right-clicking on the canvas. You can also use Krita’s tagging system to swap out the available brushes that are displayed. The ring outside of the color selector contains the most recently used colors. These settings can be configured through the preferences.
Customize your brushes with 9 unique brush engines. Each engine has a large amount of settings to customize your brush. Each brush engine is made to satisfy a specific need such as the Color Smudge engine, Shape engine, Particle engine, and even a filter engine. Once you are done creating your brushes, you can save them and organize them with Krita’s unique tagging system.
It is easy to create seamless textures and patterns now. Press the ‘W’ key while painting to toggle wrap-around mode. The image will make references of itself along the x and y axis. Continue painting and watch all of the references update instantly. No more clunky offsetting to see how your image repeats itself.
Import brush and texture packs from other artists to expand your tool set. If you create some brushes that you love, share them with the world by creating your own bundles. Check out the brush packs that are available in the Resource area.
Updated Tablet Support for Windows, Linux and macOS
We finally managed to bring together the code we wrote for supporting tablets on Windows (both Wintab as Windows Ink), Linux and macOS with the existing code in our development platform, Qt. This has improved support for multi-monitor setups, more tablets are supported and a host of bugs with tablets have been resolved. This was a huge amount of work!
Note: we needed to patch Qt to make all of this work. The patches have been upstreamed but might not yet be integrated by your linux distribution. Until that happens, you might need to use the Linux AppImage instead of Krita as built by your distribution.
HDR Animation created in Krita by Agata Cacko
Krita has been able to work with HDR images since 2005, but it’s now possible to view your HDR image in HDR, on supported hardware. You can now not only save your HDR image in .kra or OpenEXR files, but also extended PNG. With the right version of FFMPEG you can even create animations in HDR! Having the correct computer setup for this can be rather complicated, so head to the documentation to see what is involved. HDR display is only available on Windows 10.
If you have HDR enabled, the Small Color Selector Docker has an extra “nits” slider that allows you to change the brightness of a specfic color.
Improved brush speed performance with vectorization and lock-free programming
Two of our 2018 Google Summer of Code students sped up Krita with programming techniques called lock-free hashmap for managing the pixel data (Andrey Kamakin) and GPU vectorization (Ivan Yossi). The lock-free hashmap should improve Krita’s speed with multithreading, the chart shows the performance gains based off your CPU core count. Vectorization for the Gaussian and Soft-brush tips optimizes Krita by taking advantage of your processor’s ability to do similar calculations really quickly, the gif above showing the speed difference for the gaussian brush tip.
The left axis on the graph is time in milliseconds. You can see the painting operations go from 1.5 seconds down to about 1 second with the lock-free hashmap. The blue line shows how Krita previously worked.
Improved Color Palette Docker
An improved color palette from one of our Google Summer of Code students for 2018 — Michael Zhou. It is more stable as well as some of the following changes:
- Instead of an entry-based docker, a rows and column based docker.
- It can hold empty entries, which is useful for organizing.
- Stable drag and dropping of colors.
- Easy adding in entries by clicking them in the docker.
- Right-clicking removes an entry.
- Palettes can be put into the KRA file.
- You can press the folder icon to open a palette editing dialog where you can set a palette to be stored in the document or resource-folder.
Animation Python API
Control and create customized workflows that deal with animations.
- Move to a specific frame
- Set the frame rate
- Set start and end frame playback length
A couple plugins have already been created that are using some of these functions. There was also another fix to the Node/Layer API where the “scaleNode” call was passing the wrong parameter
Animator Video Reference and importer – https://github.com/scottpetrovic/animator-video-reference
Sprite Sheet manager – https://github.com/Falano/kritaSpritesheetManager
Configure File backups
Options to control how your backups are done. You can even control if you want your backup files to be stored in a different location. These settings are found in the “Configure Krita” main menu under the General section.
If you have very large files and are have issues saving, you can enable the Zip64 options.
Color Gamut Masking
A new color gamut docker where you can limit your colors shown. New contributor Anna Medonosova has added this. This feature is available with the artistic color selector and the circle advanced color docker displays. Note: The default triangle selector doesn’t allow this feature.
You can also rotate the gamut mask by using the slider. Create new masks and edit existing ones through the Gamut Mask docker. You can disable the mask with the selector icon at the top as shown to the left of the rotation slider.
Improved Artistic Color Selector
More options and cleaned up Artistic Color Selector. There is now a “continuous mode” (infinity symbol) that allows you to remove the stepping with certain attributes. Additional options for new gamut masking. Anna Medonosova has added this great feature.
News about Krita
A news widget has been added to the startup screen that allows Krita to fetch the latest news coming from krita.org. Now, if there’s something interesting, like a new release, you’ll be in the front row! Clicking on a news item will take you to the web page. This is off by default, so you will need to turn it on. Special thanks goes out to Alvin Wong on getting the OpenSSL library included to make this work.
Undo operations with move tool
Move tool operations are now part part of the undo history. This means you can undo multiple moves in a row while you are using the move tool.
Move and transform selections
Easily move, rotate, or transform the selection by itself. You can even edit the anchor points with how the selection is made to do things like rounding corners.
Improve display of memory usage
Give a better indication when your computer is running out of memory. This can be useful as well when making an animation and you won’t have enough memory to actually render it. This bar already exists in the status bar, but should help warn people better.
Overview Docker improvements
Rotate and mirror canvas quickly from the docker. The Overview docker now also better preserves the aspect ratio and doesn’t stretch when some layers are hidden.
Resize layer thumbnails
There is a new slider on the layers docker that allows you to resize the layer thumbnails to see them larger. The size is saved for when you return back to Krita the next time.
Better preview when showing multiple axes.
There is also a new “Copy Translate” mode. This allows you to specify multiple cursors on the screen to paint or draw with at the same time. This is accessed and used through the Tool options like the other modes.
Painting mask performance improvement
You can create a selection with your normal brushes using the Global Selection option. This has previously been a slow area until now. They are now significantly faster. A small workflow change was made as well. If you show the Global Selection mask with no selection, everything will be selected by default.
Improvement to Select Opaque
Ctrl + clicking a layer’s thumbnail in the layer docker makes a selection of the layers content. This is the same as the right click option Select Opaque. There are also new methods for making layer selections. “Select Opaque” has been renamed to “Select Opaque (replace)” now to account for the new functions.
- Ctrl+click = replace selection
- Ctrl+shift+click = add selection
- Ctrl+alt+click = subtract selection
- Ctrl+shift+alt+click = intersect selection
The sharpness option, which sets a threshold filter on the current brushtip now allows controlling this threshold with pressure, making it easy to create bristle like brushes from any with the pixel brush.
Flow and Opacity now interact more like in other programs. The above gif shows how to adapt a brush which uses the new behaviour to go back to the old behaviour. The new behaviour should make it a lot easier to make delicate strokes. For now you can still go back to using the old behaviour globally by going to Configure Krita → General → Tools → Flow Mode
Clone Brush – Reset Origin
A new option was added to the clone brush that allows you to reset the origin after every brush stroke.
Simplex Noise Generator
Add ability to dynamically add noise to your document. There are also options to make the noise tileable.
New Blend modes
New categories of the blend modes were added to create interesting effects.
Other Changes and bug fixes
- Fix: Allow changing layer name to set document as modified (bug 380437)
- Fix: Allow undoing when changing layer names (bug 380437)
- Fix: Update the undo limit if we change it
- Fix: Handling of modified document notification in sub-window mode (bug 386488)
- Fix: Fix when holding right-click over layer’s color settings (bug 392815)
- Fix: Do not show language switch warning when going back to the default (bug 362961)
- Fix: Gradient map color mapping issues (bug 388976)
- Fix: Layout improvements and showing levels for histogram filter (bug 376048)
- Improvement: Add warning when adding shape to clone layer (bug 406730)
- Usability: Make default background for text editor white for readability
- Fix: Activation of FFTW convolution worker (bug 407062)
- Fix: Crash in halftone filter (bug 407045)
- Fix: remove notification for unused keyboard short for wrap-around (bug 407119)
- Fix: Safe assert triggered while drawing (bug 404552)
- Improvement: Warn artists if they try to render an animated GIF with over 50 FPS (bug 403873)
- Improvement: Handle calculation better for grayscale images in high bit depth (bug 405693)
- Usability: Make tabs and table headers and text translatable (bug 406943, bug 406944)
- Improvement: Make zoom mode persistent when moving across screens
- Fix: Exporting animation frames into EXR format (bug 406830)
- Improvement: Load broken TGA files that have bad alpha data (bug 354791)
- Python: Allow selecting boundary limits on export (bug 404615)
- Fix: Unable to set minimal shade selector (bug 368587)
- Improvement: Add pixel snap mode for canvas (bug 390952)
- Fix: Load pre-Krita 4.0 transform masks (bug 396815)
- Fix: TIFF export filter flatten images with group layers (bug 404204)
- Fix: Do not activate already running app instance when exporting image sequence
- Fix: Memory leak with GIFs when saving and line length (bug 404160)
- Improvement: Better calculate SVG document size and loading omitted commands (bug 406124)
- Usability: Hide pattern fill option in vector tools until it is fully implemented
- Fix: Artifacts when saving vector layers as PNG (bug 404976)
- Fix: Crash when merging back split alpha function
- Fix: Address sanitizer (ASAN) crash when creating a guide (bug 405732)
- Fix: Hard to select color in vector objects (bug 404975)
- Fix: Undo merging a layer that is cloned (bug 397836)
- Improvement: Add fractional DPI scaling (found in settings)
- Improvement: Allow clone brush to have an option to reset origin after every stroke
- Fix: Canvas input cursor updates when it has no input focus (bug 369305)
- Fix: Hiccups when using wheel on Wacom’s tablet (bug 381452)
- Fix: Clone brush should use the last layer the source was placed on (bug 401919)
- Fix: Tilt elevation curve corrections (bug 399846)
- Fix: Do not focus on tag search line edit in the show event (bug 404131)
- Usability: Only show layer styles contour and texture when Bevel and Emboss is checked (bug 396015)
- Python: Comics plugin improvements to file saving and creating documents
- Fix: Pop-up palette color fix when changing themes
- Usability: Improve control point size for brush editor curves (bug 406233)
- Feature: Add option in settings to disable AVX optimizations on Windows (bug 406209)
- Fix: Make font size consistent (bug 406386)
- Fix: Unable to select new view item with OSX long path names (bug 403639)
- Usability: Theme change fixes for overview docker, rulers, and subwindows
- Fix: Memory leak caused by converting function
- Fix: Wrong position of the merged layer (bug 405686)
- Fix: Right clicking on popup-palette color selector hides it (bug 402990)
- Fix: rulers showing pixels no matter what unit (bug 406181)
- Fix: Crash in Split Alpha function (bug 406241)
- Fix: wrong bounding box on gradient map (bug 406234)
- Fix: page orientation switch in new dialog (bug 374493)
- Improvement: Do a better job when finding ffmpeg for flatpak (bug 405146)
- Improvement: Do a better job when calculating nearest neighbor filters (bug 401788)
- Usability: Improve contrast with checkboxes on pen settings and brush favorites
- Fix: Allow group layers to be transformed and improve logic for layers that cannot be transformed (bug 406036)
- Fix: Background color being lost after merging (bug 405230)
- Improvement: Remember last used directory for shortcut import/export (bug 368360)
- Improvement: Improve canvas refresh rate when moving vector objects (bug 403340, bug 405698)
- Improvement: Intel OpenGL detection for newer drivers
- Fix crash on quick brush engine because of calculations (bug 404179)
- Fix: splash screen on some high DPI screens
- Improvement: Move color filters on onion skin out of combo box for easier toggling
- Usability: Improve contrast with checkboxes on brush settings, pen sensors, and blending modes (bug 404190)
- Fix: hangup when starting painting too quickly after changing opacity (bug 405879)
- Fix: Data loss when adding multiple hold frames through right-click menu (bug 404246)
- Fix: Copy correct image cache when cloning a layer (bug 387698)
- Fix: Only show Intel graphics card warning on Windows
- Text: changed “Launch Bug Report Wizard” to “Submit Bug Report” from main menu (bug 406152)
- Usability: Add tooltip to eraser button in toolbar
- Fix activation of isolate mode when merging layers down (bug 295981)
- Improvement: Add ability for shape brushes to use patterns for filling
- Fix: Transform tool crash on layers with pass-through mode
- Improvement: Add more information like HighDPI and language to usage logger
- Fix: Make sure a masked painter knows about outlines (bug 404963)
- Fix: Make sure polyline takes into account the no-stroke setting
- Feature: Add ability to export animation to PNG sequence using commandline
- Fix: Better handle loading recent files (bug 405364)
- Improvement: Better show/hide progress bars when loading an unsupported image (bug 402625)
- Feature: Add mirroring capability for Quick brush (bug 372636)
- Usability: Add a second row to pop-up palette presets if the number gets above 20 so they are easier to see
- Fix: Color smudge might not have an image for tip (bug 405336)
- Fix: Prevent crash with mirror manager decorations
- Fix: When no outline is selected, outline doesn’t use brush width (bug 398509)
- Fix: Low pixel size limit in Scale to New Size dialog
- Feature: Simplex Noise Generator can now be used from a fill layer
- Usability: Make disabled icons in animation docker semi-transparent to be like other disabled icons
- Fix: creating vector shapes with pattern fills (bug 405037)
- Fix: minimum animation cell grid size on windows
- Fix: conversion errors in Scale new image dialog (bug 400177)
- Improve UI for Arrange docker to make it easier to understand (bug 399984, bug 394084)
- Fix: Only load a thumbnail for a recent file that still exists (bug 401939)
- Improve angle selection on layer effects (bug 372169)
- Fix: Restore broken fonts (bug 402092)
- Add a few new options for fill type when creating new documents
- Fix: Remove the default shortcut for text tool. We just don’t have any good available keys left (bug 402270)
- Improve animation export dialog: Add warning when dimensions are not divisible by 2 for MP4 and MKV. Make sure the default dialog uses the encoder config for the format
- Fix opening templates from the command line (bug 402342)
- Inserting a layer when on a group layer adds it above the layer, not inside it now (bug 399103)
- Feature: Advanced Color Selector – Add option to hide the color selector in the configure menu (bug 337328)
- Remove old Karbon gradient files that weren’t being used
- Fix: Restore the UI after crashing in canvas only mode (bug 402710)
- Fix: Added safe assert to prevent Krita from crashing when a toolbar gets accidentally enabled
- Improvement: Add more information to the bug reporter with memory, CPU cores, and swap location
- Usability: Update the layer box to better to support RTL languages
- Feature: Add Python plugin importer to make importing plugins easier
- Improvement: Add direction choice for the Image Split feature
- Fix: Actions on Move Tool only being executed after changing current node in move tool (bug 403048)
- Fix: Python API. Fix crash when trying to access projection pixel data on transform mask (bug 402382)
- Fix: Return colorspace of projection before returning the colorspace of the node (bug 402382)
- Improvement: Enable automatic docstring generation for python (commit e7fe83c9)
- Fix: Loading KRA files with image names starting with a “/” symbol
- Fix: Enabling the selection mode shortcuts (bug 403587)
- Improvement: Generator Layers. Added real-time preview when changing layer properties
- Improvement: Polygonal Selection: Add ability to undo these operations
- Fix: File layers: Use the mergedimage preview when opening ORA or KRA files
- Improvement: Transform Tool: Added Granularity to tool options
- Back-end: Update Qt programming framework to Qt 5.12
- Improvement: Update GMIC filters plugin to version 2.4.5
- Back-end: Update PDF library (Poppler) to version 0.74.0
- Back-end: Update Python API libraries (PyQt and SIP) to version 5.12
- Improvement: Added new blending modes: Reflect, Glow, Freeze, Heat, Glow-Heat, Heat-Glow, Reflect-Freeze, Freeze-Reflect, Heat-Glow & Freeze-Reflect Hybrid
- Fix: Save mirror tool state to KRA file (bug 339515)
- Usability: Make it easier to select lower values for stabilizer sliders
- Fix: Saving reference images z-order (bug 403974)
- Fix: Disable use of Always Use Template in the New File Window (bug 399796)
- Fix: Be the top handler of applications on some Linux distributions (bug 337272)
- Usability: Add a tooltip to the composition docker
- Fix: Bug where mirroring canvas would get out of sync with the main menu action
- Fix: Check if animation config exists before accessing its contents (bug 404521)
Krita 4 Release Notes:
With a complete rewrite of the vector layer file format, the addition of Python scripting, a new text tool and much more, Krita 4.0 is one of the biggest releases ever. There is so much to explore and enjoy! As a team, we’re happy and proud to have reached this milestone and we’re looking forward to build on Krita 4 for many releases to come.
Before we begin telling you about all the new and improved things, take a moment to read this warning:
Krita 4 has a new file format for vector and text objects. Krita 4 tries to import Krita 3 and older files. Krita 3 and older will not be able to read vector and text objects saved by Krita 4. Because the new file format and the old file format are not 100% compatible, images with vector and text objects might look different in Krita 4. We recommend:
- To always keep a backup of your Krita 3 files before working on them in Krita4!
- In some cases, to convert your vector and text layers to raster layers before working on your old files in Krita 4!
Note that on all platforms it is possible to keep Krita 3 and Krita 4 running side by side. On Windows, use the zip archive downloads, on Linux the appimages and on OSX the disk images, dragged to some other place than Applications. Krita 4 and Krita 3 share settings and resources.
- For 4.0, Tyson Tan has again created an awesome Kiki image. The Chinese plum blossoms symbolise overcoming hardship, so it’s a very apposite image for the first major release of Krita after 2017’s tribulations!
- There is no scripting available on macOS. We had it almost working when the one macbook the project has received a broken update, which undid all our work. G’Mic is also not available on macOS.
- The lock and collapse icons on the docker titlebars are removed: too many people were too confused by them.
If you find a new issue, please consult this draft document on reporting bugs, before reporting an issue. After the 4.0 release, more than 150 bugs were reported, but most of those reports were duplicates, requests for help or just not useful at all. This puts a heavy strain on the developers, and makes it harder to actually find time to improve Krita. Please be helpful!
- Patch QSaveFile so working on images stored in synchronized folders (dropbox, google drive) is safe
- Fix duplicate shortcut on Photoshop scheme
- Alphabetize shortcut to make the diffs easier to read when doing changes
- Make the triangles larger on the categorized list view so they are more visible
- Disable the macro recorder and playback plugin
- Remove the docker titlebar lock and collapse buttons. BUG:385238 BUG:392235
- Set the pixel grid to show up at 2400% zoom by default. BUG:392161
- Improve the layout of the palette docker
- Disable drag and drop in the palette view: moving swatches around did not actually change the palette. BUG:392349
- Fix selecting the last used template in the new document dialog when using appimages. BUG:391973
- Fix canvas lockup when using Guides at the top of the image. BUG:391098
- Do not reset redo history when changing layer’s visibility. BUG:390581
- Fix shifting the pan position after using the popup widget rotation circle. BUG:391921
- Fix height map to normal map in wraparound mode. BUG:392191
- Make it possible to edit the font size in the svg text tool. BUG:392714
- Let Text Shape have empty lines. BUG:392471
- Fix updates of undo/redo actions. BUG:392257
- Implement “Convert text into path” function. BUG:391294
- Fix a crash in SvgTextTool when deleting hovered/selected shape. BUG:392128
- Make the text editor window application modal. BUG:392248
- Fix alignment of RTL text. BUG:392065 BUG:392064
- Fix painting parts of text outside the bounding box on the canvas. BUG:392068
- Fix rendering of the text with relative offsets. BUG:391160
- Fix crash when transforming text with Transform Tool twice. BUG:392127
- Fix handling of keyframes when saving. BUG:392233 BUG:392559
- Keep show in timeline and onion skin options when merging layers. BUG:377358
- Keep keyframe color labels when merging layers. BUG:388913
- Fix exporting out audio with video formats MKV and OGV.
- Do not load/save layer channel flags anymore (channel flags were removed from the UI in Krita 2.9). BUG:392504
- Fix saving of Transform Mask into rendered formats. BUG:392229
- Fix reporting errors when loading fails. BUG:392413
- Fix a memory leak when loading file layers
- Fix loading a krita file with a loop in the clone layers setup. BUG:384587
- Fix showing a wait cursor after loading a PNG image. BUG:392249
- Make bundle loading feedback a bit clearer regarding the bundle.
- Fix crash when creating a vector selection. BUG:391292
- Fix crash when doing right-click on the gradient fill stop opacity input box of a vector BUG:392726
- Fix setting the aspect ratio of vector shapes. BUG:391911
- Fix a crash if a certain shape is not valid when writing SVG. BUG:392240
- Fix hidden stroke and fill widgets not to track current shape selection BUG:391990
Painting and brush engines
- Fix crash when creating a new spray preset. BUG:392869
- Fix rounding of the the pressure curve
- Fix painting with colorsmudge brushes on transparency masks. BUG:391268
- Fix uninitialized distance info for KisHairyPaintOp BUG:391940
- Fix rounding of intermediate pressure values
- Fix the colorsmudge brush when painting in wraparound mode. BUG:392312
Layers and masks
- Fix flattening of group layers with Inherit Alpha property set. BUG:390095
- Fix a crash when using a transformation mask on a file layer. BUG:391270
- Improve performance of the transformation mask
Software similar to Krita 3
Image and photo manipulation software designed to be used on computers that run Windows.
Speedy Painter is an OpenGL based painting software for Windows. It supports Wacom digitizers to vary size and opacity of brush strokes according to pen pressure.
Photoshop CS2 pushes the envelope with powerful features and simplified workflows that provide photographers and creative professionals the freedom to deliver stunning images.