darktable's filmic FAQ

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.

2 Likes

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

@anon41087856: 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.

2 Likes

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.

2 Likes

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 @anon41087856 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.

10 Likes

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).
4 Likes