Proposal for updated Filmic curve parameterisation in Darktable

I’ll try to flag some examples the next time I do some editing.

I have actually been going through a lot of old and I mean old vacation jpg files so I have not been taking or editing many raw files.

Most of my recent photos are taken with my phone. I have the raw files but unless the photo is really interesting or I am going to share it the jpg files from the pixel are hard to make better. I am sure that if you are critical there is room for editing…sometimes they are a bit cool but for keepsakes or random photos taken in any decent light its hardly worth editing them. I am not going to look at them and know in 5 years whether I edited the raw or it was the original in most cases.

Having said that going back through all my old vacation jpgs shot with point and shoot cameras I often throw filmic at it just to see what it can do. Surprisingly it sometimes is just the bump the image needs to be worth keeping….

I think you just misunderstood me here. I wasn’t talking about what people actually know or don’t know, but about the inhibition to participate that is based in the fear of embarrassing themselves if it turns out that they - among other things - don’t know enough. This is a subjective feeling, which has nothing to do with actual judgment from the outside.

It’s about the fact that people just don’t participate - regardless of what level of knowledge they have.

I agree here.

Why not? How else would I know what kind of problem he has? Why should I guess around? He can talk and answer the questions if he expresses something that requires further information. But that does not mean that I expect him to have a degree in physics to be allowed to talk.

I agree and that is precisely why there is a need for exchange. But exchange is not when you throw something out without wanting to justify it. If you are unskilled, this is the way to learn.

I lost in the second solution. I just use the tone equalizer to bring back the highlights or just add another exposure with masking for the area I want to pull back. There is a lot of space below the scene tab. I wish the look properties could be move there and maybe sliders reduce.

1 Like

I agree that this is the case. But the assumption that this is based on fear on the participants side…I mean that would need a whole lot of investigation to prove that point. (Maybe regular polling might help to investigate this)

Maybe that’s what is keeping people from proper error reporting, the fear that if they do it wrong, they’ll be dismissed?
Also: credentials or a portfolio don’t help you reducing the guessing on your side.

Sure, but a portfolio would be equally non-helpful, imho. Communication is helpful. Maybe you meant communication-skills? I can fully agree on that.

Yes, that was what i meant. :slightly_smiling_face:

1 Like

In the configuration if you use the recommended scene-referred workflow then filmic rgb is turned on automatically for all photos that are imported. In fact, I don’t see a way to use the scene-referred workflow without using filmic rgb, but that is probably just because I do not understand something. It seems like scene-referred workflow and filmic rgb have been inadvertently conflated.

Well, @s7habo uses it all the time, and he gets great results with it:

@bakubo: The workflows are different ways to achieve a useful default image. You can either use “display referred” which uses the base curve and legacy module order to achieve this, or you can use “scene referred” which uses exposure, filmic and the new scene-referred module order. If you choose “none” you can get the scene-referred module order but without any default modules (except those that can’t be avoided).

You can also use presets to create your own default behaviour.

Filmic and base curve are the recommended modules in scene- and display-referred workflow to tone map your (likely high dynamic range) raw to your (likely low dynamic range) screen. You can still use base curve in the scene-referred workflow if you like. It’s just later in the module order.

1 Like

This is key. There is no restriction on which modules to use.


The advantage of scene-referred is that you maintain some semblance of relationship with the original capture and hopefully that relates to the actual scene if you are careful with your photographic and post-processing workflow.

The whole fuss started when people began to realize that the base curve while convenient marred the relationship between the scene and subsequent edits, that it would be easier and better to keep the ratios and have tools develop the image progressively rather than haphazardly. Trouble was that those tools had to be written.

filmic (rgb) like many other new or revamped modules is in that trajectory. In dt, if you hover on a module, a tool tip will pop up and tell you if it is suitable for scene-referred development. Just be careful to use it as such if both scene and display are shown in the tool tip. Means that the tool may have features that don’t respect the scene.

3 Likes

simple test with bt.2390 + filmic tone mapping
the steps are:

  1. linear to pq
  2. bt.2390 tone mapping
  3. pq to linear
  4. linear to log
  5. contrast
  6. log to linear

original image

Black ev =-9, white ev= 5, contrast = 2, tone mapped to 100 nits

Black ev =-9, white ev= 8, contrast = 2 , tone mapped to 100 nits

Black ev =-9, white ev= 5, contrast = 2, tone mapped to 200 nits

Black ev =-9, white ev= 5, contrast = 0, tone mapped to 100 nits

Black ev =-9, white ev= 5, contrast = 2, tone mapped to 200 nits and scaled to 100 nits with exposure compensation

2 Likes

Nice how did you do the scaling??

I’ve exported the neutral image from darktable and imported into vapoursynth.

Probably i’m doing something different from the darktable’s filmic implementation because i’m using the inverse log formula after the contrast enhancement (while in darktable there is only a gamma adjustment ?).
This enable us to work with >1 output

1 Like

do you apply channel-wise, or do you convert to ICtCp and only apply to I (or to JzAzBz and only to Jz)? The only image where the sky shifts to cyan is where you tone mapped to 200nits, so technically you’re intentionally blowing out channels/range IF your step7(?) includes values that get clipped when going from linear to sRGBgamma.

This one

Yes, it maps scene linear to hdr display linear 0-2 range where the max value that a sdr monitor could display is 1.

It’s interesting that the perceived contrast is however unaltered :slightly_smiling_face:

Wow.

Okay so that’s where that cyan comes from

Maybe due to the PQ curve? What if you do the bt.2390 range-adjust in linear? Does the perceived contrast change more?

It isn’t possible to use the hermite spline in linear space but the st.2084 transfer curve is pratically a logarithmic space so we could use the formula used in darktable

y={log2(x/0.18)-blackEV \over whiteEV - blackEV}

find the knee point fixed at middle gray 0.18 for simplicity

ks={log2(0.18/0.18)-blackEV \over whiteEV - blackEV}

find lmax=100nit

lmax={log2(1/0.18)-blackEV \over whiteEV - blackEV}

lw=1

then follow the hermite formula in the paper ( we don’t care about lmin or minlum and we set them at 0)

1 Like

When reading your post I was wondering why you would do two different transfers: one

and the other log. Is each more suitable for the task you performed?

In this way is possible to move the White ev slider without loosing contrast in the shadows

I mean bt.2390 vs log.

Well, the problem is how to use log for highlights compression only and if this produces the same nice results like bt.2390