Home

Awesome

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.

$ 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
$ 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.

NameSummaryPaperCode
GANGenerative Adversarial Networks[arXiv][code]

Theory & Concept

Here for the theories & concepts of the GAN.

NameSummaryPaperCodeOfficial Code
ACGANAuxiliary Classifier Generative Adversarial Networks[arXiv][code]
AdaGANBoosting Generative Models[arXiv][code]
bCRImproved Consistency Regularization for GANs[arXiv][code]
BEGANBoundary Equilibrium Generative Adversarial Networks[arXiv][code]
BGANBoundary-Seeking Generative Adversarial Networks[arXiv][code]
BigGANLarge Scale GAN Training for High Fidelity Natural Image Synthesis[arXiv][code]
CGANConditional Generative Adversarial Networks[arXiv][code]
CoGANCoupled Generative Adversarial Networks[arXiv][code]
ConSinGANImproved Techniques for Training Single-Image GANs[WACV21][code][official]
DCGANDeep Convolutional Generative Adversarial Networks[arXiv][code]
DRAGANOn Convergence and Stability of Generative Adversarial Networks[arXiv][code]
EBGANEnergy-based Generative Adversarial Networks[arXiv][code]
EqGAN-SAImproving GAN Equilibrium by Raising Spatial Awareness[arXiv][code][official]
f-GANTraining Generative Neural Samplers using Variational Divergence Minimization[arXiv][code]
GP-GANTowards Realistic High-Resolution Image Blending[arXiv][code]
Softmax GANGenerative Adversarial Networks with Softmax[arXiv][code]
GAPGenerative Adversarial Parallelization[arXiv][code]
GEGANGeneralization and Equilibrium in Generative Adversarial Networks[arXiv][code]
G-GANGeometric GAN[arXiv][code]
InfoGANInterpretable Representation Learning by Information Maximizing Generative Adversarial Networks[arXiv][code]
LAPGANLaplacian Pyramid Generative Adversarial Networks[arXiv][code]
LSGANLoss-Sensitive Generative Adversarial Networks[arXiv][code]
MAGANMargin Adaptation for Generative Adversarial Networks[arXiv][code]
MRGANMode Regularized Generative Adversarial Networks[arXiv][code]
MSGGANMulti-Scale Gradients for Generative Adversarial Networks[arXiv][code]
PGGANProgressive Growing of GANs for Improved Quality, Stability, and Variation[arXiv][code][official]
RaGANThe relativistic discriminator: a key element missing from standard GAN[arXiv][code]
SeAtGANSelf-Attention Generative Adversarial Networks[arXiv][code]
SphereGANSphere Generative Adversarial Network Based on Geometric Moment Matching[CVPR2019][code]
SGANStacked Generative Adversarial Networks[arXiv][code]
SGAN++Realistic Image Synthesis with Stacked Generative Adversarial Networks[arXiv][code]
SinGANLearning a Generative Model from a Single Natural Image[arXiv][code][official]
StableGANStabilizing Adversarial Nets With Prediction Methods[arXiv][code]
StyleCLIPText-Driven Manipulation of StyleGAN Imagery[arXiv][code][official]
StyleGANA Style-Based Generator Architecture for Generative Adversarial Networks[arXiv][code][official]
StyleGAN2Analyzing and Improving the Image Quality of StyleGAN[arXiv][code][official]
StyleGAN2 ADAStyleGAN2 with adaptive discriminator augmentation[arXiv][code][official]
StyleGAN3Alias-Free Generative Adversarial Networks[arXiv][code][official]
StyleGAN-XLScaling StyleGAN to Large Diverse Datasets[arXiv][code][official]
TripleGANTriple Generative Adversarial Networks[arXiv][code]
UGANUnrolled Generative Adversarial Networks[arXiv][code]
U-Net GANA U-Net Based Discriminator for Generative Adversarial Networks[CVPR20][code][official]
WGANWasserstein Generative Adversarial Networks[arXiv][code]
WGAN-GPImproved 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.

NameSummaryPaperCodeOfficial Code
3D GAN3D Generative Adversarial Networks[MIT][code]
AnycostGANAnycost GANs for Interactive Image Synthesis and Editing[arXiv][code][official]
CycleGANUnpaired img2img translation using Cycle-consistent Adversarial Networks[arXiv][code]
DAGANInstance-level Image Translation by Deep Attention Generative Adversarial Networks[arXiv][code]
DeblurGANBlind Motion Deblurring Using Conditional Adversarial Networks[arXiv][code]
DualGANUnsupervised Dual Learning for Image-to-Image Translation[arXiv][code]
DRIT/++Diverse Image-to-Image Translation via Disentangled Representations[arXiv][code][official]
EdgeConnectGenerative Image Inpainting with Adversarial Edge Learning[arXiv][code][official]
ESRGANEnhanced Super-Resolution Generative Adversarial Networks[arXiv][code]
FastGANTowards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis[arXiv][code][official]
FUNITFew-Shot Unsupervised Image-to-Image Translation[arXiv][code][official]
CA & GAGenerative Image Inpainting w/ Contextual Attention & Gated Convolution[CVPR2018], [ICCV2019][code][official]
HiFaceGANFace Renovation via Collaborative Suppression and Replenishment[arXiv][code]
MUNITMultimodal Unsupervised Image-to-Image Translation[arXiv][code][official]
NICE-GANReusing Discriminators for Encoding[arXiv][code][official]
PSGANPose and Expression Robust Spatial-Aware GAN for Customizable Makeup Transfer[arXiv][code][official]
SpAtGANGenerative Adversarial Network with Spatial Attention for Face Attribute Editing[ECCV2018][code]
SalGANVisual Saliency Prediction Generative Adversarial Networks[arXiv][code]
SRFlowSuper-Resolution using Normalizing Flow[arXiv][code][official]
SRGANPhoto-Realistic Single Image Super-Resolution Using a Generative Adversarial Network[arXiv][code]
SRResCGANDeep Generative Adversarial Residual Convolutional Networks for Real-World Super-Resolution[arXiv][code][official]
StarGANUnified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation[arXiv][code][official]
StarGAN V2Diverse Image Synthesis for Multiple Domains[arXiv][code][official]
StyleGAN-VA Continuous Video Generator with the Price, Image Quality and Perks of StyleGAN2[arXiv][code][official]
TecoGANLearning Temporal Coherence via Self-Supervision for GAN-based Video Generation[arXiv][code][official]
TextureGANControlling Deep Image Synthesis with Texture Patches[arXiv][code]
TUNITRethinking the Truly Unsupervised Image-to-Image Translation[arXiv][code][official]
TwinGANCross-Domain Translation fo Human Portraits[github][code]
UNITUnsupervised Image-to-Image Translation Networks[arXiv][code][official]
XGANUnsupervised Image-to-Image Translation for Many-to-Many Mappings[arXiv][code]
Zero-DCEZero-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.

NameSummaryPaperCodeOfficial Code
AASAdversarial Audio Synthesis[arXiv][code]
BeatGANGenerating Drum Loops via GANs[arXiv][code]
GANSynthAdversarial Neural Audio Synthesis[arXiv][code]
MuseGANMulti-track Sequential GANs for Symbolic Music Generation and Accompaniment[arXiv][code]
SEGANSpeech Enhancement Generative Adversarial Network[arXiv][code]
StarGAN-VCNon-parallel many-to-many voice conversion with star generative adversarial networks[arXiv][code]
TempoGANA Temporally Coherent, Volumetric GAN for Super-resolution Fluid Flow[arXiv][code]
Parallel WaveGANA fast waveform generation model based on GAN with multi-resolution spectrogram[arXiv][code]
WaveGANSynthesizing Audio with Generative Adversarial Networks[arXiv][code]

Applied Others

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

NameSummaryPaperCodeOfficial Code
AnoGANUnsupervised Anomaly Detection with Generative Adversarial Networks[arXiv][code]
CipherGANUnsupervised Cipher Cracking Using Discrete GANs[github][code]
DiscoGANDiscover Cross-Domain Generative Adversarial Networks[arXiv][code]
eCommerceGANA Generative Adversarial Network for E-commerce[arXiv][code]
PassGANA Deep Learning Approach for Password Guessing[arXiv][code]
SeqGANSequence Generative Adversarial Networks with Policy Gradient[arXiv][code]
TAC-GANText 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.

NameSummaryLink
GAN Hacksa bunch of tips & tricks to train GAN stablegithub

Note

Any suggestions and PRs and issues are WELCOME :)

Author

HyeongChan Kim / @kozistr