• Stars
    star
    1,215
  • Rank 37,195 (Top 0.8 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 2 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This may be the simplest implement of DDPM. You can directly run Main.py to train the UNet on CIFAR-10 dataset and see the amazing process of denoising.

DenoisingDiffusionProbabilityModel

This may be the simplest implement of DDPM. I trained with CIFAR-10 dataset. The links of pretrain weight, which trained on CIFAR-10 are in the Issue 2.

If you really want to know more about the framwork of DDPM, I have listed some papers for reading by order in the closed Issue 1.

Lil' Log is also a very nice blog for understanding the details of DDPM, the reference is "https://lilianweng.github.io/posts/2021-07-11-diffusion-models/#:~:text=Diffusion%20models%20are%20inspired%20by,data%20samples%20from%20the%20noise."

HOW TO RUN

    1. You can run Main.py to train the UNet on CIFAR-10 dataset. After training, you can set the parameters in the model config to see the amazing process of DDPM.
    1. You can run MainCondition.py to train UNet on CIFAR-10. This is for DDPM + Classifier free guidence.

Some generated images are showed below:

    1. DDPM without guidence:

Generated Images without condition

    1. DDPM + Classifier free guidence:

Generated Images with condition