Skip to content

mike9251/ddpm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Denoising Diffusion Probabilistic Models on CelebA

This repository contains code to train a DDP model on the CelebA dataset.

The project is inspired by the "Denoising Diffusion Probabilistic Models" paper, but streamlined to work with a single dataset (CelebA) for simplicity.

Setup

Clone repository

git clone <your-repo-url>
cd <repo-name>

Install dependencies

Install pytorch

pip install -r requirements.txt

Download Celeba 256 dataset

From Kaggle

Training

Every experiment took ~15 hours (200 epochs) using 1x Nvidia 4090 GPUs.

Unconditional DDPM

python src/train_ddpm.py data_path=<path-to-celeba-dataset> log_dir=<where-to-store-logs>

Conditional DDPM

python src/train_ddpm.py --config-name=train_ddpm_class_cond cfg_scale=0 data_path=<path-to-celeba-dataset> log_dir=<where-to-store-logs>

Conditional DDPM + Classifier Free Guidance

python src/train_ddpm.py --config-name=train_ddpm_class_cond data_path=<path-to-celeba-dataset> log_dir=<where-to-store-logs>

Training loss

alt text

Inference

Unconditional generation

python scripts/generate_images.py ckpt_path=<path-to-ckpt>

Conditional generation

python scripts/generate_images.py --config-name=generate_images_cond ckpt_path=<path-to-ckpt> cfg_scale=3.0

Conditional generation + CFG

python scripts/generate_images.py --config-name=generate_images_cond ckpt_path=<path-to-ckpt> cfg_scale=3.0

Acknowledgments

  1. Denoising Diffusion Probabilistic Models
  2. Video explanation | Video implementation

Notes

This project is simplified for research/educational purposes and focuses only on the CelebA dataset.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages