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.
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 220.127.116.11, “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 18.104.22.168, “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.6, “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 22.214.171.124, “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.7, “Drawn mask”) and parametric masks (Section 3.2.8, “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.
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.