A skin smoothing showcase using RawTherapee's Local adjustements

(Sebastien Guyader) #1

I’m really excited about the latest improvements in RawTherapee’s “Local adjustments” tool. So, I thought I could show here what can be made in “beauty retouch” or “skin smoothing”.

I took the open source Mairi portrait from this page as an example.

My starting point, after basic WB/exposure adjustment, is this:

The idea is to use the “Contrast by Detail Levels” (CbDL) filter, but locally to be sure that the effect will only affect the skin areas. Indeed, Mairi’s hair color is similar in hue as her skin tone, and using the general CbDL from the Detail tab will fail isolating the skin from hair (and it is not rare in a portrait that some colors in the background, hair or clothes are close to the skin tones).

First, I added an RTspot, adjusted its size and coverage:

Then, I turned CbDL on, and selected “Preview selection deltaE” to help me visualizing the skin area targeted, and played with “Balance deltaE ab-L” in Local adjustments settings:

As you can see, besides skin part of the hair is targeted by the tool. This is where “excluding” spots come handy. By adding such spots on the hair, they prevent CbDL acting on the regions (hair) the cover. Below you can see the main CbDL spot as well as the excluding spots I placed over the hair, eyes and lips, and their effect on the preview mask:

The CbDL settings I used to achieve what I think is a nice natural beauty retouch are mainly contrast levels (reducing the contrast of higher levels), increasing the “Chroma” slider to remove some more skin redness, and Clarity to sort of sharpen the skin texture.
As final touch I turned on the Color correction grid in “Color & Light” module on the same central spot, and dragged the white “point” towards cyan color to neutralize a bit more the skin tone.

Here’s a before/after comparison:

And the good news is that now the spots are very easy to manipulate, and the tools very fast and efficient! :smiley:

Dream bigger. Creative Cloud. (Exorbitant Prices.)
(Silvio) #2

Hello sguyader,

First off, thanks a lot indeed for this short tutorial.

I have been following the development of the Local adjustements these past months and I hope this branch will be merged and made ready to be included in the next stable version of Rawtherapee.

Just out of curiosity, do you think is it faster to work with points (adding, excluding) compared to the masks available in other softwares (Darktable, Gimp etc)?

Judging by your tutorial it looks like it takes more time with Rawtherapee but I have never tested myself this feature hence my question… :smile:
With a video tutorial it would be easier to get an idea regarding how long it takes :slight_smile:

1 Like
(Sebastien Guyader) #3

@Silvio_Grosso I can’t compare as I don’t use other tools. Recently though, I tried Darktable’s masking tools for beauty retouch, as I thought it would be great, but I didn’t seem that fast to me (but I’m not a DT user, so it takes me a lot of time to find my way in DT).

I can assure you that thanks to recent additions such as the Duplicate button and the Ctrl-click on Show/hide button to show or hide all spots, it is now much faster using RT’s local adjustments than before. For example, regarding the multiple excluding spots I actually created one, and then duplicated it several times so I just had to place them and resize them as intended.

The same can be done for normal spots, if you want to correct several areas in the same way, just work on a first spot and then duplicate it.

I think that when you get used to the way it works, it gets faster and you can get great results in a matter of minutes. For this Mairi portrait, now that I know how to do it, it would take me something like 5 minutes. Before that, I used to to export to Gimp and do the wavelet skin smoothing thing, which was much more time consuming.

1 Like
(Sebastien Guyader) #4

@Silvio_Grosso Silvio I just tried again and it took me about 8 minutes to set up the spots and their settings, from scratch.

(Silvio) #5

Hello @sguyader

Thanks a lot for your update on this topic!

In the recent past, I have taken a look at the documentation concerning the Local adjustements.
On the one hand, It is quite technical, which is good of course! On the other hand, It is also a bit intimidating for a newbie (IMHO).

Unfortunately, there a only a few video tutorials concerning Rawtherapee on YouTube and none currently regarding these new Local adjustements tools (for Darktable there are plenty of video tutorials and I suppose this is one of the reasons of its popularity).

Lately, on YouTube, I have kindly even asked whether it was possible to get a video tutorial on this topic but the French creator of that channel [1] replied that he had the same problems with the documentantion and it was unable at the moment to record a video tutorial to be posted on his channel :slight_smile:

I have recorded many video tutorials myself (with Obs recorder [2] and edited them with Shotcut) but they are related to Sqlite stuff. With Rawtherapee I am a beginner :slight_smile:

[1] https://www.youtube.com/channel/UCbwyZ6cUTNC6PWBSqud5VdA/videos
[2] https://obsproject.com/

(Mica) #6

Beginners make great videos, since you can address directly the needs of other beginners!

Note the retouch module in darktable is in a released version, which is probably why it has more videos made.

(R) #7

I agree with paperdigits.

Great job on the tutorial and explanation!
The retouch module in darktable does work like a charm if you ask me. Simply because it peals off the image into layers, and you adjust the layers accordingly getting a great end result.

If you ever decide to work with darktable, feel free to DM me for any questions. I’ll try to help you the best way I can.

(Desmis) #8

Thank you @sguyader
It’s a good example of educational support, the result is very good :slight_smile:

Perhaps there are probably other ways to achieve (with RT) a similar result, if other volunteers wish to participate.

Overall from my point of view, Rawtherapee lacks educational materials, be it Rawpedia, videos, or documents of this type.
This supposes to have in addition to rawpedia and screenshot, adapted support (blog, page facebook, etc.)

Developers are generally not the right people to do this because they are focused on development, how to solve the problem and not how to concretely achieve a given result.

On the other hand, the developers - including me of course - are ready to contribute.

For example, I brought my advice to @XavAL for a complex module like “wavelet”, for a Spanish version of Rawpedia

Some modules are simple and the use almost obvious.

Others are complex, for example “Wavelet”, “Ciecam”, “Retinex”…or “Black and white”… or ??.

Others are not complex, but brings a mode treatment different from the habits, as for example “Local adjustemnts”


(Paul Deverson) #9

Am I missing something? I’d like to try this but I don’t seem to be able to access Local Adjustments. I have RT v5.6 on a MacBook with Mojave.

(Mica) #10

@pauld these are all development builds and I’m not sure that anyone is building them for Mac at the moment.

(Ingo Weyrich) #11

Should be this one:

(Paul Deverson) #12

Thank you!

(Sebastien Guyader) #13

Thanks to Jacques (@jdc) I can provide another, simpler, way to select most of the skin but excluding Mairi’s red hair, by using the recently introduced “mask” tool. You can see the screenshot below, showing the area affected by CbDL (in grey) and how it is achieved with the mask tool:

With the mask enabled, there’s no need to using excluding spots on the hair, the only excluding spots are for the eyes and mouth.

At first the use of the mask tool was confusing to me, but if I understand correctly, it works by removing some areas form the initial selection:

  1. when you add the RTspot, it uses the deltaE to “select” the destination pixels (those affected by the filter, here by CbDL), but sometimes such as in this example the deltaE between hair and skin is too small to allow a correct separation
  2. adding the mask will actually allow you to exclude some pixels from the initial selection, based on L(L), C(C ) or LC(H) equalizer. In this example, drawing a narrow notch in the LC(H) curve at the H corresponding to the hair allows to exclude it quite efficiently from the original selection, without affecting the skin selection.
(Desmis) #14

In fact there is 2 ways for using “mask”

  1. “traditionnal”, with “merge” (I call “blend”), image from mask, and original image. in this case you must use, all sliders - blend, radius, chroma mask, gamma mask, slope, and of course 1, 2 or 3 curves L(L), C© , LC(H)

  2. specific Rawtherapee, in this case, as says above by @sguyader , the mask serves to increase the selection capacity by artificially playing on the deltaE.
    The image is not change at all, only “deltaE”.
    In this case, you must use : 1 ,2 or 3 curves, radius…
    If you use the others sliders, I recommand very very small values, because you change the image - of course , its perhaps the goal - but be carefull.



Why I don’t see this version in “unstable” branch?

(Sebastien Guyader) #16

@Chawoosh you need to download a specific build, as the local adjustments are not yet in the main version.
If you’re a Windows user, you can download the latest build from here (look for the “RawTherapee_newlocallab_xxxxxxxx…” build.


I’m using Arch linux and rawtherapee repo in a opensuse server.

(Sebastien Guyader) #18

Two solutions then, as the Arch repo provides only the main version:

  1. Compile RT yourself from source, by pulling code from newlocallab branch

  2. Use the rawtherapee-git package from the AUR repo, and modify the build script to get the code from newlocallab branch

Below is the part of the build script you need to modify, by just adding the 2 lines in bold font face:

build() {
mkdir -p “$srcdir/rawtherapee-build”
cd $srcdir/rawtherapee
git checkout newlocallab
cd “$srcdir/rawtherapee-build”

cmake …/rawtherapee

If you need more assistance, feel free to ask.


I’ll wait for this feature in “unstable” version.

(Sebastien Guyader) #21

If you use pamac as your Package Manager for downloading/updating packages, it’s really not complicated:

  1. in pamac preferences, just turn on Enable AUR support in the AUR tab
  2. search rawtherapee-git
  3. double-click on the result, it will show you the details
  4. click on Build files from the left side panel
  5. add the 2 lines as highlighted on this screenshot:
  6. click on Build and then Apply

Then pamac will do everything for you (checking/downloading dependencies, configuring, compiling and installing).
If you had a previous version of RT installed, it will remove it, but don’t be afraid, the newlocallab branch is not far behind the current dev version, and it is probably ahead of your unstable build.
And if it doesn’t work for you, simply reinstall your usual unstable build and it should replace the newlocallab build.