This repo contains a guide to implementing diffusion models from scratch.
-
We begin by building a simple forward process that adds Gaussian noise to an image. This is how we'll generate our input data for training our diffusion models.
-
We implement the loss function, and training loop, and train a very simple model.
-
We show how to sample from our trained model to generate images.
-
We train a model on the MNIST dataset.
-
We train a model on the CIFAR10 dataset.
-
We show how to train conditional models, allowing us to generate samples from a specific class.
-
We train a model on the CelebA dataset.