GenerativeZoo: A Model Zoo for Generative Models

1Eindhoven University of Technology

description of what image is showing.

The GenerativeZoo is a collection of generative algorithms and techniques implemented in Python using PyTorch. This work is part of the Xecs TASTI project, nr. 2022005.

Goals

Welcome to the Generative Zoo, a collection of (so far) 27 diverse models aggregated in one repository. Our main objectives are:

  • Aggregation: Bring together a variety of generative models in a single, unified platform.
  • Usability: Simplify the process of training, sampling, and evaluating out-of-distribution (OOD) detection across all models.
  • Standardization: Establish a standardized framework for working with these models, ensuring consistency and ease of use.

This repository is designed to grow, continually incorporating new models and advancements in generative modeling, with a big focus on Computer Vision tasks.

Models

To ensure consistency and usability across all models in the Generative Zoo, the following implementation rules were defined:

  • Self-contained Code: Each model's code should be provided, if possible, in a self-contained manner, ensuring it can be easily understood and utilized independently.
  • Model Methods: Training and sampling functionalities should be implemented as methods within the model class.
  • Command Line Control: Training should be controllable via command line arguments, allowing for flexible and repeatable experiments.
  • Full Documentation: Comprehensive documentation must be provided for all parameters, detailing their purpose and usage.
  • Example Script: An example script demonstrating the main functions of each model should be included, showing users how to effectively train and sample from the model.
  • References: Both the paper that proposed the model and the repositories that were used to create the Zoo's implementation should be explicitly mentioned.

Implemented Models

The 27 implemented models can be divided in seven major categories: Variational Autoencoders (VAEs), Generative Adversarial Networks (GANs), Denoising Diffusion Probabilistic Models (DDPMs), Score-based Generative Models (SGMs), Autoregressive Models, and Flow-based Models. The seventh category comprises Stable Diffusion models, which were separated from traditional diffusion models since they are not trained from scratch. The table below provides a summary of the models implemented in the Generative Zoo.

Category Model Source
VAEs Vanilla VAE arXiv
Conditional VAE OpenReview
Hierarchical VAE arXiv
GANs Adversarial VAE arXiv
Vanilla GAN arXiv
Conditional GAN arXiv
CycleGAN arXiv
Prescribed GAN arXiv
Wasserstein GAN with Gradient Penalty arXiv
DDPMs Vanilla DDPM arXiv
Conditional DDPM arXiv
Diffusion AE arXiv
SGMs Vanilla SGM arXiv
NCSNv2 arXiv
Autoregressive VQ-VAE + Transformer arXiv
VQ-GAN + Transformer arXiv
PixelCNN arXiv
Flow Vanilla Flow arXiv
RealNVP arXiv
Glow arXiv
Flow++ arXiv
Flow Matching arXiv
Conditional Flow Matching arXiv
Rectified Flows arXiv
Stable Diffusion Stable Diffusion + LoRA arXiv
ControlNet arXiv
InstructPix2Pix arXiv

Datasets

You can implement your own dataloaders, but the following ones are already provided in the zoo, as well as tools to automatically download the datasets or instructions on how to get them.

Grayscale Datasets RGB Datasets
MNIST CIFAR-10
FashionMNIST CIFAR-100
ChestMNIST++ SVHN
OctMNIST++ Places365
PneumoniaMNIST++ DTD
TissueMNIST++ TinyImageNet
Horse2Zebra
ImageNet-1K

BibTeX

@misc{GenerativeZoo,
  author    = {Francisco Caetano},
  title     = {GenerativeZoo: A Model Zoo for Generative Models},
  journal   = {GitHub repository},
  howpublished = {\url{https://github.com/caetas/GenerativeZoo}},
  year      = {2024},
}