Rawtherapee Vibrance Skin-tones H values?

I am trying to use RT Vibrance Skin-tones setting, it looks great, but I can’t find any information about HH range (HSV).

Is H from 0 to 20? from 10 to 30? from 0 to 40 or something else?


(It also seems that no way to add the adjustment point from the image, by pressing Ctrl key (like in tone curves for example) image )

So, unfortunately it is impossible to add the point from image and check values with Navigator HSV or adjust it for particular person from image.

I’ve tried to find some information in RawPedia, but this is the article about the Skin-tones:

Does anybody know that H values (range)?

Thank you in advance!


Simplified algorithm (2011).

In Lab mode, at startup I do a full gamut check and calculate the resulting RGB saturation.

In a first step according to saturation, hue and luminance, I apply a correction to the saturation according to pastel / satur

If the H(H) curve is activated then in the range -0.05 radians to 1.6 radians (red) with a transition zone of 0.15 radians, a progressive Hue change is applied.

if “skin protect” is activated another algo is set up beforehand which takes into account the luminance of each pixel, the chroma, the hue and will apply a reduction to the saturation…ignoring completely if the Mister or Madam is blue/white/red/spotted…I don’t say that it is exhaustive, but it should cover 99% of the cases…

Then I applied a Munsell correction.


1 Like

Hello Jacques,

Thank you for your response and for your contribution to RawTerapee! (I saw your copyright in color.cc file)

As I understand from your answer H activated in the range of -0.05 to 1.6 radians, it means:
360 - 0.05 * 360/(2 * Pi) = 357.13 and 1.6 * 360/(2 * Pi) = 91,71 degree.
So H vary from 357.13 to 91.71 degree is it correct?

Excuse me, but I have several additional questions:

  • You mentioned 0.15 radians transition zones are they outside of this range?

  • You also mentioned that you use Simplified algorithm (2011). Initially I merely wanted to correct the skintones for several photo, but it looks interesting. If it possible, could you please advise me where I can find any information about that algorithm? (simply to understand how it works).

  • I also saw comment (see below) inside of the code, C++ isn’t my strong side :grinning: was it really mixed?

// skin color: mixed from NX2 skin color palette, Von Luschan, and photos of people …

RawTherapee is a pretty new software for me and it looks great! Thank you!

Best Regards,

Hello Dmitry

First excuse my bad english.

For the conversion radians degrees, it is that, but in RT all calculations (at least in Lab / LCH mode) are done in radians
The transition of 0.15 radians also applies to the limits.

it is not the habit of RT documentation to describe the algorithms, for my part I think that some algorithms should be detailed, even if it concerns only a small part of the users.
In this case (vibrance) there is nothing else than the Rawpedia page.

The algorithm I presented simplified yesterday can be found in several parts of the code

  • ipvibrance.cc (main), which shows the articulation of the various functions
  • gamutLchonly , put datas in gamut, allows to calculate “saturation” (line 2397 in color.cc)
  • SkinSat, it’s a personal variation around many observations of what is the color of the skin. In fact the essential factor of change is the luminance. The objective here is not to know who is what or to ask ethical questions, but to allocate for each case L,C,H a possible range of variation
  • Then at the end, we do a gamut check and a Munsell correction :
  • AllMunsellLch, various algorihms in color.cc and munselllch.cc. This algoritm compare Lab values before and after, and applies a correction to the Lab (LCH) values so that they match the Munsell tables. It uses Luminance, Chroma and Munsell notation for hue (ex _15PB10)
    this algorithm can bring important corrections for blue/purple, red/orange.

Please note. If you use vibrance in Local Aadjustments (same algorithm), then the deltaE algorithm will complement (and make partially obsolete) skinsat


Hello Jacques,

Ah, excuse me my english too. It is my second language and I understand that it isn’t perfect. However, I believe if you and I understand each other and can communicate and discuss things that are interesting for us it should be enough.

It is good to have open code and have a possibility to look how it works, but when it is big and complicated it might be difficult to understand it. Your answers helped me to catch the main idea and where to find the implementation of this idea in code. Thank you for detailed answer!

I think you provided me very important information about Vibrance “Skin-Tones - Hue According to Hue” instrument: the Hue range much broader than I initially expected (now I understand why). It is vary from Hue 357.13 to 91.7 degree, and this information strongly affect the way, how I use this instrument.

I’ll explain.
Originally I expected the range should be between 0 and 40 degree, or something like this, so I wanted to do skin-tones a little bit smoother and choose the next curve:


(because I thought that the middle of curve should be in the middle, I didn’t want affect the main color, just wanted to hide some skin color defects a little bit)

But now I understand that I was wrong. Let’s say I consider the middle tone as 16-20 degree (for the skin that I have on the particular photo). If I want to do colors smoother I need to use something like this:


(you can see that the intersection point with 45 degree line moved to the left to approximately 16-20 degree)

Now I know about the range, but I think it might affect the way the other photographers use this tool. Do you know what should we do to add this information (about affected color range) to RawPedia?

Best Regards,


Hello Dmitry

We change Rawpedia, with “The adjustment range mainly covers the red and orange hues and is expressed in radians. It starts at -0.05 radians (357.13 degrees) and ends at 1.6 radians (91.7 degrees).”


Hello Jacques,

Sounds good. Thank you for your help!

Have a great day!

Best Regards,

I have just discovered “vibrance” and am totally enthusiastic. My Panasonic G9 often delivers faces that are too red, which I have only been able to correct with the greatest difficulty and only halfway satisfactorily. Now I use vibrance - it is a huge revolution for me: I move the curve up and sometimes I increase the slider: “Pastel Tones” a little to the right and the problematic images are much better than ever before.
My question: how to use this great tool correctly?


Are you aware of this part in RawPedia: Vibrance, especially the Skin Tones - Hue According to Hue section and its second paragraph.

Thank you, @Jade_NL,
yes, of course I know this entry, it made me so happy because it describes exactly what I am looking for. What I still don’t understand at all is this instruction:
“Decide on the specific skin tone hue you want to change … find it on the x axis, …”
How do I find this tone? So far I lift the curve, especially in the lower area, which is probably the red, towards yellow. This goes quite well. Is that the right way to do it?

Ah, OK.

That is partially experience and having a feel for what part of the HUE spectrum is being used.

The part you want to change can be determined using the pointer and looking at the Navigator window → HSV section (The H value). You might want to set a point (in the image) using the Lockable Colour Picker. This will give you an idea if you are close to your target value when you do the actual changing.

As mentioned in the doc this curve is limited to the 357.13 up to 91.7 degrees range. So you can correlate your found point to the curve to determine your starting point and go from there.

I must say that having the ability to use a picker in the curve would be a nice-to-have.

EDIT: About setting a point in the image. Out-of-the-box RT will show RGB values, use shift+left-mouse-click, while hovering the created point, to switch to HSV view.

1 Like

Thank you @Jade_NL,
that sounds logical, have tried - but unfortunately without success. I still understand much too little.

Once I find the H-value on the face, how do I transfer it to the curve?

But for now no matter. I will learn piece by piece, one day also understand. I have to be content with intuitively shifting the curve until the effect makes the skin color more pleasant.
Thank you very much for the help.