View on GitHub

Awesome-GANs

Awesome Generative Adversarial Networks with tensorflow

Awesome-GANs with Tensorflow

Tensorflow implementation of GANs (Generative Adversarial Networks)

Awesome License: MIT Language grade: Python

WIP : This repo is about to be refactored & supporting tf 2.x.

Maybe some codes wouldn’t work on master branch, because i’m just working on the branch.

Environments

Because of the image and model size, (especially BEGAN, SRGAN, StarGAN, … using high resolution images as input), if you want to train them comfortably, you need a GPU which has more than 8GB.

But, of course, the most of the implementations use MNIST or CIFAR-10, 100 DataSets. Meaning that we can handle it with EVEN lower spec GPU than ‘The Preferred’ :).

Usage

Now on refactoring… All GAN training script can be run module-wisely like below. (WIP)

Install dependencies

You can also use conda, virtualenv environments.

```shell script $ python3 -m pip install -r requirements.txt


### Train GANs

Before running the model, make sure that 

1. downloading the dataset like *CelebA*, *MNIST*, etc what you want
2. In `awesome_gans/config.py`, there are several configurations, customize with your flavor!
3. running the model like below

```shell script
$ python3 -m awesome_gans.acgan

DataSets

Supporting datasets are … (code is in /awesome_gans/datasets.py)

Repo Tree

│
├── awesome_gans (source codes & eplainations & results & models) 
│        │
│        ├── acgan
│        │    ├──gen_img (generated images)
│        │    │     ├── train_xxx.png
│        │    │     └── train_xxx.png
│        │    ├── model  (pre-trained model file)
│        │    │     └── model.txt (google-drive link)
│        │    ├── __init__.py
│        │    ├── __main__.py
│        │    ├── model.py (gan model)
│        │    ├── train.py (gan trainer)
│        │    ├── gan_tb.png   (tensorboard loss plot)
│        │    └── readme.md    (results & explainations)
│        ├── config.py         (configurations)
│        ├── modules.py        (networks & operations)
│        ├── utils.py          (auxiliary utils)
│        ├── image_utils.py    (image processing)
│        └── datasets.py       (dataset loader)
├── CONTRIBUTING.md
├── Makefile   (for linting the codes)
├── LICENSE
├── README.md  (Usage & GAN paper list-up)
└── requirements.txt

Papers & Codes

Here’s the list-up for tons of GAN papers. all papers are sorted by alphabetic order.

Start

Here’s the beginning of the GAN.

Name Summary Paper Code
GAN Generative Adversarial Networks [arXiv] [code]

Theory & Concept

Here for the theories & concepts of the GAN.

Name Summary Paper Code Official Code
ACGAN Auxiliary Classifier Generative Adversarial Networks [arXiv] [code]  
AdaGAN Boosting Generative Models [arXiv] [code]  
bCR Improved Consistency Regularization for GANs [arXiv] [code]  
BEGAN Boundary Equilibrium Generative Adversarial Networks [arXiv] [code]  
BGAN Boundary-Seeking Generative Adversarial Networks [arXiv] [code]  
BigGAN Large Scale GAN Training for High Fidelity Natural Image Synthesis [arXiv] [code]  
CGAN Conditional Generative Adversarial Networks [arXiv] [code]  
CoGAN Coupled Generative Adversarial Networks [arXiv] [code]  
ConSinGAN Improved Techniques for Training Single-Image GANs [WACV21] [code] [official]
DCGAN Deep Convolutional Generative Adversarial Networks [arXiv] [code]  
DRAGAN On Convergence and Stability of Generative Adversarial Networks [arXiv] [code]  
EBGAN Energy-based Generative Adversarial Networks [arXiv] [code]  
EqGAN-SA Improving GAN Equilibrium by Raising Spatial Awareness [arXiv] [code] [official]
f-GAN Training Generative Neural Samplers using Variational Divergence Minimization [arXiv] [code]  
GP-GAN Towards Realistic High-Resolution Image Blending [arXiv] [code]  
Softmax GAN Generative Adversarial Networks with Softmax [arXiv] [code]  
GAP Generative Adversarial Parallelization [arXiv] [code]  
GEGAN Generalization and Equilibrium in Generative Adversarial Networks [arXiv] [code]  
G-GAN Geometric GAN [arXiv] [code]  
InfoGAN Interpretable Representation Learning by Information Maximizing Generative Adversarial Networks [arXiv] [code]  
LAPGAN Laplacian Pyramid Generative Adversarial Networks [arXiv] [code]  
LSGAN Loss-Sensitive Generative Adversarial Networks [arXiv] [code]  
MAGAN Margin Adaptation for Generative Adversarial Networks [arXiv] [code]  
MRGAN Mode Regularized Generative Adversarial Networks [arXiv] [code]  
MSGGAN Multi-Scale Gradients for Generative Adversarial Networks [arXiv] [code]  
PGGAN Progressive Growing of GANs for Improved Quality, Stability, and Variation [arXiv] [code] [official]
RaGAN The relativistic discriminator: a key element missing from standard GAN [arXiv] [code]  
SeAtGAN Self-Attention Generative Adversarial Networks [arXiv] [code]  
SphereGAN Sphere Generative Adversarial Network Based on Geometric Moment Matching [CVPR2019] [code]  
SGAN Stacked Generative Adversarial Networks [arXiv] [code]  
SGAN++ Realistic Image Synthesis with Stacked Generative Adversarial Networks [arXiv] [code]  
SinGAN Learning a Generative Model from a Single Natural Image [arXiv] [code] [official]
StableGAN Stabilizing Adversarial Nets With Prediction Methods [arXiv] [code]  
StyleCLIP Text-Driven Manipulation of StyleGAN Imagery [arXiv] [code] [official]
StyleGAN A Style-Based Generator Architecture for Generative Adversarial Networks [arXiv] [code] [official]
StyleGAN2 Analyzing and Improving the Image Quality of StyleGAN [arXiv] [code] [official]
StyleGAN2 ADA StyleGAN2 with adaptive discriminator augmentation [arXiv] [code] [official]
StyleGAN3 Alias-Free Generative Adversarial Networks [arXiv] [code] [official]
StyleGAN-XL Scaling StyleGAN to Large Diverse Datasets [arXiv] [code] [official]
TripleGAN Triple Generative Adversarial Networks [arXiv] [code]  
UGAN Unrolled Generative Adversarial Networks [arXiv] [code]  
U-Net GAN A U-Net Based Discriminator for Generative Adversarial Networks [CVPR20] [code] [official]
WGAN Wasserstein Generative Adversarial Networks [arXiv] [code]  
WGAN-GP Improved Training of Wasserstein Generative Adversarial Networks [arXiv] [code]  

Applied Vision

Here for the GAN applications on Vision domain, like image-to-image translation, image in-painting, single image super resolution , etc.

Name Summary Paper Code Official Code
3D GAN 3D Generative Adversarial Networks [MIT] [code]  
AnycostGAN Anycost GANs for Interactive Image Synthesis and Editing [arXiv] [code] [official]
CycleGAN Unpaired img2img translation using Cycle-consistent Adversarial Networks [arXiv] [code]  
DAGAN Instance-level Image Translation by Deep Attention Generative Adversarial Networks [arXiv] [code]  
DeblurGAN Blind Motion Deblurring Using Conditional Adversarial Networks [arXiv] [code]  
DualGAN Unsupervised Dual Learning for Image-to-Image Translation [arXiv] [code]  
DRIT/++ Diverse Image-to-Image Translation via Disentangled Representations [arXiv] [code] [official]
EdgeConnect Generative Image Inpainting with Adversarial Edge Learning [arXiv] [code] [official]
ESRGAN Enhanced Super-Resolution Generative Adversarial Networks [arXiv] [code]  
FastGAN Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis [arXiv] [code] [official]
FUNIT Few-Shot Unsupervised Image-to-Image Translation [arXiv] [code] [official]
CA & GA Generative Image Inpainting w/ Contextual Attention & Gated Convolution [CVPR2018], [ICCV2019] [code] [official]
HiFaceGAN Face Renovation via Collaborative Suppression and Replenishment [arXiv] [code]  
MUNIT Multimodal Unsupervised Image-to-Image Translation [arXiv] [code] [official]
NICE-GAN Reusing Discriminators for Encoding [arXiv] [code] [official]
PSGAN Pose and Expression Robust Spatial-Aware GAN for Customizable Makeup Transfer [arXiv] [code] [official]
SpAtGAN Generative Adversarial Network with Spatial Attention for Face Attribute Editing [ECCV2018] [code]  
SalGAN Visual Saliency Prediction Generative Adversarial Networks [arXiv] [code]  
SRFlow Super-Resolution using Normalizing Flow [arXiv] [code] [official]
SRGAN Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network [arXiv] [code]  
SRResCGAN Deep Generative Adversarial Residual Convolutional Networks for Real-World Super-Resolution [arXiv] [code] [official]
StarGAN Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation [arXiv] [code] [official]
StarGAN V2 Diverse Image Synthesis for Multiple Domains [arXiv] [code] [official]
StyleGAN-V A Continuous Video Generator with the Price, Image Quality and Perks of StyleGAN2 [arXiv] [code] [official]
TecoGAN Learning Temporal Coherence via Self-Supervision for GAN-based Video Generation [arXiv] [code] [official]
TextureGAN Controlling Deep Image Synthesis with Texture Patches [arXiv] [code]  
TUNIT Rethinking the Truly Unsupervised Image-to-Image Translation [arXiv] [code] [official]
TwinGAN Cross-Domain Translation fo Human Portraits [github] [code]  
UNIT Unsupervised Image-to-Image Translation Networks [arXiv] [code] [official]
XGAN Unsupervised Image-to-Image Translation for Many-to-Many Mappings [arXiv] [code]  
Zero-DCE Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement [CVPR20] [code] [official]

Applied Audio

Here for the GAN applications on Audio domain, like wave generation, wave to wave translation, etc.

Name Summary Paper Code Official Code
AAS Adversarial Audio Synthesis [arXiv] [code]  
BeatGAN Generating Drum Loops via GANs [arXiv] [code]  
GANSynth Adversarial Neural Audio Synthesis [arXiv] [code]  
MuseGAN Multi-track Sequential GANs for Symbolic Music Generation and Accompaniment [arXiv] [code]  
SEGAN Speech Enhancement Generative Adversarial Network [arXiv] [code]  
StarGAN-VC Non-parallel many-to-many voice conversion with star generative adversarial networks [arXiv] [code]  
TempoGAN A Temporally Coherent, Volumetric GAN for Super-resolution Fluid Flow [arXiv] [code]  
Parallel WaveGAN A fast waveform generation model based on GAN with multi-resolution spectrogram [arXiv] [code]  
WaveGAN Synthesizing Audio with Generative Adversarial Networks [arXiv] [code]  

Applied Others

Here for the GAN applications on other domains, like nlp, tabular, etc.

Name Summary Paper Code Official Code
AnoGAN Unsupervised Anomaly Detection with Generative Adversarial Networks [arXiv] [code]  
CipherGAN Unsupervised Cipher Cracking Using Discrete GANs [github] [code]  
DiscoGAN Discover Cross-Domain Generative Adversarial Networks [arXiv] [code]  
eCommerceGAN A Generative Adversarial Network for E-commerce [arXiv] [code]  
PassGAN A Deep Learning Approach for Password Guessing [arXiv] [code]  
SeqGAN Sequence Generative Adversarial Networks with Policy Gradient [arXiv] [code]  
TAC-GAN Text Conditioned Auxiliary Classifier Generative Adversarial Network [arXiv] [code]  

Useful Resources

Here for the useful resources when you try to train and stable a gan model.

Name Summary Link
GAN Hacks a bunch of tips & tricks to train GAN stable github

Note

Any suggestions and PRs and issues are WELCOME :)

Author

HyeongChan Kim / @kozistr