Darktable - Scene referred workflow - Shadows, Mid Tones, Highlights - Zonal/Regional Contrast Control

Continuing the discussion from New Sigmoid Scene to Display mapping:

Overall, I think its best to reuse what already exists, and here’s what I’ve done, with results.

For those reading this, with no recourse to prior discussions, what led to this was, I wanted to find methods to quickly get a scene referred compliant way to adjust shadows and highlights, since the old shadows and highlights is not considered an ideal tool, with the introduction of the “new” workflow introduced with filmic.

The journey.

  1. Tried the tone-eq, which was ok, but the 8 zones in tone-eq are a bit too granular for this purpose. so you have to move a couple of sliders for shadows, and same for highlights. Doable, but not as elegant as moving one or two sliders.
  1. I then resorted to the lender of last resort - a curve module, in this case rgb curve. If all else fails, try curves. This is the hammer to kill an ant approach. It will get the job done, inelegantly.

Here’s an example.

With curves, it gets the job done. A bit more effort, yes, But the one thing I can control as much as I want, is the crossover, i.e how much a change in one region affects any other regional. How?. With curves, you are 100% in control, cos you define almost every behavior of each point and can add extra points as “limiters”, to reduce the crossover region.

  1. Using the Color balance rgb module.

a) Next I was informed of the “new” color balance rgb module, still in a dev version at this time (to the best of my knowledge), and tried that out.

b) At first, the default sliders went down to -40%, and it was brought to my attention that there was an extended range, beyond the sliders, obtainable via text entry. Which improved the results.

c) The remaining challenge was the coverage area, Adding shadows(reducing luminosity in the shadows), would also reduce a bit more of the brightness in the midtones and highlight areas, than I was hoping for. So I played with the masking controls, in colour balance rgb module, which yielded more of the result I wanted. color balance rgb has its own in-built custom masking controls to define the shadow, kind of mid-tone, and highlight area and how far these extend into adjacent regions.

d) The final straw, was combining all of the above with a parametric mask (based on grey value), on the colour balance module. Definitely a lot more control and not too difficult to implement.

e) Having applied a parametric mask for shadows, to implement highlights, definitely makes sense to achieve this in a 2nd instance of the color balance rgb module with an appropriate parametric mask for the highlight region. Of course mid-tones can also have its own instance. Then you decide, how to sequence the modules.

My conclusion at this time. Combining all the features outlined above, there is a pretty significant amount of control over shadows and highlights.

Sure, more effort than ye old Shadows and Highlights module - definitely not just a two slider affair anymore, and requires a most logical mindset.

Complementing all of the above with this suggestion, below, could, as one gets more acquainted with the new tools, become almost a two slider affair. Call up a preset, for each region, which has the parametric mask defined, adjust luminosity (or include your for each region, in the preset - for further adjustment to taste), and depending on image, adjust the parametric mask, for even more control.

And if you need any more control (which I doubt), there’s the ultimate solution- combine all this with an rgb curve, as defined in one of the references above. or abandon all the nice rules and refined tools, and use only the curve rgb - so you are not going back and forth using several modules to achieve one result. Advantage of the curve rgb approach, you use only one instance.

The display mask feature was a phenomenal aid, in setting up regions using a parametric mask (based on grey value) .

One more observation. Using the parametric mask sliders, to define regions, in the dark region to the left of the sliders, requires delicate mouse movements, cos a significant portion of the grey scale in the image, is mapped to a very small leftmost section of the parametric mask slider. Just an observation. Its something I can live with. But it might be something for the dt design team to think about.

I mention it here only because, its obvious that the dt development team, has paid such high priority to the usability, not just the image processing features. The usability and stability improvements in dt, on windows, over the recent 18+ months, have been unprecedented, and most welcome. Being able to run dt for days and days on end - on Windows without a crash is really great.

Dt joins Reaper (my preferred DAW), as one of the most stable apps on Windows, apps that you can run for weeks and months without a single crash.

1 Like

You seem to be a details guy…I think a scan of the manual would help immensely. The tone eq can be mapped with the mask so that the sliders or control points cover whatever area you prioritize so it does not have to be as “granular” as you have experienced. Also use the “a” toggle in the parametric mask to get a log control version of the slider. You can then be far more precise in the shadows…lot’s of little nuggets in there to be discovered…


Simply go to advanced tab increase curve smoothing and get the granularity you need.

I wonder why someone writes endless sermons on tool improvements instead of spending a few minutes to get used to the already existing capabilities ….



Display-referred means black = 0% luminance, white = 100% and middle-grey = 18% but when using non-linear RGB, it gets encoded at 50%.

In that context, shadows are the 0 to 50% range, highlights are the 50 to 100% range. Guess what… the tone curve GUI is very much grounded into this assumption. Having middle grey in the middle of the graph makes for a great GUI.

Unfortunately, in scene-referred, black > 0 Cd/m², white = ? and middle-grey = ?. For all we know, white could have infinite luminance, and middle-grey is not so central anymore.

Goodbye pretty GUI. Goodbye shadows. Goodbye highlights. All we have are illumination values. What do they mean ? It’s up to you to decide. We have anonymous luminance values. That’s all.

So stop fighting it, embrace it or stick to display-referred, but trying to transfer display-referred thinking onto scene-referred workflow is doomed to fail.

Trust me, you are not the first one to try, and all the previous one have been broken. You are like a horse who refuses the saddle. You will end up accepting that saddle, you only don’t know it yet. But you will. Try fighting it, you will be the one getting tired. I’m sitting on my ass, I have all the time needed. I have broken many horses like you in the past 2 years. They always surrender.


Each instance with their own parametric masks, this was the solution that worked best for me., much better than anything else I have come across, to date. Just the way I wanted it - 3 zones, (or whatever number I can create if needed)

Now stored as presets, which I can recall, and adjust in any image. Very easily and quickly, to deal with the broad direction of how I want to light the scene. In practice, they just behave like lights(or shades if used with negative luminosity), that I can turn on and off.

And with ease can adjust how bright or dark each light or shade in each region is is. etc, etc…

One slider for luminosity, for each region, in each instance. Simplest solution ever.


Great…added bonus that you can use any of the sliders as appropriate and in those defined ranges.

1 Like

Dear Aurelien, appreciated.

I acknowledge, what I need may never be in any module, exactly as I had in mind, but using the dt features and kind assistance and hints from some on the forum, I’ve arrived at a solution, that I am very happy with, which uses 3 instances of the color balance rgb module, does not break any scene referred workflow rules, and with ideally tuned grey value based parametric masks for each region, gives me the next level of contrast control I needed, in addition to whatever else is available in filmic.

Filmic is superb for what it does, broad global contrast control across the whole image. I just wanted some more ease and control of exposure(Light) in 3 or 4 partitions, not just the black and white extreme ends. and I now have this. No development required, as the ingredients to achieve what I had in mind are already in dt (the dev version)…


Sure, I can be detailed, predominantly am. At the time I read the manual for 3.0, photography was all new, to me, and all this raw and image editing. Will read the manual for the latest released version. End to end, not the sneak peeks, that have become a bad habit.

Now that “a” for parametric mask. Brilliant. I will read the current manual, thoroughly, several times over, which is, how things were, before GUI’s, help menus, the web, forums, blogs, Youtube, spoiled us. And dt does have an excellent manual. I’m the guilty one in this case. I admit.


Reading the current manual end to end will be boring. Its over 300 pages and has been designed as a reference manual.

When you have a question, look for a solution there first, that is how it is supposed to be used.