Darktable 3.0 workflow

Firs of all, this is about using the new stuff introduced in DT 2.7/3.0.

I understand that a proper workflow would be to follow one of the two options:

  1. base curve + tone curve

  2. filmic rgb + tone equalizer

N. 2 would avoid the user to use shadow highlights and tone curve / rgb curve altogether, if I’ve understood correctly.

Can we add a number 3 perhaps? something like:

  1. exposure+rgb curve

Is there anything missing from such a simple sequence like this (obviously followed by denoising when needed, sharpening and local contrast)? Something to use for example when you don’t want to increase your blacks (so no need to resort to the old shadow/highlights or filmic with its ability to distribute light in a uniform way all over the photo)?

After this attempt of oversimplification, a bazillion other questions came to me, born out of confusing late-night experiments and assorted readings on this forum, watching videos while half-asleep etc. I’ll try to follow a certain logic, so here we go.

Tone curves in LAB mode

Is the tone curve in LAB mode (that until recently was my go-to module to do the bulk of my processing) deprecated or not?

I have read about the necessity to follow a complete RGB pipeline, so my understanding is that we should not do any more processing in LAB mode – which means I should abandon my dear Tone curve in LAB mode. Is this correct? Is this the reason for the introduction of the RGB curve module? And finally: is RGB curve module (linked mode) == Tone curves in RGB m,ode (linked)?

Correcting color casts

If the above is true, i.e. don’t use Tone curve in LAB mode, how am I supposed to fix color casts? I was used to adjust the A/B curves to do this, so is there an alternative for doing this?

I suppose the answer lies in the new color balance module and its ability to neutralize colors, but is there any other recommended method?

Exposure in the pipeline

What is the correct order in the pipeline for the exposure module?

I’m asking because of two contrasting sets of notes I’ve scribbled down. First this:

  • white balance

  • filmic rgb

  • exposure

  • [color corrections]

But I also have the following, from a message posted here on some other thread:

  • exposure

  • white balance

  • color profiles / LUT

  • filmic (tones)

  • color balance (colors)

  • denoising and [other enhancements]

So which is the correct one? Exposure before WB? Exposure after WB and filmic?


All the new modules (filmic rgb, rgb curves etc) default to suppress the famous ‘oversaturation’ effect. So what is the best/most correct way to add back some saturation to photographs?

A little background: back in my first days of Darktable I was happily using S-curve to not only increase contrast but also saturation. I think I’ve learnt this when using Lightroom and thought that this was a natural and desired consequence, until DT’s developers started yelling at me, saying “careful you moron! this increase in saturation is a by-product and it’s something conceptually wrong!!! You think you want it but in reality you should not-want-it-ever-again!”.

So how do I go adding back some saturation? Is velvia a good module to use (to me it seems like a module that adds the saturation in all the correct places; for instance vibrance I’m not sure what to make of it, while I distinctly remember that in Lightroom this was the slider to use as opposed to saturation; in DT it seems to me like vibrance doesn’t do much)? Or is the saturation slider in the new color balance module the one to use?


This is a for-what-its-worth sort of thing, not specific to any software…

Exposure and white balance are both unconstrained arithmetic multiplication of the image data. I’d surmise that they need to be done before any tone curve, with special attention to not pushing the data into clipping at the white point. Once the data is positioned thusly, the tone curves mostly peak at the white point, which means they usually don’t push the data past white. With that in mind, I’d put the tone curves after such multiplication.

Indeed, that pretty much describes my workflow. At the end of demosaic, I have a RGB image that is still scaled to the original camera range, in my case 14-bit. I think a lot of folk would then scale the data to fit in the display range using exposure; I use a blackwhitepoint tool that has an option to place black and white at the min and max of the data. So now, I have a RGB image with data that is linearly scaled to fit between black and white. At this point, I usually introduce a curve, which now redistributes the data non-linearly for some purpose, usually to lift the shadows into visibility. Lately, it’s been mostly a filmic curve, but sometimes I want to pull the lower data “lower”, so I’ll use a manually-constructed S-curve. But sometimes, the linear data looks fine, so I leave it “uncurved”. Depends on how the scene was lighted, or even just my whim. I love to separate a bright subject from its darker background with such a curve; I recently did one of these for this PlayRaw, with a screenshot of the curve:

I’m also a fan of minimizing the number of operations. I think sometimes we whipsaw the data with sometimes conflicting operations, especially curves, at the expense of color saturation and casts. I’ll usually start with filmic, but if it isn’t scratching my itch, I’ll pull it out and replace it with a manual curve. Very Very rarely will I use both. I’d like to take this minimalism to an extreme and use my camera profile to also correct white balance (I’ve messed wtih such, and it works well), but I’m too lazy to shoot ColorChecker shots for most sessions :smile:

Anyhoo, take-with-grain-o-salt…


Reading your post, it sounds like you didn’t watch Aurelien his videos at all :slight_smile: Maybe try again with enough sleep. Sleeping is learning, a mind without enough sleep can’t learn. (Book suggestion: Why we sleep)

Back on topic. You work the pixel pipe from bottom to top. This means you follow these steps:

  1. white balance
  2. demosaic
  3. lens correction (vignetting correction change exposure, tca fixes colors)
  4. exposure to bring all pixels into the histogram
  5. denoising (if you want to use auto tune in filmic rgb)
  6. filmic rgb

Note that for really dark pictures, you need to increase the exposure to see something before you can do any of the other steps, but exposure should be set before filmic rgb.

After these steps normally you should be done for most of the pictures! If not everything after that is the artistic workflow.

If you want to increase saturation, use the output saturation slider in the color balance module.

Using tone curve in Lab mode is fine. Also there is a difference between tone curve and rgb curve. I find the blending modes with a tone curve much more pleasing. Haven’t looked why this is the case yet.


I don’t think you should abandon LAB tone curve. Some modules work on RGB Channels like demosaicing or white balance.
For other modules like a tone curve LAB mode offers much more editing capabilities than RGB. Just check this comparison of LAB and RGB.

You can reproduce that with the tone curves in darktable. Doing these ‘crazy’ curves in LAB A and B channel don’t mess up your image since they don’t affect the L channel.
RGB channels don’t have this flexibility.

Moreover LAB Color is intended to approximate human vision. Watch the latest video by Aurelien Pierre from 10:15

Lab is an attempt of modelling human vision from 1976. There are better ones available now, and it is not intended to push pixels creatively, especially not in high dynamic ranges. Some technical operations like gamut mapping make sense in Lab, when you try match some colour to the closest colour in another space, you can use Lab (or better ones) to minimize the Delta E.

Yet it has some benefits when you want to switch a and b channels for creative work on colour, but you need to ensure you work in the display-referred place of your pipeline. We still have to design similar tools that are not bounded by this low dynamic range constraint.

No other recommended method, I have designed the neutralizing color option in the color balance specifically for that purpose. There is the colour correction module too, working in Lab, but the result it gives is otfen weird, and the UI is not very practical.

Exposure can theoritically go anywhere in the scene-linear part of the pipeline, that’s the beauty of linear editing. Yet, since the input colour profiles are optimized for better colour rendition around midtones, if you really underexposed your shot, you might better put it before input colour profile so you raise the raw signal in the profile’s sweet spot before matching colours.

WB works on non-demosaiced pictures and exposure on demosaiced RGB, so there is no way you can switch them both: WB needs to be before demosaicing, and exposure after.

I think you are overthinking it.

  1. do as much editing as you can with an RGB scene-linear workflow, because it’s robust (less prone to haloing, and weird side effects), physically accurate and usually more natural-looking when you push sliders far away,
  2. if you need Lab tools for special effects and creative stuff, use them, but ensure you do so in a tone-mapped space and keep in mind they are not robust enough to make dramatic lightness changes to your picture without screwing chromaticity, raising noise, or creating halos (sometimes all at once),
  3. in case of any doubt, use what looks best.

As a designer of tools, I have to consider the most robust way to use them in an efficient pipeline that will cause minimal distorsion to images and minimal overhead for users (overhead being, in general, you need to correct the side effects of one module with another or do circular editing). So the workflow I propose is like the hands at 10:10 on the stirring wheel when you learn how to drive: the always safe option. It doesn’t mean you can’t drive single-handed under light traffic conditions in straight lines once you got your driving license. But get your driving license first.

All the advice I give here is aimed at getting a natural-looking picture, similar to the original scene, in a minimal amount of time. Once you have achieved this purpose, you either have your finished product if you are a documentary photographer, or a clean base to continue with more creative work and special effects, for which I have nothing to say (do whatever you like). If you want to switch a and b channels, do it, but if you need to mask & blend the output of this, be careful of the transition at mask edges because you could get weird stuff.

All this is assuming you want to use the auto-tuners in filmic.

Filmic is your LDR goggles over a (possibly) HDR signal. So you could set it up first with some preset, just to get a proper scope over your signal, then work the WB, exposure and denoising magic on something you can actually see. You don’t necessarily have to set up the modules in the same order they are applied (unless you use parametric blending, because the masks depend on the output of the previous modules, but this is because masking is badly designed in dt).

I think I should put this warning everywhere though:

All the advice I give is aimed at getting a natural-looking picture, similar to the original scene, in a minimal amount of time. Once you have achieved this purpose, you either have your finished product if you are a documentary photographer, or a clean base to continue with more creative work and special effects.

If there is only one thing to remember, it’s this:

Lab is not suited as a general-purpose editing space to correct and adjust pictures. Use it only for gamut mapping and special colour effects in Low Dynamic Ranges spaces.


Personally I rarely use a bare Luma curve – when you increase contrast your brain expects some saturation boost as well, maybe not so much as what you get with an RGB curve, so it’s somewhere in between.

Where I find Lab curve useful is when I need saturation boost – making steeper *a and *b curves is a very nice way of increasing saturation that looks perceptually OK. I’m not sure if Lab is the colour model used by the Vibrance or Velvia tools, but it should be. Otherwise you can make your own Vibrance tool by using Lab curve with parametric masking, utilizing the Chroma channel for the mask – see Harry Durgin’s approach.


Just a quick note to say thanks to everybody that has posted in this thread. All very valuable contributions for me; yesterday evening (again, very late!!!) it was a fun processing section, I felt much more confident in what I was doing. I discovered that old edits have the processing pipeline totally screwed up compared to new photos, but that’s something that Aurelien has repeatedly written here and on youtube, so I won’t be going through my old edits just to put modules in the “correct” order… I promise!!

1 Like