darktable page lede image
darktable page lede image

3.2.4. Multiple instances

Many of darktable's modules can be applied multiple times. Each instance of that module behaves like any other module, taking its input from the module below in the pixelpipe delivering its output to the module above.

3.2.4.1. Typical use cases

There are many occasions where it makes sense to have an operation act more than once in the pixelpipe. Here are a few use cases.

  • Most of our modules are highly versatile and depending on parameters can deliver quite varying effects. For example the fill light module (Section 3.4.2.8, “Fill light”) allows local modification of lightness based on pixel values. You might want to do two lightness corrections in your image at the same time – one for dark tones and another one for lighter tones.

  • You might want to apply a denoising module like denoise (profile) (Section 3.4.1.22, “Denoise – profiled”) with two different parameter sets. One to do luma denoising and another set of parameters to do chroma denoising. You could do so by generating two instances and use the first one only on luma by selecting blend mode lightness and use the second one just for chroma by selecting blend mode color (see Section 3.2.5.4, “Blending operators”).

  • In an even more elaborate case you could have a module act on different parts of your image. As an example you might want to apply a certain gradation curve with module tone curve (Section 3.4.2.13, “Tone curve”) to your complete image and have a second curve being applied specifically to skin tones. All of the controls offered by drawn masks (Section 3.2.5.5, “Drawn mask”) and parametric masks (Section 3.2.5.6, “Parametric mask”) may be used to select those parts of an image where each of the module instances are applied.

Please be aware that of course each instance also adds to the workload of your pixelpipe. Generating too many instances – especially of the more demanding modules – will certainly cause some noticeable slow-down.

3.2.4.2. Managing instances

When clicking on the icon a drop-down menu will appear.

Selecting new instance generates a new module instance above any existing ones. All parameters are set to default values. The new instance gets its own complete set of GUI controls and a number appended to the base module name for distinction.

Selecting duplicate instance behaves in a similar way. The only difference: the new instance will inherit all parameter settings from its parent.

darktable applies all modules in a defined order according to their type. Therefore all instances of a particular module will occur together in the pixelpipe. You can however decide on the relative order in which the different instances of a module are applied by selecting move up or move down to shift the position of the instance among its peers.

To delete an instance just press delete from the drop-down menu.

An instance can have any name without influencing the edits. To change the name use the rename option. See Section 2.3.9, “History stack” for more details on how the instance name impacts copying and pasting history stacks.