Welcome to a hands-on course repository covering diffusion models — from basic implementations to advanced applications like image editing, text conditioning, ControlNet, and adapter-based fine-tuning. This repository accompanies a YouTube series on diffusion models. YouTube Series
- Introduction to basic diffusion model concepts
- Simple implementation examples
- Introduction to Diffusion based Generative MOdel YouTube Video 1
- Conditional Generation YouTube Video 2
- Application of diffusion models on MNIST dataset
- Training and evaluation scripts
- Using pure Pytorch YouTube Video 3
- Using the Diffusers Library YouTube Video 4
- Advanced diffusion model implementation
- Celebrity face generation using TMDB dataset
- Key features:
- Custom data preprocessing and filtering
- Optimized training pipeline with gradient accumulation
- Configurable evaluation steps
- GPU acceleration support
- Finetuning a Diffusion model from scratch on Celebrity faces YouTube Video 5
Part 4: Image Editing with Diffusion YouTube Video 6
- Image manipulation using diffusion models
- Practical editing applications
- Implementation of latent diffusion models
- Celebrity face generation in latent space
- Enhanced features:
- VAE integration for efficient training
- Larger dataset support (1000 samples)
- Optimized learning rate (5e-4)
- Extended evaluation intervals
- Text-to-image generation capabilities
- Integration with text prompts
- Advanced control mechanisms for diffusion models
- Fine-grained generation control
- Adapter-based conditioning (IPAdapter, face/ipadapter examples)
- Notebooks and examples showing how to combine adapters with ControlNet
- Low-Rank Adaptation (LoRA) examples and loading fine-tuned LoRA weights
- Notebooks demonstrating LoRA integration with Stable Diffusion
- PyTorch
- Hugging Face Diffusers
- Custom UNet2DModel implementations
- DDPMScheduler for noise scheduling
- Inpainting and Image to Image diffusion
- Controlnet and IP-Adapters
- LoRA (Prameter efficient finetuning)
- Optional CUDA / GPU acceleration
git clone https://github.com/mohan696matlab/Diffusion_Gen_AI_Course.git
cd Diffusion_Gen_AI_CourseYou can use a venv or conda environment. Example venv on Windows (PowerShell):
python -m venv venv
venv\Scripts\Activate.ps1Or using cmd.exe:
venv\Scripts\activate.batIf you prefer conda:
conda create -n diffusion python=3.11 -y
conda activate diffusionpip install -r requirements.txt- Open the notebooks in each
part_*directory (for examplepart_2_mnist/part_2_1_diffusion_from_scratch_pytorch.ipynb). - Example training or run scripts are present in parts that require them, e.g.
part_3_diffusion_celeb_faces/train_celeb_faces.pyandpart_5_latent_diffusion_model/train_ldm_celeb_faces.py.
Each part can be run independently; check the corresponding notebook or README inside each part for dataset and runtime specifics.
Each part contains its own training configuration and can be run independently.
This repository provides a practical learning path for implementing diffusion models, from fundamental concepts to advanced conditioning and fine-tuning techniques. Use the notebooks for step-by-step walkthroughs and the scripts for experiments at scale.