Warning: this tutorial exists only to show that it's possible to do this in Krita, and it's useful if you already have a project in Krita and you want to try adding an effect like this. For example, this effect is non-destructive, so you could literally paint or draw something in one layer and watch the effect getting updated in real time inside Krita. In practice, it's actually very inconvenient to do this in Krita, so if all you want is to add an effect like this to a graphic you already have, a much easier solution is to use Photopea instead, which is a free alternative for Photoshop, because it lets you just add multiple strokes to a single layer in a very simple, easy, and convenient way like you would expect to be able to do in any image editor in 2025.

Stacked Stroke Method: Easy but Imprecise
To create a multiple stroke effect in Krita using the "stacking" method, which is very easy to do and modify, but doesn't look good when you have too many strokes, follow the following steps:
1: add a stroke effect to a layer through "Layer Effects..." in its context menu. If you don't know how to do this, read How to Add a Stroke Effect to a Text or Graphic in Krita. The stroke position needs to be set to Outside for this method to work.
2: place the layer inside a layer group. You can use the keyboard shortcut Ctrl+G to do this quickly.
3: add a stroke effect to the layer group. You should have two strokes effects now. The first stroke is an outline applied to your starting layer, the second stroke is applied to the composite image of everything inside the layer group, which includes the first stroke. In other words, you are adding a second stroke to the already-stroked layer.
4: repeat this process as many times as you wish.

Tip: Krita makes the stroke effect in Multiply blend mode by default with 75% opacity. You'll probably want to change this to Normal, 100% every time, on top of enabling the Stroke effect. If you have several strokes, it's a good idea to use the Copy Style Style option in the context menu of the layer so you can copy and paste the stroke effect multiple times and then all you need to do is change the color and width.
Tip: if your first layer is a layer group with several layers inside of it, it might be easier to do this by creating a clone layer from your group, making your group invisible, and then applying the effect on the clone layer instead.
The good thing about this method is that it's very easy to create and modify later. The bad thing about it is that when you add a stroke to another stroke, there are rounding errors that will accumulate such that stacking multiple strokes will make areas in the outer strokes that should be curves turn into straight lines. Essentially what is happening is that the stroke looks "less curvy" because its radius is larger. When strokes are added to strokes, the algorithm looks at the pixels and decides the stroke should look like a straight line rather than a curve. This flattening becomes more perceptible the more strokes you stack on top of each other. Fortunately, there is a solution to this, which is using a completely different method.

Layered Stroke Method: Precise but Complicated
A more precise method for creating the multi-stroke effect requires some preparation and takes more work to modify later, but it looks better and that's what really matters.
1: start by creating a layer group for our effect. In this group, we will place a clone layer of the layer or layer group that we want to apply the effect to. I recommend creating a new project with the following structure so you can understand better what we're going to do:
- Effect (Layer Group)
-- Clone of Source
- Source (Layer Group)
-- Layers to apply the effect to
2: create a second group with a second clone of the source, and in it create the multiple stroke effect that you want using previous, simpler method described in this article. This way you can more easily add and remove strokes and change their widths until you have a good idea of how you want the effect to look. After you are finished, write down the widths of each stroke. You don't need to write down the colors of the strokes since you can just copy and paste the styles later.
3: using the Duplicate button in the Layers docker, duplicate the clone layer until there is one clone for each stroke you want to add. For example, if you have 6 strokes, you need 6 separate clone layers.
The bottom layer will be your outermost stroke, while the top layer is the innermost stroke. In the case of the effect we made previously, it would look like this:
- Effect (Layer Group)
-- Orange Stroke (Innermost)
-- 1st White Stroke
-- 1st Purple Stroke
-- 2nd Purple Stroke
-- 3rd Purple Stroke
-- 2nd White Stroke (Outermost)
4: calculate the sum of the widths of your strokes. For this example effect, the stroke widths are 5px, 5px, 5px, 20px, 8px, 5px.
5 + 5 + 5 + 20 + 8 + 5 = 48
This will be the width of your outermost stroke. In our case, 48px.
5: subtract from the total the width you want the outermost stroke to have. In our case, we want the outermost stroke to have 5px of width, so 48px - 5px = 43px.
This will be the width of your second outermost stroke.
Repeat this process for all strokes.
6: add the layer styles to the each clone layer, setting the stroke width to their respective calculated values. If you created the effect first using the "stacked" method, you can simply using the Copy Layer Style option in the context menu to quickly copy and transfer the color and style from one method's layer groups to the other method's clone layers.

This method is the best way to create this effect, but it's really complicated to do. If you want to change a stroke width later, you need to change all widths. It's also more resource intensive compared to the stacking method because Krita needs to process N clones of the source layer to create the effect. I recommend keeping this effect's layer group hidden while you're working on your project so Krita doesn't need to reprocess all the clones and their styles every time you make a small change to something.
Tip: if you need to "preview" the total stroke width to position your source layer precisely, you can simply hide all clones except the largest one (in this example, 2nd White Stroke (48px)), that way Krita only needs to process the stroke effect for 1 clone instead of multiple.
The Inverted Method: It Just Looks Different
While writing this tutorial, I was only going to show how to do it using the stacking method, but then I realized the issue with it while creating a rainbow effect. I figured the solution would be to make the stroke bigger to get rid of the rounding errors, and I came up with two ways to do it. The first method I thought of was this one, and it's a mistake happy accident, since it doesn't really work the way I wanted it to, but it looks cool nonetheless so I'm listing it in case someone has a use for it.
This method is a mixture of the other two methods.
First we create our layer group with a clone of source like we did before, except this time we start with the innermost stroke. We set its width to the sum of the strokes' widths that we want.
Then, we put this clone with a layer style inside a group, and in this group we add the next stroke (indigo), except that this time we set the stroke position to Inside instead of Outside.
We repeat this process for all strokes.
The good thing about this method is that it's less resource intensive than the layered method and it doesn't have rounding errors so curves aren't flattened. The bad thing is that it produces a very different result: if you have gaps in your source image, but those gaps are filled completely by the width of the first stroke, then the other strokes are never going to be added to the gap area, since it's no longer a gap when their styles are processed.