I'm happy to present a new filter I've just added to the G'MIC plug-in for GIMP today. After a filters update, you will be able to find it at Repair / Smooth [skin]
Its purpose is to smooth people skin in portrait images. It is a quite complex filter as many different technical steps are involved, and you can finely tune each of those steps.
Here is a quick explanation of the whole thing.
First, here is how it looks when selected in the plug-in :
gmic_smooth_skin.jpg [ 897.26 KiB | Viewed 13436 times ]
As I said, the filter works with distinct steps :
1. First, it tries to detect the skin pixels. To do this, it uses a specific skin detector that can be run in Automatic
The 'Automatic' mode tries to detect the pixels automatically directly from their chromaticities. I have trained a simple classifier on a high number (millions) of manually labelized skin pixels in various portrait images. When the luminosity is quite standard, this works quite well.
Sometimes of course, the automatic mode fails, and so you can enter the 'Manual' mode where you can do the training by yourself, from samples pixels you suggest (and you can see a 'target' in the preview window that must be positioned to localize skin pixel samples).
2. Once the skin mask has been determined automatically or manually, you enter the second step, which is : soften the details. The filter uses a pyramidal decomposition of the image into several scales (very similar to what Wavelet Decompose does, for those who know it), followed by an smoothing process (isotropic or anisotropic) on the medium details scale (the one that contains most of the skin imperfections).
3. Optionally, you can boost the finest details scale by some gain parameters, in order to render a more sharper image at the end.
Once all those actions have been done, the filter recomposes the image from all its details scales, to render the result.
As you can see, this is a quite complex filter, and it possibly avoids doing a lot of tedious things manually. Of course, you won't have as much controls as if you do the whole pipeline manually, but you will be able to do those things very very quickly.
Here is an example of automatic skin smoothing (almost the default settings), with quite 'light' settings :
gmic_smooth_skin_all2.jpg [ 206.71 KiB | Viewed 13436 times ]
And the same, with more 'heavy' settings (but not the heaviest by the way!) :
gmic_smooth_skin_all.jpg [ 209.25 KiB | Viewed 13436 times ]
So, I think this filter allows you to perform quite subtle changes in your images.
Any comments, suggestions or questions are welcome. I'm quite happy with how the filter performs right now, considering the fact that each step was quite challenging to code.
I hope you'll enjoy it !