Model data corruption and learn to reverse it through denoising, score matching, and stochastic sampling. Implement a small diffusion model and compare DDPM, DDIM, classifier-free guidance, and latent diffusion.