No jobs

Diffusion

The forward process is trivial and closed-form. The reverse process is the entire field. Almost every confusion about diffusion is a confusion about which one you are looking at.

4 concepts ~44 min

A diffusion model is two processes that share a schedule and nothing else. The forward one destroys an image on a fixed timetable that was written before training began; it involves no network, no learning and no simulation, and it has a closed form that lands anywhere in the chain in one multiply-add. The reverse one is a network, a posterior, a sampler and every design decision in the field.

Most confusion about diffusion is a sentence that is true of one of them being applied to the other. This topic keeps them apart, derives what the network is actually asked for — which is not an image, and not obviously noise either — and ends at the twenty-five-step sampler that a real model in this codebase runs.

  1. 01 Destroying an image on purpose Foundation 2 interactive 10′ A fixed schedule with a closed form: no network, no simulation, and any timestep in one multiply-add. Repairs Thinking the model learns to add noise, or that the forward process is something the network does rather than a fixed schedule with a closed form.
  2. 02 Learning to undo one step Core 1 interactive 12′ The network never returns an image. It supplies the one missing term of a posterior that a sampler then integrates. Repairs Believing the network denoises an image in one shot, when it estimates one term of a posterior that a sampler then integrates.
  3. 03 ε, x₀ or v Core 1 interactive 11′ Three exact coordinate systems for one quantity. Choosing one chooses a loss weighting across the schedule, and nothing else. Repairs Treating the prediction target as an implementation detail, when it changes the loss weighting across timesteps and is why SD2.1 is not SD1.5.
  4. 04 Why 25 steps and not 1000 Advanced 1 interactive 11′ Training defines a loss over a thousand timesteps. Inference visits twenty-five of them, and which twenty-five is a config key with consequences. Repairs Confusing the training schedule with the inference schedule, and assuming more steps is strictly better.
Euler View - ML Experiment Monitor