File size: 1,506 Bytes
3e86d6b
 
 
 
 
 
 
 
c950b46
a651084
c950b46
a651084
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c950b46
a651084
c950b46
a651084
c950b46
a651084
c950b46
a651084
c950b46
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
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)