Materials
Software Packages
smalldiffusion
(https://github.com/yuanchenyang/smalldiffusion/)
is a lightweight Python package for training and sampling from diffusion
models. It is built for easy experimentation when training new models and
developing new samplers, supporting minimal toy models to state-of-the-art
pretrained models. The core of this library is implemented in less than 100
lines of very readable PyTorch code. We will use this package for class
assignments.
Huggingface diffusers
(https://github.com/huggingface/diffusers)
is a feature-rich library implementing state-of-the-art models. Although it has
a large collection of models and pipelines, it has grown in complexity and is
less suitable for pedagogical purposes.
Suggested Readings (more to be added soon)
Tutorials/Blog posts
- Diffusion models from scratch This course started from this blog post.
- Perspectives on diffusion
- What are diffusion models?
- Generative modeling by estimating gradients of the data distribution
- An introduction to flow matching
- On the mathematics of diffusion models
- Building diffusion model’s theory from ground up
Papers (Chronological order)
- A Connection Between Score Matching and Denoising Autoencoders
- Deep Unsupervised Learning using Nonequilibrium Thermodynamics
- Denoising Diffusion Probabilistic Models
- Denoising Diffusion Implicit Models
- Elucidating the Design Space of Diffusion-Based Generative Models
- Sampling, Diffusions, and Stochastic Localization