TL;DRDiffusion works in two phases: a forward process adds noise, a reverse process learns to remove it.
Training has a forward process that gradually adds Gaussian noise to real images until they're pure noise — and a model learns the reverse: predict and remove the noise step by step. At generation, you run only the reverse process from random noise. Fewer, larger denoising steps (via better samplers) speed it up. Understanding the noise-in/noise-out symmetry demystifies how diffusion "creates".
Key points
Forward: add noise to real images (training)
Reverse: model learns to remove noise
Generate by running reverse from noise
Samplers trade steps for speed
Common mistakes
Thinking the model "draws" directly
Confusing forward (train) and reverse (generate)
Assuming more steps always = better
Try it: Describe the forward and reverse diffusion processes.