WebP is a file format based on the RIFF container specification that, like *.heif and *.avif, builds upon a video codec (VP8) to support Lossy and Lossless Image Compression. WebP tends to be largely used for websites, though not all websites support uploading such files. If you self-host you can investigate whether WebP is an improvement over *.jpg or *.png. However, it is not very widely supported by image editors, so if you are doing collaboration with other artists, it may be better to use a different file format.

Krita has supported simple WebP export for a while, but since 5.1 it supports all the export options offered by libwebp.

Export Options:

Instead of making you responsible for the precise settings, the WebP exporter will try out different techniques to compress better. You give a goal (a given quality or a certain file size) to aim for, and it will try its best to reach that goal. To do this, it may actually try to redo a given step of the encoding process several times. In the end, what you will have to choose is whether you want a high quality result at the cost of a slow export, or a quick export at the cost of quality.



WebP offers some presets for a given type of photo. For stylized images, use Line Drawing, for painterly images, use Portrait or Outdoor Photo.

Lossless Compression:

Use the lossless compression mode, this is a slightly different algorithm, which is heavier but gives better results for sharp contrasts.


Slider for quality.

With Lossless Compression, 0% means the library will use the fewest amount of algorithmic tricks to reduce file size. This means fast saving times, at the expense of larger files. Conversely, 100% means all algorithmic tricks will be used, leading to the smallest file size, but saving will take longer. The first is best for a situation where speed is more important than size, such as files you share via USB. The latter is useful for situations where the file size can become a problem, such as serving it over the Internet.

Without Lossless Compression, image information considered redundant will be removed, rather than compressed. This means that at 0%, the most information will be lost and thus the smallest file size is achieved. This also reduces the overall quality. Conversely, 100% will remove the least amount of image information and thus maintain quality at the expense of a large file size.

Trade Off

A slider that allows you to select whether saving speed is more important than quality.


This enables dithering, which allows storing fewer colors while still keeping good gradients.


SNS Strength:

Specifies the strength of the Spatial Noise Shaping algorithm, which tries to see if parts of the image can be better compressed than other parts.

Filter Strength:

Strength of the deblocking filter. 0% will mean there’s no filtering after decoding, with increasing filter strength the image will appear smoother.

Filter Sharpness:

Defines the sharpness of the deblocking filter, with 0 being the sharpest and 7 being the least sharp.

Filter Type:

Type of deblocking filter, options are Strong and Simple.

Alpha Plane Compression:

Whether to losslessly compress the alpha channel (Lossless) or outright discard it (None). None

Predictive Filtering for Alpha Plane:

Whether to use predictive filtering for the alpha/transparency. Best will try all potential predictive filter modes before deciding which one to use, making it slower than Fast, which just makes a guess and selects that.

Alpha Plane Quality:

Compression quality for the alpha channel. 0% means smallest size, 100% means no compression. Only with Alpha Plane Compression set to Lossless.

Show Compressed:

Tells libwebp to skip the in-loop filtering step. May adversely affect the quality of the end file.

Multithreaded Encoding:

Use multithreading for encoding if possible.

Reduce Memory Usage:

Try to reduce memory usage at the cost of speed.


Preserve RGB values in transparent areas instead of defaulting them to transparent black.

Use Sharp YUV:

Whether to use the slower, but more accurate, RGB to YUV conversion.

Lossy Compression

The following options only apply if Lossless Compression is off.

Target Size:

Specify the amount of bytes to aim for.

Target PSNR:

PSNR means Peak Signal to Noise Ratio <https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio_>, and indicates how much noise the image has. Higher values mean less noise is accepted.


How many segments the VP8 video codec can divide the image into. VP8 accepts between 1 and 4 segments.


Sets how many partitions can the VP8 codec use for storing decompression information. Must be between 0 and 3. Default is 0 to make decoding easier.

Auto Adjust Filter Strength:

The encoder will spend some time tuning and selecting the best filter options before encoding.

Entropy Passes:

Number of passes to do for selecting the best option between target size and target PSNR.

Emulate JPEG Size:

The encoder will try to match the size of a jpeg of similar dimensions.

Minimum Quality:

Used with ‘entropy passes’, the lowest allowed quality for the image.

Maximum Quality:

Used with ‘entropy passes’, the highest allowed quality for the image.

Preprocessing Filter:

Whether or not to add Pseudo Random Dithering to the image before converting RGB to YUV.

Lossless compression

The following options only work with Lossless Compression on.

Partition Limit:

Limit how big a given segment is in bytes. The higher this is, the less possible information is stored per segment.

Near Lossless:

The encoder is able to minimally adjust pixel-values so they compress better in lossless compression mode. This enables this feature. Automatically triggers Lossless Compression.