Diffusion model
In a nutshell, diffusion models work by making something more random/noisy, and through the process finding the inverse, which is making noisy things less random, thus generating data.
Diffusion models are frequently used for computer vision tasks such as text-to-image. This page will focus exclusively on that use case.
Principle
More specifically, diffusion models consists of two steps: forward diffusion, which turns an image into noise, and backward diffusion, which turns noise back into an image.
Forward diffusion
Mathematically, each step of the forward diffusion process is defined as , where xt is the process output at step t, q is a distribution at the current step depending on the previous step, N is a multivariate normal distribution, the square root is the mean, and the last one being the variance.
Explained more textually, the process generates a probability distribution of the current step (xt) given the last step. The distribution is normal, with randomness injected by a schedule. The image starts with a non-random distribution, and through this process we destroy that distribution into noise. In real scenarios, the noise is not added iteratively, but this is the principle.