Darktable, filmic and saturation


When using Filmic, the image looks quite desaturated.
What I usually do to recover saturation, depending on the image I’m editing, is using the color balance by usually increasing the output saturation or the equalizer by tweaking the chroma.
Is there any particular other method people use?
I’d like to hear what’s your workflow look like.


(keith) #2

Have you tried ticking the “preserve the chrominance” button?

(Philippe) #3

@ andrayverysame, I think you’re doing the right way to recover saturation, and it will be easier in the future. In the developement version of darktable 2.7, there are new sliders in filmic for “global saturation” and “extreme luminance saturation”, to avoid going to color balance


Morning, @andrayverysame,

I wonder: is your basecurve module on or off?

Have fun!
Claes in Lund, Sweden


Thank you, @ukbanko

Yes, I tried that but the result is quite off, the color looks very un-natural:
Snipaste_2019-01-02_21-02-08 Snipaste_2019-01-02_21-02-22


That’s great to hear!
Thank you for sharing this info.

P.S. yes, the Base Curve is off.

(Bill Ferguson) #7

When I use the preserve chrominance, I usually end up reducing the saturation to 20% - 50%. If you leave it at 100%, then the image is usually over saturated, like your example.




I tried that too, but I still get artifacts.

This is with 20% saturation:

And this at 10%

Unless you adjust the saturation from another module, which then makes kind of confusing the saturation slider in the filmic module.

(luxagraf) #9

I’ve been struggling with this as well. My solution has depended a lot on the image and I haven’t tackled anything with skintones yet, but I’ve been able to get where I wanted with other modules in addition to filmic, usually by increasing saturation and then playing with the various color balancing/saturating modules.

Glad to hear that 2.7 is addressing this issue because otherwise I love Filmic. it’s got me going back through years of images and reprocesses ones that I was never quite happy with, with Filmic I’m getting the results I wanted but couldn’t get originally. Usually anyway. It’s quite subtle, but it has something special.

(another quirk I’ve noticed is that haze removal turns everything horribly blue)

(Bill Ferguson) #10

I’ve had a few images where I could not get a satisfactory result from desaturating. I’ve also run into a couple of images that increasing the saturation with color balance caused artifacts. In those cases I’ve just used saturation from the contrast brightness saturation module.

(Aurélien Pierre) #11

That shouldn’t be. Could you show me ?

First, you should try to put the skin tones around the middle of the histogram, using the grey luminance at lower values. Filmic desaturates extreme luminances, “extreme” being what’s outside the latitude (outside the 2 nodes in the center of the graph). So that should fix part of the problem.

Then, if you use the chroma preservation mode, you will have to fix the saturation somewhere else (color balance). The thing is there is no reliable algorithm out there that can consistently remap the color saturation accordingly to the luminance correction. So my design choice has been to let users deal with it manually. The default color mode let the RGB values do their stuff, as would the base curve. The chroma preservation ensures the RGB ratios are conserved all along, but obviously, your eyes expect some sort of desaturation when the luminance is raised, and it’s not what happens here, so it looks over-saturated.

Also, the chroma preservation is not forgiving when your base picture has color casts and shifts, so, when your colors look off, fix the white balance first.

(Bill Ferguson) #12

@aurelienpierre here’s a crop showing the problem, along with the raw and the xmp files

The bottom one is color balance, the top is contrast brightness saturation. Notice the red in the sleeve has dark artifacts. They increase as the output saturation increases.

_7D_1873.cr2 (24.8 MB)
_7D_1873.cr2.xmp (9.4 KB)
_7D_1873_01.cr2.xmp (7.3 KB)

(Aurélien Pierre) #13

You have put your black level (in exposure module) at 0.0040, which leads to pixels having negative RGB values, and color balance cannot apply a power/gamma function f(x) = x^\gamma if x < 0, so these values get clipped.

Never use the exposure module to add more contrast, you can do that at the end of the pipe, using the levels. Exposure should be used to ensure nothing is clipped. Think of it: exposure means light energy, energy cannot be negative, except in a dark hole (but you don’t live there). So no pixel should ever be negative.

Also, I will see if skipping pixels < 0 instead of clipping them in the colorbalance could improve things (I suspect it might create other artifacts by contrast whith the valid neighbours, though).

(Bill Ferguson) #14

Thanks @aurelienpierre. I wondered if it was something I had done since I didn’t see it in any of the other images with the same scene and exposure.

(Aurélien Pierre) #15

Ok, I tested the bypass in case of negative pixels, and it’s actually worse than the problem you see (bright green pixels instead of dark red). So I will add a warning in exposure instead.

That’s why I proposed to rebrand the “base modules” tab as a “technical modules” one: exposure is not where you take creative/aesthetic decisions. That part of the editing should aim at getting something clean and a bit dull, the candies come after.

(Aurélien Pierre) #16

I propose to rename the black parameter “unclip negative values” and I strongly advise users to adjust the black density in the tone curve or in the levels modules.


I don’t see the point of renaming “black”. It is named “black level” in other raw processors. I don’t think adjusting black level necessarily “unclip[s] negative values”. I mean, it is more of a side effect. Rule of thumb for any user is to not touch anything that they don’t understand. I normally don’t change the black level, so maybe I got it all wrong.

Perhaps, your warning could be placed in the manual at the end of this paragraph.

A black level adjustment is a basic tool to increase contrast and pop of an image. The value defines at what threshold dark gray values are cut off to pure black. Use with care as the clipped values can not be recovered in other modules further down the pixelpipe. Please also have a look at the tone curve module (see Section, “Tone curve”) and the levels module (see Section, “Levels”) which can produce similar results with less side effects as they come later in pixelpipe.

(Bill Ferguson) #18

I’m not quite sure how/why I adjusted the black value negative in exposure. My workflow with filmic is to turn the base curve off, then adust the exposure so that I’m 1/2 stop away from the edges in the histogram, then use filmic. I must have gone to the histogram and pulled the black value down without thinking, probably trying to get more contrast. A bad habit, that I need to break :smiley:.

(Aurélien Pierre) #19

The point of renaming is to turn something that sounds nice into something that sounds scary so people don’t use it lightly, because it can be harmful (proof here).

I’d rather have the tooltip in the UI, this way I’m sure users will see it, although it’s worth an explanation in the manual too. The point is, it should be used only to recover negative RGB values if there are any, meaning if the raw black point was ill-set by the raw decoding lib. It’s too dangerous to use it for anything else, and the black level can be set later, in a safe way, in levels, for aesthetic purposes.


I know your reasoning. I think having an appropriate tool tip and manual entry is enough. Renaming is going too far. Anyway, the discussion on GitHub will sort this out; just sharing my thoughts. :slight_smile: