I was told that properly-lit scenes were easy to process, but issues arised on under-exposed pictures. So, here is a more challenging example.
Step 0 : raw
Christmas time in Montréal, ISO cranked up all the way to the top (12800), bright blue lights that will for sure end up out of any RGB gamut, sodium-vapour surround street lighting, we are on for a lot of trouble in this picture.
Step 1 : filmic
Just enable it with default params:
Then, set up the scene middle grey luminance to 18.45% and don’t touch it anymore.
Step 2 : exposure
Raise mid-tones up to an acceptable level. We don’t care for highlights yet:
Step 3 : tone equalizer
Since we added 2.4 EV in exposure module, and tone equalizer comes after, the first thing to do is to compensate the mask by -2.4 EV so the histogram gets centered in the winlow:
Then, setup the exposure. I just hovered the white part of the balcony, and scrolled down. Then, hovered the bush in the foreground, and scrolled up. Finally, increased the curve smoothing factor just a tiny bit to round the curve a bit more (totally optional):
Pro tip: keeping the first node (-8 EV) and the last node (0 EV) to 0 EV give you more natural results, regarding the local contrast. So you end-up with a kind of sinus curve.
Step 4 : filmic again
Account for the changes in filmic, by setting the scene white exposure accordingly to the image (just use the colour picker), and then raise the scene black exposure to reduce the noise:
The resulting image is obviously too bright, we loose the nightlight feeling, so we need to raise the scene grey level and re-adjust the black accordingly:
Now the image looks quite flat, so we will raise the look contrast and reduce/slide the latitude (still trying to keep it maximal while not clipping, watch out for the orange parts of the curve):
Step 5 : color balance
We obviously have 3 sources of light: street lighting (sodium vapour, orange), house lighting (probably fluorescent, white) and the garland (LED blue). We will try to blend them a bit better, while mostly keeping the character of the scene.
using the hue colour picker of the slope, compensate for highlights (pick on the balcony):
using the hue colour picker of the offset, compensate for the surround (pick on the stairs):
using the hue colour picker of the power, compensate for the average (pick on the the white garland):
Now, the hues are right, but we need to balance the saturation manually to blend the effect better. No trick here, trust your eyes:
Also, to help colour blending, we set the master input saturation to 90%, then the master output saturation to 110%, so the 3-ways settings are applied on a mildly desaturated image.
Step 6 : channel mixer
We still need to deal with those out of gamut blues. There is a trick I took from theACES, which involves applying a custom RGB matrix to force those blues back. Unfortunately, the ACES coefficients expect an ACES P1 colour space, and darktable pipeline works in Rec 2020 by default, so the coeff will need to be adjusted.
The settings are as follow:
- red destination :
- R = 1.00
- G = -0.18
- B = 0.18
- green destination :
- R = -0.2
- G = 1.0
- B = 0.2
- blue destination :
- R = 0.05
- G = -0.05
- B = 1.000
Here is the result:
Comparing a before/after gamut check in Adobe RGB makes the result pretty self-explanatory:
Notice we made those blues lend on the slightly purple side, we could have remapped them to cyan instead. It’s difficult to guess what the “original” blue was since no screen is capable of displaying it, and I took this picture 1 year ago.
(full disclosure: I discovered that channel mixer actually clips the RGB output to [0 ; 1], so these results are obtained with a hacked version of the code, that will hopefully be delivered in darktable 3.0.x as an “unbounded mode”).
And since we were mostly happy with the visual look before the blue lights handling, we will mask the channel mixer to apply it only to the blues shades.
Step 7 : colour balance 2
So far, we have performed mostly a corrective editing, with the technical recovery, trying to compensate for the flaws of the digital imaging system. It’s now time to bring back the Christmas groove of the picture, and warm things up. We just use a second instance of color blance:
Step 8 : color zones
Everything feels warm and cozy, but this sodium light really makes yellow pop up, and we couldn’t get rid of their greenish cast. We will just slightly desaturate and darken them, and drop down their hue a little bit:
Step 9 : denoise
darktable 3.0 makes that part way easier (thanks @rawfiner) : it’s only a matter of enabling the module in auto mode. We kept that part for the last step since it will slow-down the whole software, and also because we didn’t pixel-peep and everything looked great from the full-screen zoom:
The default params were a bit harsh, so I softened them.
(With above settings)
(We just changed filmic scene parameters, allowing some clipping on the white and added more contrast):
That was pretty much the worst case scenario you could encounter : max ISO, sort of back-lighting, 3 light sources with different white temperature, among which the infamous LED blue that is such a PITA no matter the software you are using.
Still, we managed to get everything under control in 9 steps, using “only” 7 modules. Unrolling the corrective editing first, then the creative editing, in a step-by-step fashion, we can get a better control over the picture, and come back later to any step without messing the whole stack.
Notice I didn’t use any sharpening/local contrast enhancement since the base raw has 36 Mpx shot with a prime lens and I wanted a soft Christmas postcard.