New Sigmoid Scene to Display mapping

I tried it on a couple of pictures and I much prefer sigmoid, I think it handles better highlight and shadows (with filmic it’s easy to end up with crushed shadows or artifacts in the highlight), colors and most importantly is much easier to use (2 parameters vs 20) and integrate better with the rest of the modules (changing exposure works well, no need to pump up colors in color balance, …). I think it makes a big difference in the overall experience of editing images with DT.

To be clear one can obtain very similar the same results with filmic, and there’s probably cases where the additional controls are required to obtain a particular result. But I think DT beginners and people that want a more streamlined workflow that gives appealing results right out the gate will love sigmoid.

Only suggestion is to rename the module to something a bit more specific (“sigmoid display transform”, “sigmoid tone mapping”, …).

4 Likes

Awesome to hear!

The name suggestions box is definitely still open, and I agree that sigmoid shouldn’t be the final name. “sigmoid display transform” is pretty good but a lot longer than most other module names in darktable, might be ok though.

Sidit maybe :slight_smile:

By the way absolutely outstanding job with this module, I can’t wait for it to be adopted by the dt devs.

1 Like

We should call it

(Hidden for those who can't appreciate a bad pun.)

Sigmoid Freud

13 Likes

I wonder, is the sigmoid function indeed the important part, or is it the hue preservation?

It would make sense to have

  • Filmic display transform
  • Sigmoid display transform
  • Basecurve display transform

Or actually, it might make sense to somehow label/color scene-referred modules differently from display-referred ones, which would make any transform stand out.

Would it be possible to integrate the sigmoid into filmic? Make hue preservation just one more color mode, and sigmoid one more shape parameter?

6 Likes

Hey, another fun image to try this on:

I think Sigmoid is very good and deserves to be in dt going forward.
As others have said, it gives good results with just a few items to adjust, and produces good results quickly.

Could there be a need for Skew to go beyond -1 and +1, or are those limits inherent in the maths? I only mention it because you can’t exceed these with a right click + value entry.

It seems to me that Sigmoid prevents clipping in its output. What if you want to clip, so that the rest of the image can have more dynamic range? To achieve this I had to turn the skew up high and increase exposure. It seemed more controllable to do this in Filmic and Filmic gave a nicer result in my test pic. I think specular highlights are being output unclipped by Sigmoid, which is generally not what you want surely. Is there a need for a “threshold” / “white point” setting?

I really can’t think of any scenario where you would WANT clipping. Clipping is fundamentally a loss of information - and actively clipping will result in undesirable hue/saturation behaviors, as demonstrated in New Sigmoid Scene to Display mapping - #545 by jandren where clipping is one of the primary root causes of filmic faceplanting so badly there, because driving something past clip fundamentally alters saturation AND hue.

If you really, Really, REALLY want clipping you could add a module after sigmoid in the pipeline to clip things. Basecurve can easily be used as a clamping operator, there are probably a few other modules that would do the trick too. That said, I’m trying to understand why just bumping up exposure to handle this is problematic.

As to the skew limits, I’ll leave that to @jandren , but if it didn’t fall apart with manual entry that might be a candidate for opening up the slider limits a bit. Got an example file?

It’s very common in out door portraiture to clip the background.

Only because it’s really damn hard to avoid in many such scenarios - but clipping is also known as “blown highlights” which are usually highly distracting due to the complete loss of texture in the clip region. I’ve always tried as hard as I could to avoid clipping in the background for outdoor portraits for this exact reason - it distracts from the subject.

Don’t forget that there is a non-chroma-preserving mode in Filmic.

Which has the problem of hue twisting.

This is despite the fact that there approaches that behave better than norms which don’t cause hue twisting, such as the approach that @jandren based his off of. (The basic concept has been around for longer than flimic ever existed).

Oh so you’ve talked to every portrait photographer and all of them would preserve the highlights if they could? None of them like it as a stylistic choice?

Yes I know what it is, no need to be so condescending.

Fill flash isn’t that hard.

As I already said - if you REALLY, REALLY wanted to do this, there are a number of ways you can do it, because you don’t HAVE to make sigmoid the last module in the pipeline.

Perhaps, even, maybe this is a reason that you might want to not use sigmoid - you’re falling into that trap of “there is one true way to do things, and that way must handle all use cases”. If, stylistically, you like the look of hard-clipping, you should use an alternative approach that hard-clips. Unlike someone else you’re a huge fan of, I’m not going to insist your approach is fundamentally wrong and that no one should ever even allow you to do it. I’m going to question whether or not you REALLY want to do that, but if you really want to use a different approach, do it. I’ll even provide suggestions on how to do it (such as using a module after sigmoid to do some clipping, or just using a different rendering transform).

#1 way to achieve this.

1 Like

There is no hue twisting. I just tried with a color checker picture and some color test images.

Maybe after YEARS of having the choice of hue twisting or norms, that finally got fixed.

That issue never existed lol :rofl:

Sure did back in 3.4.0: darktable/filmic.c at release-3.4.0 · darktable-org/darktable · GitHub

Please do tell me where I’ve ever said anything remotely close to this.

I enjoy the work he has put into darktable because I’ve taken the time to try and learn the way those modules work according to him, and they do in fact allow me easier and more creative control. Now, trying to reduce the impact of my words by labeling me a fanboy is ad hominem and not appreciated.

Unfortunately, he, the person, often has the same consending tone as you, which really makes the words written ineffective. At least he has to be poked several times before using such a tone, where as it seems to be the default with you. Really some humility would go a long fucking way for you.

2 Likes

Bull. Not a SINGLE person poked him when he went on his condescending tantrum about desmis’ good work. You claim that I am the one who defaults to a condescending tone, but he goes straight to a condescending rant with no provocation whatsoever. Show me one example where I’ve done that unprovoked.

1 Like