Navigate

Features Brushes Journal Studio Contact

Journal How to convert Procreate brushes to Krita

There is no one-click converter. Here is what actually moves across between the two apps — the textures — and how to rebuild the brush in Krita.

Short answer: you cannot convert a Procreate brush to a Krita brush, and any site promising a one-click .brush.kpp converter is selling you a ZIP extractor with extra steps.

What you can do — and what most people actually want — is recover the textures out of a Procreate brush and rebuild the brush around them in Krita. The textures are the part with the character. The rest is settings you can dial in yourself in about five minutes, and which would not have survived a conversion anyway.

Why a real converter cannot exist

A brush in any of these apps is two different things bolted together:

  • Textures — a shape (the stamp that gets stamped along your stroke) and usually a grain (the paper or bristle texture that shows through it). These are just images. They move anywhere.
  • A configuration — spacing, jitter, pressure and tilt response curves, blend behaviour, wet-edge and smudge parameters, taper rules.

The textures are portable because a PNG is a PNG. The configuration is not, because it is a description of one engine’s behaviour. Procreate’s spacing value and Krita’s spacing value are numbers in two different renderers that do not agree on what a stroke is. There is no correct number to translate one into the other — only a number that happens to look close on one particular stroke.

This is the same reason a .abr import into Krita gives you Photoshop’s shapes and not Photoshop’s brushes.

Anyone who tells you their converter preserves pressure dynamics is preserving a number, not a behaviour.

What you need

  • The .brush or .brushset file on a computer — not on the iPad
  • Any unzip tool
  • Krita 5.x

A quick note on licences before you start: converting a brush you bought for your own use on another app you own is normally fine, but a lot of commercial brush licences prohibit redistribution in any form. Extracting textures to use privately is one thing; posting the result as a Krita pack is another. Check what you agreed to.

Step 1 — open the Procreate file as a ZIP

Both .brush (a single brush) and .brushset (a collection) are ZIP archives. Rename the extension to .zip and extract it.

MyBrushes.brushset  →  MyBrushes.zip  →  extract

Inside a .brushset you will find a brushset.plist describing the set, and a folder per brush. Inside each brush folder are the images — the shape and the grain — as PNGs, plus an archive file holding the settings and a thumbnail. Exact filenames have shifted between Procreate versions, so go by what the images look like rather than by name: the shape is usually a soft white mark on black, and the grain is usually a busy greyscale texture that tiles.

The settings file is a binary property list. You can open it out of curiosity. It will not help you.

Step 2 — get the shape in as a brush tip

In Krita, the image you stamp is a brush tip. A brush preset (.kpp) is a brush tip plus all the settings around it. You are importing the former and building the latter.

  1. Open the Brush Settings Editor — F5, or the icon beside the brush preset dropdown in the toolbar.
  2. Choose a Pixel Brush engine preset as your starting point.
  3. In Brush Tip, switch to the Predefined tab.
  4. Use the import button to load the shape PNG you extracted.

Krita accepts PNG, .gbr (GIMP) and .abr (Photoshop) as brush tips.

Two things to fix immediately:

  • Invert if it looks wrong. Krita reads a predefined tip as luminance — black is opaque, white is transparent, which is the opposite of how Procreate shape files are usually authored. If your stroke comes out as a hole instead of a mark, invert the PNG and re-import.
  • Trim the transparent margin. Procreate shapes often sit inside a lot of empty space. That space becomes part of the tip and makes the brush behave as if it were much larger than the visible mark.

Step 3 — put the grain back

The grain goes somewhere else: Texture, in the list of brush options down the left of the Brush Settings Editor.

  • Enable Texture, and pick your grain PNG as the pattern.
  • Scale controls how big the texture reads relative to the canvas.
  • Brightness and Contrast are what make it subtle or aggressive — start low, most people overdo it.
  • Set the texturing mode to Multiply for a paper-tooth effect, or Subtract for a harder, bitten-in feel.

If the texture appears to crawl along with the stroke instead of sitting still on the canvas, that is what most people mean when they say the converted brush “feels wrong”. Krita gives you a texture that is anchored to the canvas, which is usually what you want.

Step 4 — rebuild the feel

This is the part nobody can do for you, and it is the part that matters.

Procreate Krita equivalent Notes
Stroke Path → Spacing Brush Tip → Spacing Lower spacing, smoother stroke, slower brush
Stroke Path → Jitter Brush Tip → Randomness Also see the Rotation and Size scattering options
Shape → Randomised / Rotation Rotation Set the sensor to Random or Drawing Angle
Apple Pencil → Size / Opacity Size / Opacity, sensor = Pressure Edit the curve, not just the on/off
Apple Pencil → Tilt Size / Opacity, sensor = Tilt Not every tablet reports tilt
General → Blend mode Blending Mode On the toolbar, not in the editor
Wet Mix Colour Smudge engine A different engine, not a setting

That last row is the honest one. If the Procreate brush leaned on Wet Mix, you are not converting it — you are rebuilding it on Krita’s Colour Smudge engine, which behaves differently enough that you should treat the original as a reference image rather than a spec.

Draw a long, slow S-curve with a hard press in the middle. That single stroke exposes spacing, pressure curve and taper faster than any amount of squinting at settings panels.

Step 5 — save it properly

In the Brush Settings Editor, click Save New Brush Preset, give it a name and a recognisable thumbnail. That writes a .kpp file into your Krita resource folder, which is what you back up and what you share.

To move a whole set, use Settings → Manage Resources → Create Resource Bundle and export a .bundle. That is Krita’s equivalent of a .brushset.

The part that should annoy you

You just did all of that because two apps that both stamp a PNG along a path decided their settings files should be mutually unreadable.

It is worth being clear that this is a choice, not a technical limit. When we designed the .apexobrush format for Apex Olira, the requirement was that one file has to import identically on iPadOS, macOS and Android — same textures, same curves, same result — because the alternative is asking people to do this every time they change device. It is an archive of the stamp textures and the brush configuration together, and there is nothing platform-specific inside it.

That does not help you move a Procreate brush into Krita today. It is just the reason we think the step above should not have to exist.

Common problems

The stroke is a solid blob. Your shape is fully opaque. Invert it, or check you imported the shape rather than the grain.

The brush is enormous at size 20. Transparent margin around the shape. Crop it and re-import.

Everything looks flat and dead. You have the shape but no grain. Go back to step 3 — the grain is usually where a brush’s character lives.

The texture moves with the stroke. Check the texture options; Krita anchors patterns to the canvas by default, which is generally the more natural result.

Nothing happens when I import a .brush directly into Krita. It cannot read it, and never will. Extract it as a ZIP first.

If you are here because you are leaving the iPad

This whole procedure exists because a brush library does not survive a change of app. If the change you are actually making is a change of platform, the decision has a different shape, and we have written it up separately:


Brushes that travel

Apex Olira uses one .apexobrush file across iPad, Mac and Android. Free packs need no account.

Browse the brush studio →

Something wrong here?

Formats change and vendors move things. If a step no longer matches what you see, tell us and we will fix the page.

Send a correction →