darktable's filmic FAQ

Maybe we could introduce an ‘Adobe mode’ where there’s just a single ‘goodness’ slider in each module (which obviously should be set to 100 because you can’t have too much goodness) :wink:

Seriously though most darktable users prefer the control that all those sliders provide. Personally I use them all.

1 Like

The real problem is that darktable has to keep its old artifacts despite its new direction. Its old artifacts are the non linear rgb modules and modules that hard clip. Its new direction is linear rgb with no hard clipping. It keeps the old artifacts so old edits still load (great), with the drawback that new users see 70+ modules appearing in numerous different tabs and don’t know which way to turn.

I would actually love to see a darktable fork with only the linear rgb, and non hard clipping modules. It would be quite simple to follow.

Redundancy (Eg. Should you boost contrast in filmic or color balance?) is an issue in all photo editing software. Always multiple ways to do the same sort of thing. Some will prefer the choice, some will wish the devs just found the one best solution and used that. Cant please everyone.

I know, I’ve watched Aurelian’s awesome presentations on youtube and I’m a programmer. So, I can generally figure complex abstractions out and appreciate the maginificant results. To be clear, filmic is awesome because it gets great results with minimal efforts. Most users don’t need to know how it works just how to manipulate the outcome.

But I can’t explain what it does in a sane way to a normal user like e.g. my father, who is an old school photographer transitioning to digital only now. Darktable basically scares the hell out of him but he’s a way better photographer than I’ll ever be. Basically, the difference between scene referred and display referred is vary opaque to users like him and I guarantee you that if you take 100 random users very few of them can tell you what is what in the current version of Darktable. Mostly they’ll get decent results regardless. Most of them ought to be switching to filmic and the current UX is an obstacle for that still even though it’s improved massively.

The difference between scene referred and display referred makes complete sense as an implementation detail if you understand how things actually work in terms of color spaces and algorithms (and the math behind that) but not as something to burden users with.

If you don’t believe me just watch Bruce Willam’s latest efforts on explaining filmic. He’s basically saying that he still doesn’t really get the difference (despite multiple exchanges with Aurelian on this) but he’s happy to take his word for it. Now that’s a serious photographer that has put in lots of effort trying to wrap his head around this stuff. He actually reads the documentation.


You can already adapt the module lists to only show the modules you want, and iirc there are a few presets for module selection. That should significantly reduce the number of visible modules, and allow you to limit use of some of the stranger combinations.

Another thing is that a certain number of modules are “special effects”, what should be done with those?

Redundancy also arises through creative use of some modules (e.g. exposure + parametric masks can also change global contrast…). And it’s not always that clear-cut what the “one best solution” is: (almost) all editing programs I know have both levels and tone curve; but everything I can do with levels can also be done with the tone curve (and perhaps even with just the exposure module…). Is that enough reason to remove the levels module?

1 Like

THere’s nothing wrong with taking the authors word for how things work under the hood. Like you said, he reads the documentation, that gives him enough to start working with the tool.

Don’t forget that filmic and the whole scene referred work flow are new tools as far as dt is concerned, and like every new tool, we’ll have to learn how to use it. Like we have to learn how to (best) use a new camera.

There are some very user-friendly guides by @aurelienpierre about how to use filmic (darktable 3.0 for dummies (in 3 modules) and darktable 3.0 for dummies: hardcore edition). It’s not all that complicated to use and you don’t have to know the hows and the whys to be able to get good results from it.

1 Like

I can’t really understand that. When your father started with photography, he had to be able to acquire a lot of expertise before he could get reasonable results. He had to learn the relationship between aperture, exposure time and ISO. That was the necessary knowledge that could not simply be ignored in those days.

I don’t know why today he should expect some tool to do the job for him. Digital image processing also requires knowledge to be able to edit images adequately. Even back then there were simple cameras and Polaroids with which one could quickly take a few holiday photos without much effort. But if you wanted to take your photos more seriously, you needed to know how to do it.

Today it is no different. With your mobile phone you can quickly take photos, make the basic corrections with a simple app and that’s it. But if you want more, you need to know how to do it. In my opinion, darktable is not a simple app to easy get quick results, but a tool whose primary function is to offer you the possibility to get high quality results if you make an effort to acquire the necessary knowledge.


I think that that’s actually a common problem (not limited to dt/photography):
someone has learned to make images in a particular way, and changing those habits is hard.

Whether that is due to learning new things becoming more difficult with age, or whether it’s difficult to accept that the new methods give initially worse results than the old methods (for by that person!), I don’t know.

Or another reason might be a lack of patience for studying a new tool ("I know how to take pictures, why should I learn that again?’).

That said, when you just open dt to start editing, it is rather opaque, more so than some other programs (I only switched to dt on my third try…). Then again, rawtherapee scared the heck out of me when I had a look at that a few months ago :wink: (just out of curiosity, not thinking of switching, so no effort to understand the interface, let alone the individual tools).

Yes, this is exactly what I was concerned about. After using auto adjustment for black/white relelative exposure I can still the under/overexposure warnings in jpg, while there are no warninings in raw. Even though I set thresholds at 0% / 100%. For that reason I though that the auto buttons used different method.

Yes I know that. I have my own styles and presets already. I absolutely love the scene referred workflow. It was a still ongoing learning curve of months, but that’s no complaint - any piece of complex software will take time. Just pointing out darktables complexity is a symptom of its innovations and progressions. It neither sleeps, nor completely discards the past.

“raw overexposure” shows clipped channels in the raw data, and this is independent of any operations by dt (except raw black/white point?). The ‘jpeg over/under exposure’ works on the image as displayed, i.e. after applying all the operations in dt’s pipeline. So it’s very well possible to have a non-clipped raw and get warnings for the jpeg.

In the case of exposure+filmic: in my limited experience, it’s quite normal to have rather large areas shown as over/under exposed after setting the exposure. This is (usually) corrected in filmic.
Otoh, if the image looks good, I tend to ignore the ‘jpeg over/under exposure’.

Do non-technical users really need to care about the maths?
If they are only introduced to the new, scene-referred development path, they don’t have to know the difference between base curve, Lab-based tone curve and filmic, not for 95% of cases, I think.
I do agree that some kind of ‘facade’ module could wrap exposure + filmic, with fewer sliders:

  • ‘overall brightness’ (=> exposure)
  • ‘blacks’ (=> exposure black + filmic black)
  • ‘whites’ (=> filmic white)
    If a more robust way to auto-tune the tone EQ mask could be developed (reliably stretch the mask histogram using a robust luminance estimator that works ‘OK’ in most cases), there could be two more (‘lift shadows’, ‘lift highlights’). If the message-passing between modules were available, this module would not need to duplicate anything; it could drive the others. Then, if a user wanted more control, they could use the individual modules instead (or one could use the ‘facade’ module first, then switch to tweaking the individual modules to fine-tune settings; the ‘facade’ module could display a warning that the ‘real’ modules’ settings have been changed after leaving the ‘facade’, and any new changes made there would overwrite those in the real modules).

That’s weird since the scene-referred way is much closer to analog darkroom in the way it behaves and with the concepts it uses (EV zones everywhere, exposure adjustments…). Usually, people with old school experience get it faster than the digital kids.

But then… scene-referred is a change over something people already did not understood. That legacy display-referred is full of assumptions that nobody is aware of (but got hard-coded in software). So, changing something that people already did not get (conceptually) is like trying to learn a new language when you don’t really know the difference between a verb and a noun in your native language. You need some grammar in your own language to be able to learn a new one (unless you learn them as a young kid).

50% Lab is 18% RGB or XYZ, so simply converting to Lab applies the correct cubic root on grey.

Your overexposure warning is crap. JPEG is saved with anything above 100% clipped. Over-exposure warnings are set such that they show you everything above 98% or 99%… But the 98-100% range is still valid and there is nothing wrong about having clouds or bulbs ending there. Proper over-exposure warning would display anything above 100%, because that is not valid. But in a JPEG file, there is nothing about 100% because there is no 256 or 257 values in 8 bits, so there is no overexposure diagnostic to be made there. People should really relax with over-exposure alerts. Trust your eyes. There is no software replacement for the eyes of a visual artist.


The difference between cliping in jpg and raw is clear to me.

Still, my doubts refer to setting automatically the black/white relative exposure. My expectation was that if the auto mode aligns them with the darkest/brightest point of an image, then I should have no under/overexposure indication in jpg.

Looking at some other exchanges here, it seems to me that I do not quite understand what the jpg under/overexposure indicator is doing :wink:

That’s exactly what it does. Here is the source code of that feature:

  // Grey
    const float grey = get_pixel_norm(self->picked_color, p->preserve_color, work_profile) / 2.0f;
    p->grey_point_source = CLAMP(100.f * grey, 0.001f, 100.0f);

  // White
  const float white = get_pixel_norm(self->picked_color_max, DT_FILMIC_METHOD_MAX_RGB, work_profile);
  float EVmax = CLAMP(log2f(white / (p->grey_point_source / 100.0f)), 1.0f, 16.0f);
  EVmax *= (1.0f + p->security_factor / 100.0f);

  // Black
  const float black = get_pixel_norm(self->picked_color_min, DT_FILMIC_METHOD_MAX_RGB, work_profile);
  float EVmin = CLAMP(log2f(black / (p->grey_point_source / 100.0f)), -16.0f, -1.0f);
  EVmin *= (1.0f + p->security_factor / 100.0f);

Yes, that is very true. That’s exactly why Filmic is such an important step forward (and thank you for that). I’m just talking about how to present this feature to users who are struggling to understand it conceptually and how much they actually need to understand it. Filmic has an amazing amount of thoughtfulness behind it that makes it seem almost like magic. Most of that will be beyond most users to ever fully understand but they can still appreciate what it does for them. IMHO such users could benefit from a UX that focuses more on the basics and clearly separates the more advanced stuff into separate modules.

To be clear, my father is quite hopeless when it comes to handling anything to do with computers. So, an advanced post processing workflow is a steep learning curve for him regardless.


If you want to explain filmic to your analog dad, here is what I propose:

  1. filmic applies the sensitometry curve of a virtual film we create in software, on top of digital data,
  2. the scene white exposure is the Dmin (but in log2 instead of log10 – slightly different unit, same meaning),
  3. the scene black exposure is the Dmax (but in log2 instead of log10 – slightly different unit, same meaning),
  4. the look contrast is the gamma of the film,
  5. the look latitude is… well the latitude of the film,
  6. everything in the display tab is linked to ICC displays, so no need to touch that if you have an ICC profile,
  7. the scene-referred workflow is like having a virtual camera in your computer, in which you can redo the exposure (in exposure module) and build your custom-made film emulsion from scratch.
1 Like

This is very useful, thank you!

Not directly related to the topic but this make me think that the old global tone mapping module should be redesigned to work in linear rgb too

That list should be a table in the manual. :slight_smile: