3.2.5. Blending Overview

By default a module takes its input from the preceding module, performs its calculations and handles its output over to the next module in the pixelpipe. On demand you can activate an additional step where a module's output is reprocessed with its input before giving the result to the next module. This additional processing step is called blending. Input and output can be processed with different algorithms, called blending operators or blend modes.

Each blend mode is further controlled by a parameter called opacity, which can have a value between 0% and 100% and defines how input and output image contribute to the final result. Typically an opacity value of 0% gives as a result an image that is identical to the input image – the module remains without effect. An opacity value of 100% delivers the maximum effect of the module with the blend mode chosen.

The opacity value can be the same for all image pixels. In this case blending acts uniformily on the image. Alternatively you can make opacity values to vary between different image locations or pixel values. This is called a mask and gives fine control over what parts of an image are affected by a module and to what extent. At your choice you may activate a drawn mask or a parametric mask or a combination of both. Usage

Modules with blending support exhibit an additional combobox blend at the bottom of their GUI.

Blending is activated with this combobox. Depending on the value selected additional control elements will show up.


module's output is passed to the next module in pixelpipe without additional reprocessing. No further controls are displayed.


reprocessing takes place with the chosen blend mode and opacity value – the same for all pixels. Additional controls to select blend mode and opacity value are displayed. The default blend mode is normal with an opacity of 100%.

drawn mask

reprocessing takes place with the chosen blend mode and opacity. Additional controls are displayed which allow you to draw a mask. If no mask elements are drawn all pixels have the same opacity, defined by the opacity slider. If you draw a mask element, e.g. a circle, the inner area of the circle will get maximum opacity, surrounded by a transition area or border with a gradual decay of opacity and the remaining image with an opacity of 0%. Different graphical shapes can be used. See Section 3.2.7, “Drawn mask” for further details.

parametric mask

reprocessing takes place with the chosen blend mode and opacity. Additional controls are displayed which allow you to adjust the opacity on a per-pixel basis determined by pixel values. In previous versions of darktable this was called conditional blending. See Section 3.2.8, “Parametric mask” for further details.

drawn and parametric mask

this option combines drawn and parametric masks and shows the full set of both controls. See Section 3.2.9, “Combining drawn and parametric masks” to learn how to best use this combination.

Mask combination and inversion
invert mask

When drawn mask is selected there is an additional combobox to invert the mask by switching mask inversion on or off.

combine masks

When either parametric masks, or drawn and parametric mask are selected an additional combobox is shown that controls how the individual masks are combined to form the final mask. Details on the combination of individual masks can be found in Section 3.2.9, “Combining drawn and parametric masks”.

Additional controls

When blending with a mask there are some additional options to deal with the final mask: you may blur the mask, temporarily disable it, or display it as an overlay image.

mask blur

Blurring the mask creates a softer transition between blended and unblended parts of an image and avoids artifacts. The mask blur slider controls the radius of a gaussian blur applied to the final blend mask. The higher the radius, the stronger the blur – or set to 0 for an unblurred mask.

temporarily switch off mask

Sometimes it is useful to visualize the module's effect without the mask taking action. You can do so by clicking on the symbol, which will temporarily deactivate the mask – the selected blend mode and opacity remain in effect. Switch this button on and off to see if the mask is acting on the image as intended.

display mask

Clicking on the symbol will display the current mask as a yellow overlay over a black-and-white version of your image. Solid yellow indicates an opacity of 100%; a fully visible gray background image without yellow overlay indicates an opacity of 0%. Examples

Texturing an image

The watermark module supports SVG files with embedded images that can be used as a texture source. Blending operators then allow control of how that texture is expressed.

Gritty details
When blending operators were introduced into darktable, a new module named highpass (see Section, “Highpass”) was added. It provides a highpass filter of the image to be implicitly used with blending. It is used to produce a gritty detailed image and is a method widely used in the workflow of other imaging software.

This is the original image, pretty heavily processed: first monochrome, then some blue splittoning but as you see it lacks pop in details and is a bit out of focus...

Here we applied the highpass filter with the values shown above. You can now see that the details are greatly boosted and we now have a really gritty detailed image.