Open Brushfactory

Brushfactory › Formats › .kpp

What is a .kpp file?

A .kpp file is a Krita brush preset. Uniquely, it functions as a standard PNG image. Rename one to .png and most image viewers will display the preset's thumbnail.

What's inside one

The picture

A standard PNG of the preset thumbnail. The brush settings are embedded within the image data.

The preset chunk

A compressed PNG text chunk holding the settings as XML: the brush engine, its parameters, and one block per sensor curve.

The version chunk

Usually 5.0. The value matters: a preset marked 2.2 makes Krita skip its embedded resources entirely.

Embedded resources

Tip images and patterns live inside the XML as base64 text, each with an md5 checksum, so a .kpp is self-contained. A .bundle is simply a zip of many .kpp files.

A default curve is written as no curve at all. Krita omits the <curve> element when a sensor's response is the straight 0,0–1,1 line. An absent curve therefore means linear, not unset, and reading it as missing data is how a converted brush ends up with no pressure response at all.

How to open it

Krita imports .kpp through Settings › Manage Resources…, or you can drop the file into your Krita resource folder and restart.

Converting .kpp

Out of Krita: Krita → Photoshop, Krita → Procreate, Krita → Clip Studio Paint, Krita → GIMP, Krita → MediBang.

Into Krita: Photoshop → Krita, Procreate → Krita, Clip Studio Paint → Krita, GIMP → Krita.

What survives each trip, and what does not, is set out on the fidelity report.

Common questions

How do I open a .kpp file? Krita imports .kpp through Settings › Manage Resources…, or you can drop the file into your Krita resource folder and restart.
Can a .kpp brush be used in another app? Not directly, because brush formats are not interchangeable. Brushfactory reads the .kpp file into a universal schema and writes a native brush for Photoshop, Procreate, Clip Studio Paint or GIMP. For MediBang, it provides the brush tip and a settings sheet. The brush tips, grain, spacing, and pressure curves transfer as native settings.

The information on this page is derived directly from Brushfactory's own format parser (brushfactory/formats/kpp.py), which was built against the applications' own source and against real files, not from a specification document.