
Types of Layers in Krita
Paint Layer
This is the "normal" type of layer, and the default type that gets added if you simply click the plus button in the Layers docker.
This is a raster layer, meaning that it contains pixels. You can paint on it with any brushes and do almost everything with it. If you are an illustrator, this is the type of layer that you will work with the most.
Note: in FireAlpaca (or Medibang) and Clip Studio Paint there are 8-bit and 1-bit layer types that store the color of the pixels as grey scale (8-bit) or only 2 colors (1-bit). Krita doesn't have these types of layers, every paint layer has the color depth of the document, which can be set to 8-bit or 16-bit integer, or 16-bit or 32-bit float. Some types of layers do behave similar to 8-bit layers of those applications when painted on, however, as we'll see below.
Group Layer
This is what Krita calls layer groups (i.e. folders of layers). Layer groups let you group multiple layers together either for organization purposes or in order to create complex effects with them.
An unique feature of layer groups is that they have a Pass Through option. When Pass Through his enabled, the group only serves to organize the layers inside it and you can't use apply any effects to the group. If Pass Through is disabled, and it's disabled by default, the group can have its own blend mode, opacity, etc. Essentially, the layers inside the group are blended first, and a temporary image of everything that is inside of it, called its projection by Krita, is used to apply effects like opacity that are associated with the layer group.

Clone Layer
This is a very cool type of layer that Krita has. It allows you to non-destructively copy and paste a layer, so you can draw in one place and have the same drawing appear in several positions on the canvas. Each clone can have all sorts effects applied to it, which allows you to create complex effects by essentially "programming" graphics using layers.
See How to Use Clone Layers in Krita for details.
Vector Layer
This type of layer allows you to use scalable vector graphics (SVG) in Krita. If you are coming to Krita from CSP, I'm sorry to inform you that vector layers in Krita don't work like vector layers in Clip Studio Paint.
Vector layers are different from raster layers (paint layers) in that they don't store the color of the pixels, but instructions for a program to render graphics. This rendering process is also called rasterization, as it turns vectors into pixels. The benefit of this is that operations like scaling and rotating graphics can be done by simply changing the numbers in the instructions. Normally, if you draw a circle on a raster layer and scale it by 3 times, it will get blurry because the pixel data gets interpolated. On a vector layer, the program simply draws the circle 3 times larger, with 3 times more pixels, so no interpolation is required.
In particular, vector layers in Krita are not made for line art. They are just general purpose SVG layers. You can't even use the brush tool while a vector layer is selected. To draw on a vector layer, you must use a line tool, a polygon tool, or a shape tool like rectangle or circle.
You may notice that Krita lacks the ability to create certain shapes, like star and pentagon. In these cases, I recommend using Inkscape instead. Because Krita uses SVG, you can copy a star from Inkscape and paste it in Krita, and it will become a vector layer.
Text is also vector in Krita, which means that the text tool will create a vector layer.
Personally, I think SVG is just terrible for vector art in general, based on my observations that artists that use proprietary formats tend to simply make better artwork than artists who use SVG. For example, the artwork showcase of Affinity Designer simply looks better than the one in Inkscape's website. I don't think this has a lot to do with free software vs. paid software, but more fundamentally that Inkscape chose to use SVG, and then it has to support a lot of SVG technicalities while Affinity can just do whatever they want. That said, if you do want to use SVG for vector art, I recommend avoiding Krita and using Inkscape instead. Even to add text to Krita I recommend using Inkscape instead of Krita. I recommend avoiding vector layers in Krita as much as possible.
There is however one situation where vector layers can be useful. If you want a simple shape that you will want to change scale or rotation later, in particular to use as a clipping mask, then vector layers are extremely useful. For example, you can easily draw a circle that never gets blurry using a vector layer and use it to clip an illustration or photo.
Cloning a vector layer clones its rasterization (i.e. the final pixels, not the vector).
Filter Layer
A filter layer in Krita is the equivalent of an adjustment layer in Photoshop and Photopea, or a correction layer Clip Studio Paint. It allows you to pick a filter that will be applied to the projection underneath the filter layer, i.e. everything under the filter layer will be affected by the filter.
After you create a filter layer, you can't change which filter it uses, which is kind of inconvenient.
Note: for a long time, GIMP didn't have non-destructive filters, despite adjustment layers being a frequently requested feature, so I used to say that Krita was better than GIMP because it had this extremely useful feature that GIMP didn't have. Since GIMP 3.0, GIMP has gained this feature, so I can't flex over GIMP users anymore with my Krita's powerful non-destructive capabilities... I'm joking. Krita is still better than GIMP. GIMP doesn't have clone layers.
Filter layers work in a rather surprising way for three reasons.
Contains Its Result
A filter layer essentially has its own raster image, like a paint layer, that gets created automatically when the filter is applied. This internal image is the result of applying the filter. What is important to understand about this is that the blending process of a filter layer is identical to the blending process of a paint layer, except that the pixels are the result of the filter.
This means that if you set filter layer's opacity to 50%, that doesn't "make the filter 50% strong," it just blends the image BEFORE applying the filter with the filter layer that contains the image AFTER applying to the filter using 50% opacity.
Similarly, cloning a filter layer clones the end result, so a clone can't be used to place the same filter in multiple locations.
Copy Blend Mode by Default
The default blend mode of a filter layer is Copy, not Normal.
The difference between Copy and Normal is that Copy will overwrite all color channel values, including alpha, without doing any blending at all. For example, if the filter ends up creating a completely transparent image, in the Normal blend mode it wouldn't do anything because the pixels are all transparent, while in the Copy blend mode it just copies the RGBA values as-is for each pixel so if there is a transparent pixel after applying the filter, it simply becomes a transparent pixel in the canvas.
Has an Internal Transparency Mask
One confusing feature of Krita that I wish I could disable is that a filter layer can be drawn on with a brush, and drawing on it changes an internal transparency mask.
While the filter layer is selected, you can only use grey scale colors. Pixels that are drawn black stop being affected by the filter. By default, the whole mask is white, so all pixels are effected.
The problem is that it's hard to tell if the whole thing is white or if you accidentally drew with a brush somewhere while the filter layer is selected.
Tip: use select the white color and click on Edit -> Fill with Foreground Ground to clear the mask.
Automatically Creates Transparency Mask from Selection
If you add a filter layer while an area of the canvas is selected, its initial transparency mask will be clipped to your selection. This means if you select a rectangle and create a filter layer, the filter layer only affects the area of that rectangle by default.
Fill Layer
A fill layer lets you quickly fill the entire canvas with a single flat color, gradient, or pattern. There are actually several types of patterns that Krita lets you use, including a checkerboard under "Screentone," and you can create your own patterns if you can program using the SeExpr programming language. If you ara familiar with Winamp's Mocha, it's essentially the same thing.
Warning: if you want to apply a flat color overlay clipped to a layer, or a pattern clipped to a layer, I recommend using layer styles instead [How to Use Layer Styles in Krita]. That's because fill layers always fill the entire canvas which eats a lot of RAM if your canvas is huge to begin with. Drawing software like Krita is optimized to consume less RAM when you have layers that have small bounding boxes, so you usually don't run into RAM problems by having too many layers, but fill layers will quickly eat all your RAM if you have too many of them. Using a layer style like Color Overlay consumes far less RAM than clipping a fill layer to layer or layer group.
File Layer
A file layer lets you dynamically include a file in your project. The linked file will appear in the canvas, and if you update the file by editing it in some other software, it will automatically get updated when you save it.
It's possible to dynamically link any file type supported by Krita (PNG, JPG, WebP, GIF, etc). This includes GIMP project files (.xcf extension) and even other Krita files (.kra extension).
If you have never worked with dynamically linking files, beware that Krita always uses relative filepaths to link them. This means if you place both linker and linkee file in the same folder, but then you move one of them away, the link will stop working since the file is no longer where Krita will try to find it.
You can fix a broken link by right clicking on the file layer and selecting Properties... in the context menu, and then updating the link to point to the new filepath.
Observation: it's impossible to include a file into itself, which is cool.
Tip: you can also create a file layer by dragging and dropping the file into Krita and selecting "Insert as New File Layer."

Types of Masks in Krita
Masks are a bit different from layers in that a mask is always attached to a layer.
Masks can be attached to any type of layer, including group layers and filter layers. Masks can't be attached to other masks. Multiple masks of the same type can be attached to a single layer, and masks have their own visibility that can be toggled on and off. The order of the masks matters in some cases.
When a layer that has masks attached to it is cloned, the result after applying the masks will be cloned.
To add a mask, you must first select the layer to which the mask will get attached.
Except for a few things, masks are essentially the same thing as layers in Krita. You can move them from one layer to another by dragging and dropping, copy and paste masks, select masks, paint on masks with the brush tool, etc.
Transparency Mask
A transparency mask is a mask that lets you add transparency to pixels of a layer. Mathematically, the layer will have its own alpha channel that contains a value from 0% to 100% indicating the opacity of each pixel. This alpha value will be multiplied by the value of the pixels in the mask.
This means that if a pixel is already semi-transparent in the layer, with 50% opacity, and you have a pixel in the mask that means 50% transparency, the final alpha of the pixel will be 0.5 * 0.5 = 0.25[How to Read Math], i.e. 25% opacity.
In practice, masks appear as grey scale-only layers, where the black color represents full transparency, and the white color represents full opacity. While a transparency masks is selected you can draw on it with brushes, the gradient tool, or any other tool you wish.
If an area of the canvas is selected before creating a transparency mask, the selected area becomes the initial transparency mask.
Filter Mask
The filter mask is the mask equivalent of the filter layer in Krita.
There are some minor differences between the two but for the most part they are equivalent.
Colorize Mask
The colorize mask is a complicated mask in Krita that is used to quickly paint areas in line art. It can be very powerful for illustrators depending on their workflow.
To use it, several steps are required. First you add your colorize mask to your line art layer or layer group. Then you select it, pick the colors of the fills, and draw them in the colorize mask. To experiment with this, simply draw a single dot in each area that you want to become filled with a solid color. After that, you click the circular arrows icon on its right to update the mask. Krita will compute how to render the fills. You should see the fills appear, but the dots you drew will remain. To hide them, click the pencil icon to the left of the update icon, which makes it non-editable and hides the dots you drew.
You can try this mask by drawing a simple circle on a new canvas and picking a color for what is inside the circle and a color for what is outside the circle.
Transform Mask
The transform mask allows you to non-destructively transform a layer or layer group. To use a transform mask, select it, and then switch to the Transform tool in Krita's toolbox.

The transform mask supports everything that the transform tool can do, which is a lot more than you can imagine. Although most people will only use the transform tool in its default way, Krita's transform tool can actually do a lot more than just scaling, rotating, and translating, which means that so can transform masks.
In the Tool Options docker, while the transform tool is activated, you will see that there are multiple modes of operation that you can use, including cage transform, warp transform, perspective transform, mesh transform, and even liquify. All of these operations can be performed non-destructively and toggled on and off whenever you want.
Note: while it's possible to place two transform masks in a single layer, the effects are usually unpredictable if both are visible at the same time. Additionally, placing a transparency mask ABOVE the transform mask will apply the transparency to the transformed pixels, while placing it BELOW will apply it the layer before it has been transformed.
Selections
In Krita, there is a layer and a mask that are related to the concept of selection itself.
Local Selection
A local selection is mask, meaning that it's always attached to a layer, which stores a selected area. Local selections provide a few convenient features for illustrators that work with selections often, and these convenient features can also help with photo editing.
While a Local Selection is selected in the Layers docker, using a selection tool like the rectangular selection or magic wand will operate as if you had the layer selected, and whatever is selected becomes immediately stored in the selected Local Selection.
For example, let's say that you want to select someone's eye to edit it later. First you create a Local Selection, select it, then using the want you click on the eye. Automatically the Local Selection will store the area selected in itself.
The convenient part is that after you have created these Local Selections you can quickly activate them by pressing a dashed circle icon in the Layers docker. This means if you always work on one layer with selected areas, instead of a hundred different layers for each little thing, you can simply have a Local Selection for each important part and click on it while you are working on that area.
Global Selection Mask
The global selection mask is a special layer in Krita that only appears in the Layers docker if you enable Select -> Show Global Selection Mask.
The global selection mask works like a transparency mask, except that its values represent the current selected area in the application.
This means that anything you draw with a brush or gradient in this mask becomes the area that is currently selected.
While you can do all sorts of things with it, perhaps the most important thing about it is that it allows you select both sides of the canvas while symmetry is enabled. That's because in Krita, unlike in CSP, the symmetry modes don't affect selection tools, so if you are using symmetry and you try to use a selection tool, it only selects one side of the canvas, ruining all your symmetry. However, if you display the global selection mask, you can simply draw on it with a white brush while symmetry is enabled, and it will paint on both sides symmetrically, allowing you to select both sides of the canvas as you wanted. It's a bit of a hassle, and I wish symmetry for selections was simply implemented as you would expect, but at least it's doable.