Skip to content

A PyTorch implementation of various deep generative models, including Diffusion (DDPM), GAN, cGAN, and VAE.

License

Notifications You must be signed in to change notification settings

deepmancer/diffusion-gan-vae-pytorch

Repository files navigation

🎨 Deep Generative Models in PyTorch

PyTorch Python Jupyter Notebook License

Master deep generative models in PyTorch with ease!

Welcome to Diffusion-GAN-VAE-PyTorch! This repository is your ultimate resource for mastering deep generative models, implemented from scratch in PyTorch. It features Variational Autoencoders (VAE), Generative Adversarial Networks (GAN), Conditional GANs, Diffusion Models, and Conditional Diffusion Models, all crafted with clarity and precision.


Source Code Website
github.com/deepmancer/diffusion-gan-vae-pytorch deepmancer.github.io/diffusion-gan-vae-pytorch

🌟 Highlights

  • 🧩 Modular & Educational
  • 🔍 Explore Cutting-Edge Models
  • 💡 Beginner-Friendly Yet Research-Ready
  • 📕 Fully documented

👉 Star this repo if you find it helpful, and join our community of AI enthusiasts!


🌠 Results

Fashion MNIST

Fashion MNIST Results

Conditional Diffusion Model

Conditional Diffusion Model Results 1 Conditional Diffusion Model Results 2

Diffusion Model

Diffusion Model Results 1 Diffusion Model Results 2

Conditional GAN

Conditional GAN Results

GAN

GAN Results 1 GAN Results 2

VAE

VAE Results 1 VAE Results 2


🛠️ Installation

Requirements

Ensure the following dependencies are installed:

  • Python 3: The programming language used.
  • PyTorch: The deep learning framework for model building and training.
  • NumPy: For numerical computations.
  • Matplotlib: For result visualizations.
  • tqdm: For progress tracking.

Install dependencies with pip:

pip install torch numpy matplotlib tqdm

🌀 Models Overview

🔹 Variational Autoencoder (VAE)

A VAE learns a probabilistic latent space, enabling smooth interpolation and robust generation of new data points.

🔹 Generative Adversarial Network (GAN)

GANs pit a generator against a discriminator in a game-like setup, creating highly realistic samples over time.

🔹 Conditional Generative Adversarial Network (cGAN)

cGANs incorporate conditional inputs (like class labels) to control data generation, enabling targeted synthesis.

🔹 Diffusion Models

Diffusion Models simulate a stochastic process to progressively model complex distributions, resulting in high-quality generation.

🔹 Conditional Diffusion Models

Building on diffusion models, Conditional Diffusion Models allow for guided, condition-driven generation.


🌟 Getting Started

  1. Clone the repository:

    git clone https://github.com/deepmancer/diffusion-gan-vae-pytorch.git
    cd diffusion-gan-vae-pytorch
  2. Install dependencies.

  3. Run the notebook!


📝 License

This project is licensed under the MIT License. Feel free to use it in your projects while crediting the repository. See the LICENSE file for details.