DiffusionFastForward: a free course and experimental framework for diffusion-based generative models
However, many of the ongoing research considers solutions that are quite often quite specific and require large computational resources for training.
:beginner: DiffusionFastForward offers a general template for diffusion models for images that can be a starting point for understanding and researching diffusion-based generative models.
The code structure is simple, so that you can easily customize it to your own applications.
:construction: Disclaimer: This repository does not provide any weights to the models. The purpose of this software is to be able to train new weights on a previously unexplored type of data.
There are three elements integrated into this project:
notes
directory)This repository offers a starting point for training diffusion models on new types of data. It can serve as a baseline that can hopefully be developed into more robust solutions based on the specific features of the performed generative task.
It includes notebooks that can be run stand-alone:
Assuming torch
and torchvision
is installed:
pip install pytorch-lightning==1.9.3 diffusers einops
Short summary notes are released as part of this repository and they overlap semantically with the notebooks!
The course is released on YouTube and provides an extension to this repository. Some additional topics are covered, such as seminal papers and on-going research work.
The current plan for the video course (links added upon publishing):
Most examples are one of two types of models, trainable within a day:
PixelDiffusion (Good for small images :baby:) Appropriate for LR data. Direct diffusion in pixel space.
Image Resolution | 64x64 |
---|---|
Training Time | ~10 hrs |
Memory Usage | ~4 GB |
LatentDiffusion (Good for large images :whale2:) Useful for HR data. Latent diffusion in compressed space.
Image Resolution | 256x256 |
---|---|
Training Time | ~20 hrs |
Memory Usage | ~5 GB |
There are many great projects focused on diffusion generative models. However, most of them involve somewhat complex frameworks that are not always suitable for learning and preliminary experimentation.
Some excellent materials have already been published on the topic! Huge respect to all of the creators :pray: - check them out if their work has helped you!
:coffee: Blog Posts
:crystal_ball: Explanation Videos
:wrench: Implementation Videos
:mortar_board: Video Lectures/Tutorials