Diffusion vs Flow Matching: two probability paths from noise to data

drag the slider through \(t \in [0, 1]\) to follow each path
\(t = \) 0.50
noise \(x_0 \sim \mathcal{N}(0, I)\) data \(x_1 \sim p_{\mathrm{data}}\) curved path → need 50–1000 small steps straight path → 5–10 Euler steps suffice
diffusion path (curved) flow matching path (straight) arrows show instantaneous velocity \(dx/dt\)
Diffusion (DDPM)
\(x_t = \sqrt{\bar\alpha_t}\, x_1 + \sqrt{1-\bar\alpha_t}\, x_0\)
\(\mathcal{L} = \mathbb{E}\left[\Vert \epsilon - \epsilon_\theta(x_t, t) \Vert^2\right]\)
Variance-preserving SDE: the path bends because the schedule \(\bar\alpha_t\) is non-linear. Sampling integrates the reverse SDE/ODE in many small steps.
Flow matching (rectified)
\(x_t = (1-t)\, x_0 + t\, x_1\)
\(\mathcal{L}_{\mathrm{FM}} = \mathbb{E}\left[\Vert v_\theta(x_t, t) - (x_1 - x_0) \Vert^2\right]\)
Straight interpolation: velocity is constant along the path, \(v^* = x_1 - x_0\). Far fewer Euler steps recover the same data quality.