Filmic, when to use?

It’s interesting to follow the discussion on filmic and to study the tutorials on Youtube.

In many cases, the discussion is on how to “fine-tune” images that from the outset are more or less ok. What about real challenging situations where you are forced to use some tool in order to produce a useable image? How does filmic perform in such situations? When should you prefer filmic over tone mapping or other tools?

Below you will find two examples on filmic used on problem photos with good results, I think.

When you lighten dark parts of the image by filmic these areas tend to become a little “greyish”. It works fine to turn on the haze removal module to remove the grey. Filmic and haze removal is used in both photos.

Default Darktable

Filmic and haze removal

Default Darktable

Filmic and haze removal

I also upload the raw files here: DSC_8528.NEF (25.7 MB) DSC_0856.NEF (25.1 MB)


you can always use filmic.


A quite timely question for me, I just finished implementing the Duiker filmic curve in my hack software…

It became evident to me about a year ago that I needed more fine-grained control of a tone curve with high-bitdepth image data. Looking at most raw histograms of unscaled data, it is predominant to see most of the data over at the left. Indeed, if you can zoom in on the histogram, you find that a lot of tonality sits in the first 256 values of a 16-bit raw image (libraw delivers unmodified raw data as unsigned 16-bit integers), which on the display scale from 0=black to 255=white of an 8-bit JPEG output is all under the first tone value above 0. So, you want your tone curve to “curve” in that range, in order to control your shadows.

An interactive tone curve won’t give you any real control in that range. Mine works on a 0.0-255.0 floating point scale, which will allow me to scale into the really low region, but not with any really useful slope. I toyed a bit with “zoom” implementations, but I just really couldn’t warm to encoding all the relevant parameters in the output image (.pp3 or xmp sidecar files, in other softwares)

Well, this is what a filmic curve does that none of the other tone curves address: it puts a “toe” in the very bottom of the data range, one that transitions the black values gradually into the main part of the curve. John Hable’s blog post describes it very well:

In the post, he has a couple of graphs that show that toe in relation to the rest of the curve. Looking at the whole curve, you can’t see it, but if you magnify down toward the origin, it becomes quite evident.

Here’s the so-called Duiker filmic transfer function, from Hable’s post:

y = {x (6.2x+0.5) \over x(6.2x+1.7)+0.06}

For simple control of the toe, the 0.5 coefficient can be decremented toward 0.0 to increase decrease (oops…) the toe slope and push the toe down to the axis, which will increasingly crush those low tones:


Going the other direction pulls the shadows up, to the point where the curve starts looking like any other “regular” power or log curve.

I’ve been messing with this very coefficient with a recent flower image that has a dark background, and it is simply amazing the amount of control it has over how those shadow tones are scaled. Right now, I’m without any computer that has either this image or my software, so all I can do is show Excel graphs.

I haven’t messed with the shoulder yet, but it appears the 1.7 coefficient influences it.

Note that @Carmelo_DrRaw’s recent Photoflow work is a more intuitive approach to filmic, in that the controls over the toe and shoulder are more specific in both dimensions:

I’m thinking in @darix’s terms, just use filmic all the time. But I think the display ICC tone transform needs to be nullified, let filmic do that work, but I don’t have the tools with me to mess with that right now…

1 Like

I love filmic…when I get it right. But I find I have to work hard at it to get it looking good so it takes a long time. I’ve watched videos on it and maybe I just need to keep practicing to apply it more quickly. Tricky to get white/black points correct as it can get into clipping easily with tweaks on other sliders, and can sometimes get a grayish haze easily. But on tough shots with huge dynamic range it can give great results.

Yes, when you get it right, and that not so easy… Small changes to one slider affects other slides and can result in big changes to the image.

I’m surprised that haze removal (or local contrast) works so good together with filmic. Haze removal is executed before filmic. The good effect seems more logical to me if haze removal was applied after filmic. How can the milky look in dark areas be removed before it is produced?

For most the images the auto mode of filmic works just fine for me. If it doesn’t work I check which presets fits the situation and then start from there.

I’ve used it a lot lately and I use it instead of the base curve. IMHO the trick is to not over do it and not in place of e.g. exposure or highlight reconstruction, fill light etc. I tend to first get the exposure ballpark alright with the curve nicely filling the histogram but no clipping. After that, I’ll use filmic with some tweaks as needed to gray point and shadows/highlights.

Both photos you have above feature a dark foreground with some bright background. This looks like classic HDR type stuff; maybe not necessarily the best use of filmic.


Thanks for your response. When should you use filmic instead of other tools to benefit the most if not in classic HDR images?

@obe I mostly use it instead of the base curve. For HDR, I would probably use masking, tone curves, graduated density, etc. and work with multiple layers to work on shadows and highlights separately. Basically you are going to end up with different gray points for different parts of the image and some kind of transition between those parts. You could do it with filmic as well but then you’d probably want two instances and some masking.

1 Like

I did some quick changes with two tone curves and some masking. Not perfect but you could tweak the masks a lot to nail it.

DSC_8528.NEF.xmp (4.7 KB)

1 Like

you have such a bad halo for the face in the window.

Actually, filmic is a curve in the class called “tonemapping operators”, designed to pull up dark regions into the midrange while keeping highlights from blowing past display white. This is classic ‘map HDR into SDR’ work, re-distributing the dynamic range of the image into a range where we can comfortably view it. Hable has a good blog post with images to illustrate:

1 Like

I don’t have good pixel-peep software with me, but isn’t that the backlight from the exterior?

1 Like

More going on than haloing. It is a cartoon now.

1 Like

For the past year, as a challenge, I have been processing without HDR algorithms. However, there is no shame in using them. I would process the bright and dark regions separately and then merge them with enfuse and friends.

1 Like

Ah, looks like a luminosity mask? That’s the problem with masks; they put hard artificial cliffs in the boundary between the adjacent tones, which are then scaled independently. That’s why curves like filmic are preferential to masks IMHO; they retain some sense of smooth transition through the tone range.

Conversely, the bane of a curve is a component with a shallow slope - robs contrast.

It is possible to use masking but it takes forever and multiple masks at various steps to get it right. I do it manually using G’MIC, which is insane I know. What I mean is that you have to catch all of the gradient reversals and halos for every brightening and contrast adjustment. I did that for some of the PlayRaws. They didn’t end up looking good but they were clean and without artifacts.

When I was cutting my digital teeth with a Nikon D50, I did some masks to drag dynamic range around; tedious, but it worked like the “dodge and burn” paradigm I so loved in the film darkroom. Moving to a D7000 reduced the need to do that so much, and moving to the Z6 has cut it considerably further. That camera also has a highlight-weighted matrix metering mode, which automatically decreases the exposure to preserve the highlights at the expense of pushing the rest of the image into darkness.

And this is why I’m currently experimenting with filmic; so I can expose images thusly and use filmic to drag the nether regions out of oblivion…

Once more, I think one should keep the display ICC tone transform out of the business here! The filmic module does not know anything about the display device, and trying to provide a display-ready image out of the filmic module is IMHO a design mistake. The module should work in linear RGB and forget about displays… I already discussed this with @aurelienpierre at LGM2019.

Okay, I put the gamma part of the function in my tool, mainly to do the algorithm comparisons Hable describes, but it can be set to 1.0. I get it, really…

I think you’ve prompted the answer to my residual question, that being what to transform and embed in a JPEG headed to “the wild”, where folks may and may not be viewing color-managed. Accordingly, that should probably be sRGB/2.2gamma; color-managed know what to do with that, non-color-managed will already have an approximate gamut and tone baked in the image (and hopefully not wide-gamut HDR…)

I’ll be posting some of what I’m doing in rawproc next week, when I get back to a fully equipped computer.