darktable's filmic FAQ

Just a dumb question regarding the auto-adjustment buttons in the “scene” part of Filmic module.

Why “white relative exposure” is not set at a value related to a brightest point in a picture when clicking on the auto icon? Similarly, why “black relative exposure” is not set at a value related to a darkest point? I know that it would be useful mainly for high contract photos, but my personal feeling is that at this moment the auto icons are not very helpful and such a change would be more understandable…

This graphs lets you increase the DR up to 150% or something. But +2 EV means 400%. I know Capture One, but they don’t really deal with the same matters. What they do is not difficult.

It is exactly what is done. I’m not sure what idea you got.

That’s a misunderstanding, but thanks, it reminds me I need to address it.

1 Like

I think the concern may be that according to the ’ Over/underexposed warning’ indicator, some areas may show as overexposed after clicking filmic’s ‘auto-set white’ picker.

I’m currently re-writing the over-exposure warning to make it more meaninful, with 4 modes:

  • luminance clipping, (if it pops up, you have issues with exposure or tone mapping)
  • saturation clipping, (if it pops up, you have issues with saturation or gamut mapping)
  • any RGB channel clipping (which is the current mode, not very meaningful since it can be any combination of the 2 above),
  • gamut clipping, (which is the combination of the previous 3 and consistent with the gamut mapping alert, although it doesn’t rely on LittleCMS2 and is several times faster to run).

CPU code is done, GPU should be ready before I go to bed today.

EDIT : done.

15 Likes

Just wanted to say thank you for the amazing work. The guide is very useful and much appreciated!

1 Like

Well, people pay me to be useful… :smiley:

4 Likes

These are tokens of appreciation - well deserved. What matters more is the big present of Darktable from the developers to the users - mostly driven by the love of photography, freedom and desire to give to others.
Thank you!

I’ve watched the explanations on youtube by Aurelian and learned a lot in the process. So, I now understand the reasoning behind the UX, which to the uneducated user probably must appear very complex still.

One observation I have with this tool is that in the new scene referred mode, it’s enabled together with the exposure module and the two are so dependent on each other that you could argue, they should be integrated into one because it doesn’t make sense to have one without the other. Basically the two modules split management of 3 parameters across two modules: graypoint, blackpoint, and white point.

Confusingly, you manage the graypoint (and blackpoint) with the exposure module and then fix the blown highlights with Filmic. Prior to 3.2 you’d be deliberately blowing your highlights with the basecurev and then adding filmic manually to fix it; which was somewhat awkward. The new mode makes this easy because filmic is already on and basically autofixes whatever “damage” you do in exposure. This is what makes it a drop in superior replacement for the basecurve because what that used to do was blindly blow your highlights according to some predefined curve and then let people fix it themselves.

Simply put, the new scene referred mode reduces the workload for post processing because you basically slide a “brightness” slider in the exposure module and then filmic just adjust the curves to keep the whitepoint and blackpoint in a sensible range. Then you can tweak the process further there but mostly this already gets you in a better starting position that the base curve ever did. I never got very usable results with that and basically a large part of my workflow used to be trying to undo what was basically just miles of anywhere near acceptable with the basecurve. It would essentially just blow your highlights unless you severely underexposed on the camera and then you’d have to compensate for a very dark image that would come out of the base curve.

As a future UX improvement, I would suggest maybe adding an alternate module that does the same as exposure+filmic but simplifies the workflow a bit. Maybe what novice users want is something that looks like the level tool (or basic adjustments) but works like/drives exposure + filmic in the background.

1 Like

The’re in very different parts of the pipe so it doesn’t really make sense to incorporate the exposure module into filmic. Something similar was previously achieved in filmic v3 with the ‘middle grey luminance’ slider. If you really want to keep that functionality you can click the ‘use custom middle-grey values’ check box in the filmic module (though you have to do it on each image). But the point is there’s no need given that you can do exactly the same thing with the exposure module and if you set up a dynamic keyboard shortcut it’s trivial to do so.

No no. Filmic is an alternative to basecurve. It was never recommended to use both modules together and you shouldn’t.

2 Likes

@aurelienpierre: How ready for use is this code?

I’ve tried it on about 6 or so miscellaneous images and I’m getting the following for all of them:

luminance: all blue
saturation: no indications
any RGB: all blue
gamut: all blue

Some have a dot or 2 red. None, except the saturation setting, show any “normal” areas. Tested this by discarding history and only turning on exposure and filmic (basic scene referred), nothing else.

I almost always use the clipping indicator, but neither of these settings are any useful for my workflow.

Images I tested with that are available:

Am I missing something here?

Did you try resetting your thresholds to default ? It’s supposed to be ready.

4 Likes

Mmmmm. Why didn’t I think of that…

That’s a whole lot better and IS a good replacement for the current indicator.

Thanks!

2 Likes

No no. Filmic is an alternative to basecurve. It was never recommended to use both modules together and you shouldn’t.

Eh yes you are right, I typed to quickly I meant fixing it using other modules like curves, levels, etc.

The point about pipelines is technically correct but impossible to explain to a novice user. They should not care about pipeline order until they complete some basic courses on linear algebra, color theory and a few other things. Most photographers, even the professional ones, don’t have much background in either.

That’s the point about the current UX. It only makes sense if you are a hardcore graphics nerd. It’s better in this release mostly because it’s on by default with some sensible defaults. So, you can sort of ignore the fact that it’s there.

Most people aren’t graphics nerd but vaguely understand the notion of brightness and black and white. The net effect of using exposure with filmic is that you are basically managing those 3 things with a pleasing curve that magically maps what your camera produced to what your display and output mediums can handle without a lot of fuss.

The optimal UX for that would be a much smaller number of sliders than exposure plus filmic currently provide that most users stand no chance in hell of ever fully understanding. IMHO each of the four tabs in filmic could basically be a separate module. And prior to filmic they basically were. And those modules are still around, which adds to the confusion because which ones should you use and why? Filmic is almost like a pipeline in a pipeline and the exposure module is basically the first module in that pipeline, which also includes tweaking blackpoint/whitepoint (tab 1), highlights (tab2), look (tab3), and output (tab4).

If you are familiar with it, it’s basically the law of leaky abstractions. Filmic is complex because it doesn’t really fit Darktable’s UX paradigm of modules being independent things in the graphics pipelines, which is why it is grouping logically different things in one module because their implementations is basically one thing in the pipeline instead of four. For the same reason it’s just four things when really it should be five things if you add exposure to the mix.

1 Like

Filmic expects an input middle-grey value of 18.45%. It doesn’t have a hard-dependency on exposure as there are other ways to achieve that. Most of the display-referred modules expect an input middle-grey value of 50% so in that respect I’m not sure how filmic is really all that different. Those display-referred modules essentially assumed that some prior module would first do the tone mapping to get middle-grey to this value.

pixel pipe is like grilling a steak: you can pour pepper on it before grilling the steak or you can do it afterwards: in both cases you did the same (put pepper on the steak) but the result wont be the same …
sequence is important even most users don’t understand this :wink:

4 Likes

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.

1 Like