/diffusion

Implemented unconditional diffusion model with unet and linear noise scheduler

Primary LanguagePython

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Diffuzer

Latent diffusion implementation with pytorch from scratch!
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Built With
  3. Getting Started
  4. Roadmap
  5. Credits

About The Project

Latent diffusion is a sophisticated technique employed in machine learning, particularly in the context of generative models. It plays a pivotal role in the controlled generation of diverse and high-quality data by traversing a continuous latent space. In latent diffusion, data is generated by perturbing an initial latent representation through a series of steps while introducing noise or perturbations at each stage. This gradual transformation allows the model to explore and learn the complex underlying structures within the data distribution.

Built With

Getting Started

Install all the libraries

pip install pytorch torchvision numpy albumentations

Change the arguments values like dataset,batch size,etc in ddpm.py file and call train function inside ddpm.py, save the weights and test using testing.py

Roadmap

  • Implementing latent diffusion from scratch
  • Writing sample function for testing
  • Implementing EMA and class conditioning
  • Training on landscape dataset

See the open issues for a full list of proposed features (and known issues).

Credits