Nailing skin tones in Darktable?

Sean Tucker has a really interesting guide here on nailing skin tones, even when you’re color blind like I am: https://www.youtube.com/watch?v=yMjb7sMiAsg&t=791s

He basically just compares the CMYK ratios, and adjusts the curves of each. Is there an alternative to this within Darktable? I haven’t discovered a way to observe the CMYK ratios, or to bend the curves of each independently.

Alternative approaches to this are welcome as well.

1 Like

Did not know an approach yet that uses certain color ratios, will take a deeper look at it.

I use reference colors to match skin tones in darktable, made a longer posting with examples about it:

2 Likes

After watching the complete Video I find this approach very useful for quick and quite good results. His formula in CMYK space:

C = the starting point
M = Cx2
Y = Cx1.25
K = not relevant

After a quick research on the web I found other skin color ratios for various color tints:

Coming back to darktable: The color picker supports RGB and LAB.
If someone would be able to convert these ratios into LAB space we could use the tone curve to adjust skin colors.
I don’t remember that darktable uses CMYK in a module (correct me if i’m wrong)

2 Likes

These are the colors from the videos in CMYK and LAB, but I can’t tell if the numbers say anything…
skincolors_example

I don’t know if it’s a correct way, but I made a screenshot of the tone palette, imported it in RawTherapee, and added L*a*b* color readings. I guess it’s all from sRGB profile:

Screenshot_2019-08-29_11-39-05

I tried reading the CMYK colors in the Gimp using the pipette tool, but for some reason it always read C=0, whatever the color (probably a bug).

1 Like

Harry Durgin’s Lab Color Chart could also be handy, I think:

Have fun!
Claes in Lund, Sweden

1 Like

What I see in your LAB values:
In the darker colors there is a A:B ratio of 1.5, this decreases with brighter colors to 1.25
This is a similar result to my colors. Could mean that with increasing L value the A:B ratio decreases.

Which award does the first one get who makes a formula out of it?

1 Like

Skin tones has always been a difficult topic to parse. For me, it is a very fascinating one as well because, although I am not very colour blind, I am very colour unaware. My guess is that most professionals have an intuitive sense of skin colour and manipulation.

In general, what I would say is that skin colour, even per individual throughout one’s life, is very diverse. We aren’t even talking about light source and colour constancy challenges. As an example, see https://www.angelicadass.com/humanae-project. That said, ratios and stats are important in the field of computational photography such as detection, identification and machine learning.

From the papers I have read, it is usual good to take a multi-pronged approach. Try using two sets of common ratios in two difference colour spaces.

If you make a screenshot of a YT video there are two problematic points connected with colour management: 1) even if you view YT in a colour-managed browser like properly set-up Firefox, video is not colour-managed – you’d have to download the video and watch it on a colour-managed video player (on Windows there’s MPC-HC, on Linux I know that the default Linux Mint video player respects the monitor profile); 2) the screenshot app might not be colour-managed, so you need to assign your monitor profile to the screenshot file.

OP could look at how Harry Durgin (referenced above) tackles skin tones in dt.

I don’t know much in terms of color management, that’s why I started with “I don"t know if it’s a correct way”.
I took the screenshot from the link posted by @pphoto (post #3), displayed in Chromium, and using the XFCE4 screenshot app. Imported in RT, I used the sRGB input profile.

I found the same color palette, with Lab values: https://d2r1vs3d9006ap.cloudfront.net/s3_images/1112392/CMYK_Lab_Skintone_inline.jpg?1414159126

I watched the same video, got excited, and being a darktable user, opened a portrait and got stuck, and then ended up here. The place where I learned a lot.

Is the final conclusion that we can not read or adjust CMY(K) in darktable? Just to be sure. Would Gimp be a possibility?

GIMP doesn’t support CMYK yet. I think they were some plugins, but I am not sure if they work with the latests versions.

I think Sean’s approach is somewhat hackish and normally one could do well enough with a calibrated monitor, using tools that doesn’t destroy colors (for example, before filmic, I always got too saturated reds using the base curve, that destroyed skin tones) and trusting your eyes (in Sean case I think he developed that method because of his color blindness).

You can try Krita. There are tutorials based on HSL / HSV or L*a*b*, and even RGB if you look hard enough (dt is going in the RGB direction).

Hey thanks, I will try your tips, getting rid of red first thing sounds good. Covid forced me into studio portraits and being obsessive compulsive about photography I have to master everything with impatience.

Anyway with regard to the OP’s bobsaget question about Sean Tucker’s CMYK formula, I found a way, albeit clumsy. I downloaded a third party CMYK color picker and used the channel mixer to emulate that approach, not elegant but works. BTW , there are different recommended CMY ratios e.g. Skin Tone Correction in Photoshop | Adjusting Skin Color

Thanks, I was quite happy with the RGB centered approach in dt, until this CMYK skin tone formula (just joking). I always thought of Krita as a drawing program, interesting I will have a look at it.

I haven’t given Krita much of a chance because I started using GIMP long ago, but a first look recently made me open to recommending it. PM @Reptorian: he knows more about it.

Krita does lack some critical selection tools, and some filters, but in the case of modifying CMYK color, it’s not lacking there. In the case of modifying color in CMYK, it’s as easy as this in Krita.

  1. Open up your file in 32F float RGB TIFF. Or whatever the highest level of info you have. If it 8-bit integer, you can use that instead if that’s all you have to work with.
  2. Duplicate your image.
  3. Select the duplicated image.
  4. Go to Layer->Convert->Layer Color Space. Convert from RGB to CMYK.
  5. Set your duplicated layer to color blending mode. (If you want to preserve luminosity).
  6. Add a non-destructive color adjustment mask onto the duplicated layer. Yes, it has it own mask. Right click, then add Filter Mask.
  7. Modify the Magenta and Yellow Channel.
  8. You’re done at this point.
3 Likes

RT now has scopes esp a vectorscope that can be used to nail skin tones… https://www.youtube.com/watch?v=jKkklBb9R8g

2 Likes

Color matching feature incoming : https://github.com/darktable-org/darktable/pull/10579

6 Likes