
Smoothing Skin Using Gaussian High Pass
To smooth skin in Krita, follow the following steps:
1: open the photo with skin that you want to make smooth in Krita.
In my case, I'll use an image from a previous tutorial in which I use the smart patch tool to remove freckles from a woman's skin.

While that tool managed to remove the freckles, it didn't help much with the skin texture, so this time we'll use a different technique to try to handle that.
2: add a filter layer above the photo layer in Krita. The filter that we want is Edge Detection -> Gaussian High Pass.

The Gaussian high pass filter will turn the image mid gray and then slowly reveal parts of the image as we increase the blur levels. The revealed parts are the edgiest ones. In other words, smooth areas of the image will stay mid gray, while non-smooth parts will start appearing out of the mid gray.
There are a few blend modes in Krita that treat mid gray as a neutral point in which nothing is blended. Just like the white color in Multiply blend mode does nothing, and the black color in Divide blend mode does nothing, using mid gray with Overlay, Hard Overlay Hard Mix, Hard Light is also a no-op.
The reason for this is that these blend modes are actually combinations of one darken and one lighten blend mode together.
Essentially, with Multiply, for example, the black color turns everything into black, while white does nothing. Hard Light uses Multiply when the color is darker than mid gray, but it changes the blending formula so that it goes "from black to mid gray" instead of "from black to white." It does the same thing on the other side, making colors lighter than mid gray get blended with Divide instead of Multiply.
| Blend Mode | < 50% | > 50% |
|---|---|---|
| Overlay | Multiply | Screen |
| Hard Light | Screen | Multiply |
| Hard Overlay | Divide | Multiply |
| Hard Mix | Color Burn | Color Dodge |
3: set a high value for blur, e.g. 100 pixels horizontally and vertically. If you had already added the filter and closed the dialog, right click on it in the Layers docker to open its context menu and click on Properties... to open the dialog again.
4: change the blend mode of the filter layer from Normal to Hard Overlay. You should see that the skin didn't get smoother at all, and in fact got even rougher than before. That's okay, we can invert this.
5: add a filter mask to the filter layer. The filter that we want is Adjust -> Invert. It will completely invert the colors of the photo after the Gaussian high pass filter was applied. Somehow, that makes the image all blurry, which is exactly what we want, but it should be a bit gray at the edges, which is not what we want.
6: decrease the opacity of the Gaussian high pass filter layer from 100% to 50%.
You should be seeing your photo very smoothed out now. Depending on its resolution and colors, you might want to fiddle with the settings a bit, either now or later, changing the length of the blur, the opacity of the effect.
You might be seeing some bright red spots in areas that used to be a dark color, in particular where there is hair over the person's face. This happens when you use the Hard Overlay blend mode, but doesn't happen in the Overlay blend mode. If this becomes a problem, then it might be a good idea switching blend modes.
7: we don't want to make the whole photo blurry, only some spots, so we will need to mask this effect. There are two methods we can use to achieve this.
The first one would be adding a transparency mask to the filter layer, then we can edit the transparency mask by painting on it with a brush. Where we paint with black will be masked out and won't affected the photo anymore. Essentially, black means transparent, and white means opaque.
The second one would be painting directly on the filter layer. On Krita, all filter layers and filter masks have a built-in transparency mask and we can edit them directly. Personally, I don't like this feature because I can never tell if I erased part of the built-in mask by accident. With a separate transparency mask, it's also possible to quickly enable and disable the mask by making it invisible, so I recommend adding a separate transparency mask to the filter layer.
8: select the black color and the transparency mask.
9: click on Edit -> Fill with Foreground Color (keyboard shortcut: Shift+Backspace). This will fill the mask with the black color, making the filter invisible.
10: select the white color, and, with the brush tool, with a soft airbrush brush selected, paint over the areas of the skin that you want to make smooth.
You should see that the photo is magically becoming smoother as you paint over it.
11: if you are satisfied with the result, save your image. Otherwise, you'll need to learn some advanced techniques to get the result that you want.
Advanced Techniques
Although this method is very easy and convenient, it has the massive drawback of making the skin too smooth (and, sometimes, not smooth enough). Unless you have such a severe trypophobia that you can't stand pores, you probably want to do something to add some skin texture back to the skin after smoothing it.
There are several methods we can use to achieve this, but they require a more complicated set up using clone layers.
Simple Noise Addition
The simplest method that we can use is to generate some noise and blend it with the Gaussian high pass before blending it with the original photo. This requires the following set up:
- Group
-- Transparency Mask
-- Fill layer, Simplex Noise (Hard Overlay, 10%)
-- Gaussian High Pass, filter layer ((Hard Overlay, 50%)
--- Invert, filter mask
-- Clone of Photo
- Photo
First, we move the transparency mask to a group so that we can use a single transparency mask for both filter and fill layer, otherwise we would need to redraw the mask for each one of them.
When we do this, the filter layer will stop working because it will be at the bottom of the layer group, so we need to clone the Photo and place the clone of the photo at the bottom of the group in order for it to work again.
All we need to do in this case is add a fill layer that generates Simplex Noise. By default the noise is very large, so you will need to increase its frequency until it's fine enough that it resembles a skin texture.
Then we need to change the opacity of the fill layer so the effect is subtle and doesn't ruin our blur.
Using a Second Gaussian High Pass to Counter the First Gaussian High Pass
The simplex noise method works, but one problem about it is that it's completely random. It would be more useful if the texture we generate actually stems from the skin somehow. Fortunately, there is a technique we can use to achieve this.
Essentially, we add a second Gaussian high pass of the photo, except that the purpose of this filter is to add contrast instead of removing it.
Note: I'm not very familiar with the terminology. It could be that an inverted Gaussian high pass is technically called a Gaussian "low pass" instead.
In any case, the idea of the filter is that it detects sudden changes in color beyond a given threshold. The threshold is how much blur we selected for the filter. In our first Gaussian high pass filter, we use a high threshold to detect changes across large patches of skin and we invert them to smooth them out. We do this by setting the blur to a high value. This time, we need to do the opposite: we'll create a second Gaussian high pass filter with a small blur value so it detects small changes across small patches on skin. In other words, it's a skin pore detector. We can then use these detected pores to undo the effect of the first Gaussian high pass.
For example, on a 1000x1500px photo of a face, if you used 50px for the first Gaussian high pass, you might use 5px for the second Gaussian high pass. This means anything between 5px and 50px will be smoothed out, but details smaller than 5px will not.
The layer structure should look like this:
- Group: Smooth Skin Effect (Hard Overlay, 50%)
-- Transparency Mask
-- Group (Hard Overlay, 50%)
--- Small blur, Gaussian High Pass, filter layer
--- Clone of Photo
-- Large blur, Gaussian High Pass, filter layer
--- Invert, filter mask
-- Clone of Photo
- Photo
Important: we need to apply the second Hard Overlay on the "gray" image generated by the first Gaussian high pass, i.e. we apply it to Gaussian high pass BEFORE it gets Hard Overlay'd on the photo. If we simply applied both of them one on top of the other, you would get a much higher contrast effect than desired resembling a Shapen (or Unsharp Mask) filter. That's because the Hard Overlay blend mode depends on the values of the upper and lower layers; if we change the lower layer first, the results get much stronger, so the correct method is to decrease the effect of the first Gaussian before using it instead of using it then trying to undo it with a second Hard Overlay.
We can make this a bit simpler by using filter masks instead of filter layers.
- Group: Smooth Skin Effect (Hard Overlay, 50%)
-- Transparency Mask
-- Pores, Clone of Photo (Hard Overlay, 50%)
--- Small blur, Gaussian High Pass, filter mask
-- Smoothing, Clone of Photo
--- Invert, filter mask
--- Large blur, Gaussian High Pass, filter mask
- Photo
This should help us with the skin texture, but in some cases it may end up undoing some of our work smoothing the skin, so we need some method to make the smoothness stronger.
Decreasing Smoothness and Getting Rid of Red Spots
Before we make the smoothness stronger, a bit of advice making it fainter.
The simplest method we can use to achieve this is to decrease the opacity of the effect, however, a second method exists: using the Overlay blend mode instead of Hard Overlay.
In my tests, Hard Overlay had a stronger smoothing effect. In fact, it's not simply strong, it also ends up making everything gray, which is why we need to decrease it opacity to 50% just to make it work reasonably. Due to how it blends layers together, in particular red and brown colors with black, it can turn black hairs over someone's face into bright red spots, and it will end up doing the same thing with any dark areas.
For the most part, the transparency mask and the method we saw above to use a second Gaussian high pass to negate the first should get rid of these problems, however they are not perfect.
If you switch to Overlay, these problems won't happen. Overlay can be used with 100% opacity without the issues of Hard Overlay, but it's not as smooth in general since it's not as strong.
Stronger Skin Smoothing with Iterations
Now that we have made our skin smoother, we can make it even more smooth with the most obvious method known to man: just do the same thing again.
The set up for this is a lot more complicated than before. The layer structure looks like this:
- Smooth Skin Effect
-- Transparency Mask
-- 2nd Iteration
--- Group (Hard Overlay, 50%)
---- Pores, Clone of Photo (Hard Overlay, 50%)
----- Small blur, Gaussian High Pass
---- Smoothing, Clone of 1st Iteration
----- Invert
----- Large blur, Gaussian High Pass
--- Clone of 1st Iteration
-- 1st Iteration
--- Effect (Hard Overlay, 50%)
---- Pores, Clone of Photo (Hard Overlay, 50%)
----- Small blur, Gaussian High Pass
---- Smoothing, Clone of Photo
----- Invert
----- Large blur, Gaussian High Pass
--- Clone of Photo
- Photo
It's more or less the same thing as before, except twice. It might look a bit complicated, but it's actually very simple.
1: we take the effect of the previous technique and we put it in a group, which we call "1st Iteration."
2: instead of applying the 1st Iteration effect to the Photo directly, we apply to a Clone of Photo, and move the Photo to outside the group, placing the Photo below it.
3: we wrap our 1st Iteration group in another group (Smooth Skin Effect).
4: we move the transparency mask upward so it applies to the outer Smooth Skin Effect group.
5: we duplicate 1st Iteration to create 2nd Iteration, which will have more or less the same structure.
6: in 2nd Iteration, we change the target of some of the clones so so that instead of cloning the Photo they clone the 1st Iteration instead. To do this, right click on the clone to display their context menu and then click on Set Copy From... to display a dialog to change the target of the clone.
Essentially, what we are doing is taking the output of the 1st Iteration and using it as the input of the 2nd Iteration. If this effect was a single filter, it would be more or less the same thing as applying the same filter twice. However, there is one caveat.
We want to keep details such as pores even after we smooth the skin. For this purpose, the part of the 2nd Iteration that does this, the small blur, must be applied on the original Photo that has the original contrast instead of the already-blurred 1st Iteration. So the clone that we use with the small blur must be a Clone of Photo.
Tip: you can have fine control over the blurriness by changing the opacity of the 2nd Iteration. If two iterations don't feel smooth enough, just repeat the process to create a 3rd Iteration.
- Smooth Skin Effect
-- Transparency Mask
-- 3rd Iteration
--- Pores from Photo
--- Smoothing on 2nd Iteration
--- Clone of 2nd Iteration
-- 2nd Iteration
--- Pores from Photo
--- Smoothing on 1st Iteration
--- Clone of 1st Iteration
-- 1st Iteration
--- Pores from Photo
--- Smoothing on Photo
--- Clone of Photo
- Photo
Tip: you don't need to use the exact same values on every iteration. For example, using a larger blur on the pores part in the final iteration is a quick way to add more pores to the image.

Tip: all this blurring can take a while to process, so if you are working on very large images and you want to make edits to the photo before the blur is applied, it makes sense to make some iterations or the whole effect invisible first so that Krita doesn't reprocess the effect every time you change a pixel in photo.
Limitations
Although this technique is pretty amazing, it isn't perfect and has a few limitations.
First of all, you need a very high blur radii to actually make things smooth, specially if it's a high quality photo. The photo used in this example was 4000x6000px (24 megapixels). The large Gaussian high pass was at 150px radius, while at the small ones (for the pores) were 15px in the first two iterations and 50px in the third. In particular, using a smaller large Gaussian at 100px radius simply created large patches of skin of different color that blurred together instead of smoothing them uniformly, so using sufficiently high values of important to actually achieve smoothing.
On the other hand, if the Gaussian blur is too large, it tends to make skin "gray" at the edges when it encounters shadows or black hair. Fixing this would require using another technique, or perhaps another clone of the photo with a different configuration of skin smoothing masked only to the areas that turned gray. In particular, the fold on eye ends up turning gray as well due to the shadow. Highlights are also smoothed out, becoming duller. In this case the best method is to simply erasing the transparency mask in highlighted areas to avoid dulling them.
This technique can get a lot of skin retouching done easily, quickly, and consistently in ways that would otherwise be impossible to do, but it alone isn't enough as a general solution. You'll still want to use the smart patch tool to get rid of dots on the skin, because it's very good at that, and use the clone stamp brush to fix patterns like hair that will become blurry because of the Gaussian blur.