| license: mit | |
| datasets: | |
| - huggan/anime-faces | |
| pipeline_tag: unconditional-image-generation | |
| tags: | |
| - art | |
| # ddpm-anime-faces-64 | |
| **ddpm-anime-faces-64** is an educational project for introducing the training and sampling processes of DDPM and DDIM models. The model is trained on [huggan/anime-faces](https://huggingface.co/datasets/huggan/anime-faces) dataset. | |
| ## Training Arguments | |
| | Argument | Value | | |
| | :-------------------------: | :----: | | |
| | image_size | 64 | | |
| | train_batch_size | 16 | | |
| | eval_batch_size | 16 | | |
| | num_epochs | 50 | | |
| | gradient_accumulation_steps | 1 | | |
| | learning_rate | 1e-4 | | |
| | lr_warmup_steps | 500 | | |
| | mixed_precision | "fp16" | | |
| For training code, please refer to [this link](https://github.com/LittleNyima/code-snippets/blob/master/ddpm-tutorial/ddpm_training.py). | |
| ## Inference | |
| This project aims to implement DDPM from scratch, so `DDPMScheduler` is not used. Instead, I use only `UNet2DModel` and implement a simple scheduler myself. | |
| Please refer to `sampling_ddpm.py` and `sampling_ddim.py` for detailed usages. | |
| ## References | |
| 1. [DDPM Tutorial (Written in Chinese)](https://littlenyima.github.io/posts/13-denoising-diffusion-probabilistic-models/) | |
| 2. [DDIM Tutorial (Written in Chinese)](https://littlenyima.github.io/posts/14-denoising-diffusion-implicit-models/) | |
| 3. [GitHub Repo](https://github.com/LittleNyima/code-snippets) |