Introducing "primaries" feature for sigmoid

It’s both - interpreting wavelength of light is done just in the brain.

1 Like

10 posts were split to a new topic: Module position with respect to display vs scene ref’d

Would a moderator like to split out the discussion starting from Introducing "primaries" feature for sigmoid - #44 by Till80? This is an important discussion and deserves a thread of its own. I’ll also chime in later, right now busy IRL…

3 Likes

Yes, done.

1 Like

This new “Smooth” preset is excellent!

10 Likes

I recently had a photo assignment where my task was to document one union campaign photographically. The union members were all wearing different safety vests.

While editing photos, I realized that the orange vests were very difficult to process with sigmiod options alone.

Here is an example. At first I had to underexpose the shots a lot because orange vests threatened to break the gamut limit:

When increasing the exposure with exposure module and increasing the contrast in sigmoid, the orange vest went right over the gamut. Note that the green-yellow vest, for example, remained within the gamut:

Increasing the attenuation of the red primary did help but with very strong desaturation as a result:

One option to counteract this was to reduce the brightness of the highlights, but the contrasts in this area were greatly reduced as a result:

The best solution was to reduce the brightness of the red channel with the help of an additional instance of the color calibration module:

The question that arises for me is, would it make sense to have the reduction of the brightness of the individual primary colors in addition to attenuation and rotation for such cases, or should the brightness - as in this example - be regulated with a color calibration module?

What do you think @flannelhead ?

Here is the raw file for testing purposes:
Creative Commons, By-Attribution, Share-Alike

_DSC0602.NEF (90,5 MB)

5 Likes

Forgive my boldness.

My version…

_DSC0602.NEF.xmp (18.9 KB)

1 Like

Funny with tricky oranges I used to use the two skin tone patches on the CLUT module and or click on the orange patch to sample and then edit it there… worked surprisingly well … Might try to mess with primaries and other … I feel like personally I will be using the rgb primaries with filmic more that sigmoid… I am just better at using filmic to get the looks I want esp with v5… so pairing that with rgb primaries where you can boost or attenuate should provide as much control… Other than helping sigmoid out if you use it is there any real advantage to using it and the primaries with in that module over using rgb primaries with filmic??

Using the workflow recommended by @flannelhead , with the sRGB-optimised settings, and color balance rgb after sigmoid:


_DSC0602.NEF.xmp (11.6 KB)

One could increase perceptual saturation for highlights even more. With 50%:

And at 75%:

5 Likes

This is one of the cases which shows that we would really need a sensible “gamut mapping” right before the output profile conversion. This would serve as a guard rail to handle these situations gracefully.

As a workaround, you might want to have a look at the suggested alternative settings in the initial post. The idea is that when sRGB primaries are used for the working space inside the sigmoid, when applying the per-channel curves, you won’t have values outside the sRGB footprint as long as you keep the recover purity setting at bay.

Behind the scenes, sigmoid first pulls all the input data inside the sRGB footprint before applying the attenuation, so nothing is clipped at that stage either.

Here’s my attempt with those guidelines. Sidecar embedded.

It seems @kofa was faster than me :smiley:

I think this is out of scope as it doesn’t naturally fit within the process that is implemented by sigmoid.

6 Likes

The workflow with the sigmoid primaries controls is tighter integrated, and intended to provide a good-looking picture out of the box without fiddling.

With rgb primaries + filmic you’ll end up doing a lot of manual work. Also, this approach won’t “automatically” invert the rotations after filmic, which is an essential part of the process to keep the midtone chromaticities near their original positions. You’ll end up doing a lot of manual work and fiddling.

The process (and the good results) implemented in sigmoid relies heavily on the per-channel curves processing. I think none of the versions or modes in filmic implement such a process without any additions such as desaturation curves on top of it.

3 Likes

This is nice and the masking functions of darktable are also excellent, but if I have to process about 100 out of 300 photo shoots for the customer, then I would like to do it without the elaborate masking as far as possible in order to be able to work efficiently.

The addition of primaries to the Sigmoid module has made this work much easier for us event photographers, as we often have to deal with unfavorable lighting conditions. This was also very nicely demonstrated above by @flannelhead l and it works very well in practice. This example with the vest is still one of the rare cases where it doesn’t work so easily and I wanted to know if that also could be addressed.

I like the Sigmoid’s nice function of color processing per channel and contrast, which means I can get very good results almost immediately without having to access the other modules too much.

4 Likes

Your gamut comments made me think about CC that has that gamut compression slider and it defaults to 1 (I think 0 is none). I guess this means its applies a little bit of compression by default??.. This can be further increased… would this help and if so could it be used as a single operation in an extra instance of CC moved in the pipeline or does it need to be where it is in the initial instance to be used as intended I recall it could be useful with the blue lights…but nobody ever talks too much about it so I am not sure other than by using it brute force to attenuate gamut how it might be used selectively if at all as part of overall gamut management…

Were mine or @kofa’s attempts with sRGB base primaries at all satisfactory?

First of all, thank you very much for the clarification!

I’m using alternative settings, but I only increased the contrast a little because the scene looked a little flat. Nevertheless, in both cases there is a “peak” in orange that goes beyond the gamut as seen from the waveform:

Why I’m so picky is when it comes to customer orders, I’m very careful not to deliver results that might make it difficult for him to use the photo for different purposes, i.e. colors that are out of gamut, etc.

2 Likes

Based on the screenshot, base profile is Rec2020. Flick the base primaries to sRGB and see what happens then.

I agree that it’s not great to have values in the image that exceed the medium limits. At the very least, we should have a means to explicitly clip those values before they hit the medium (display or file export). I believe they are clipped currently, but that happens implicitly somewhere we don’t control. And obviously it would be great to have a better alternative than just clipping.

That said, I think the overall focus should be on preventing artefacts such as posterization that start to emerge when things are clipped. I tend not to look at the meters too much but focus on avoiding posterized edges that break the image.

2 Likes

OMG This is so embarrassing. :person_facepalming: I completely overlooked this option. Thank you very much for your patience!

Yes, looks much better now:

8 Likes

This was interesting checking out the alternative settings and @flannelhead 's comments on gamut made me think I rarely if ever check the gamut of my exported files.

I have been using a working profile of Linear Rec2020 and setting the histogram profile to match. For the most part looking at the waveform and gamut pre-export. Using this approach and not pushing things I have for the most part trusted the export profile to do the rest and map the color from the edit to the exported JPG…

Not too long ago I experimented with the srgb ICC profile from color.org as it has the necessary LUT to allow for relative and perceptual rendering. I sometimes found that I liked the punch of the relative rendering and the DT profile is only producing a perceptual render.

WIth this image provided by @s7habo I landed on an edit that I liked visually…maybe not the greens but I was focussed on the orange safety vest. I tried both the primaries setting in sigmoid and did exports. Just for fun I brought the jpg back into DT to check and in some cases and to varying degree’s I still had some gamut issues. This seemed worse using the color.org profile. Maybe due to the LUT’s??

I exported 6 images in total from the edit… Images 1-3 are with sigmoid at rec2020 primaries’ and then exported as relative and perceptual renders using the color. org ICC and the 3rd is using DT default srgb profile. Then I repeated this but with sigmoid now set to srgb primaries…

The following screenshots are those images …first one is the edit… not gamut indicators…

The first run of the 6 images used the color.org ICC for gamut checking and the second run of the 6 images is using DT default srgb profile for gamut checking…

The change in primaries helps a lot and when paired with the default DT srgb profile gamut seems to be handled the best…

Anyway its just an experiment and the sidecar and icc file from color.org are provided below if anyone wants to play around in a similar way…

Gamut using DT default srgb

_DSC0602.NEF.xmp (16.7 KB)
sRGB_v4_ICC_preference.icc (59.5 KB)

I thought the LUTs were required for perceptual, and darktable’s profile only supported relative.

I did as well but I will dig it up the comments that I thought indicated otherwise. I think because the rendering selection at least at one time was always set to relative but even with little Lmcs enabled it I am certain it is now set to perceptual and it is always a pretty good match for the color.org perceptual… relative is much more contrasted and easy to spot with that icc. I looked in the code and its a matrix shaper profile in DT… so maybe it is relative… the code says default intent perceptual but again hard to say maybe that just goes in the setting of the dialog box… In the case of the DT profile relative and perceptual will give the same as there is no LUT so again you may be right the thing is that the output generally is closer to what I get with the the color.org icc perceptual and the relative render is much more saturated and contrasted. There are two other icc from color.org… one is appearance and that one renders relative less saturated and more like what DT produces… It is noted I think if I understand to be more srgb accurate when gamut change is large so maybe this jives with the DT matrix profile… There is a v2 profile 2014rgb.icc which is slightly tweaked to improve on the color casts that could apparently be seen with the original v2 srgb spec… again no idea if that would improve not any rendering over what is produced by DT’s matrix… I guess I will try a set on two or three images and render them all and take a look … I wonder if other that the current one here from @s7habo there are some good test images for gamut… Just thinking about this and how it might interact with the results obtained by tweaking the primaries in sigmoid… that being you end up with a result from your edit but the rendering might impact how faithfully that gets conveyed??

I think I misunderstood this comment

“RGB (web-safe) with relative colorimetric rendering intent is essentially similar to the same profile with the perceptual rendering intent. This is to be expected since the profile doesn’t contain any “intent look-up tables”.”

From this thread

combined with my comparison of the output from DT vs color.org icc profiles it looked more perceptual… but I think you are likely correct…