PyTorch implementation of ‘Denoising Diffusion Probabilistic Models’

This repository contains my attempt at reimplementing the main algorithm and model presenting in Denoising Diffusion Probabilistic Models, the recent paper by Ho et al., 2020. A nice summary of the paper by the authors is available here.

This implementation uses pytorch lightning to limit the boilerplate as much as possible. Due to time and computational constraints, I only experimented with 32×32 image datasets, but it should scale up to larger datasets like LSUN and CelebA as demonstrated in the original paper. This implementation was done for my own self-education, and hopefully it can help others learn as well.

Use the provided entry.ipynb notebook to train model and sample generated images.

Supports MNIST, Fashion-MNIST and CIFAR datasets.


  • PyTorch
  • PyTorch-Lightning
  • Torchvision
  • imageio (for gif generation)

Generated Images


MNIST Generation


Fashion MNIST Generation


CIFAR Generation


View Github