Awesome-GANs with Tensorflow
Tensorflow implementation of GANs (Generative Adversarial Networks)
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)
- MNIST /
Fashion MNIST - CIFAR10 / 100
- CelebA/CelebA-HQ
- Pix2Pix
- DIV2K
- (more DataSets will be added soon!)
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] | [ |
|
| bCR | Improved Consistency Regularization for GANs | [arXiv] | [ |
|
| 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] | [ |
|
| CGAN | Conditional Generative Adversarial Networks | [arXiv] | [code] | |
| CoGAN | Coupled Generative Adversarial Networks | [arXiv] | [code] | |
| ConSinGAN | Improved Techniques for Training Single-Image GANs | [WACV21] | [ |
[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] | [ |
[official] |
| f-GAN | Training Generative Neural Samplers using Variational Divergence Minimization | [arXiv] | [code] | |
| GP-GAN | Towards Realistic High-Resolution Image Blending | [arXiv] | [ |
|
| Softmax GAN | Generative Adversarial Networks with Softmax | [arXiv] | [code] | |
| GAP | Generative Adversarial Parallelization | [arXiv] | [ |
|
| GEGAN | Generalization and Equilibrium in Generative Adversarial Networks | [arXiv] | [ |
|
| G-GAN | Geometric GAN | [arXiv] | [ |
|
| 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] | [ |
|
| PGGAN | Progressive Growing of GANs for Improved Quality, Stability, and Variation | [arXiv] | [ |
[official] |
| RaGAN | The relativistic discriminator: a key element missing from standard GAN | [arXiv] | [ |
|
| SeAtGAN | Self-Attention Generative Adversarial Networks | [arXiv] | [code] | |
| SphereGAN | Sphere Generative Adversarial Network Based on Geometric Moment Matching | [CVPR2019] | [ |
|
| SGAN | Stacked Generative Adversarial Networks | [arXiv] | [ |
|
| SGAN++ | Realistic Image Synthesis with Stacked Generative Adversarial Networks | [arXiv] | [ |
|
| SinGAN | Learning a Generative Model from a Single Natural Image | [arXiv] | [ |
[official] |
| StableGAN | Stabilizing Adversarial Nets With Prediction Methods | [arXiv] | [ |
|
| StyleCLIP | Text-Driven Manipulation of StyleGAN Imagery | [arXiv] | [ |
[official] |
| StyleGAN | A Style-Based Generator Architecture for Generative Adversarial Networks | [arXiv] | [ |
[official] |
| StyleGAN2 | Analyzing and Improving the Image Quality of StyleGAN | [arXiv] | [ |
[official] |
| StyleGAN2 ADA | StyleGAN2 with adaptive discriminator augmentation | [arXiv] | [ |
[official] |
| StyleGAN3 | Alias-Free Generative Adversarial Networks | [arXiv] | [ |
[official] |
| StyleGAN-XL | Scaling StyleGAN to Large Diverse Datasets | [arXiv] | [ |
[official] |
| TripleGAN | Triple Generative Adversarial Networks | [arXiv] | [ |
|
| UGAN | Unrolled Generative Adversarial Networks | [arXiv] | [ |
|
| U-Net GAN | A U-Net Based Discriminator for Generative Adversarial Networks | [CVPR20] | [ |
[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] | [ |
|
| AnycostGAN | Anycost GANs for Interactive Image Synthesis and Editing | [arXiv] | [ |
[official] |
| CycleGAN | Unpaired img2img translation using Cycle-consistent Adversarial Networks | [arXiv] | [code] | |
| DAGAN | Instance-level Image Translation by Deep Attention Generative Adversarial Networks | [arXiv] | [ |
|
| DeblurGAN | Blind Motion Deblurring Using Conditional Adversarial Networks | [arXiv] | [ |
|
| DualGAN | Unsupervised Dual Learning for Image-to-Image Translation | [arXiv] | [ |
|
| DRIT/++ | Diverse Image-to-Image Translation via Disentangled Representations | [arXiv] | [ |
[official] |
| EdgeConnect | Generative Image Inpainting with Adversarial Edge Learning | [arXiv] | [ |
[official] |
| ESRGAN | Enhanced Super-Resolution Generative Adversarial Networks | [arXiv] | [ |
|
| FastGAN | Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis | [arXiv] | [ |
[official] |
| FUNIT | Few-Shot Unsupervised Image-to-Image Translation | [arXiv] | [ |
[official] |
| CA & GA | Generative Image Inpainting w/ Contextual Attention & Gated Convolution | [CVPR2018], [ICCV2019] | [ |
[official] |
| HiFaceGAN | Face Renovation via Collaborative Suppression and Replenishment | [arXiv] | [ |
|
| MUNIT | Multimodal Unsupervised Image-to-Image Translation | [arXiv] | [ |
[official] |
| NICE-GAN | Reusing Discriminators for Encoding | [arXiv] | [ |
[official] |
| PSGAN | Pose and Expression Robust Spatial-Aware GAN for Customizable Makeup Transfer | [arXiv] | [ |
[official] |
| SpAtGAN | Generative Adversarial Network with Spatial Attention for Face Attribute Editing | [ECCV2018] | [ |
|
| SalGAN | Visual Saliency Prediction Generative Adversarial Networks | [arXiv] | [ |
|
| SRFlow | Super-Resolution using Normalizing Flow | [arXiv] | [ |
[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] | [ |
[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] | [ |
[official] |
| StyleGAN-V | A Continuous Video Generator with the Price, Image Quality and Perks of StyleGAN2 | [arXiv] | [ |
[official] |
| TecoGAN | Learning Temporal Coherence via Self-Supervision for GAN-based Video Generation | [arXiv] | [ |
[official] |
| TextureGAN | Controlling Deep Image Synthesis with Texture Patches | [arXiv] | [ |
|
| TUNIT | Rethinking the Truly Unsupervised Image-to-Image Translation | [arXiv] | [ |
[official] |
| TwinGAN | Cross-Domain Translation fo Human Portraits | [github] | [ |
|
| UNIT | Unsupervised Image-to-Image Translation Networks | [arXiv] | [ |
[official] |
| XGAN | Unsupervised Image-to-Image Translation for Many-to-Many Mappings | [arXiv] | [ |
|
| Zero-DCE | Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement | [CVPR20] | [ |
[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] | [ |
|
| BeatGAN | Generating Drum Loops via GANs | [arXiv] | [ |
|
| GANSynth | Adversarial Neural Audio Synthesis | [arXiv] | [ |
|
| MuseGAN | Multi-track Sequential GANs for Symbolic Music Generation and Accompaniment | [arXiv] | [ |
|
| SEGAN | Speech Enhancement Generative Adversarial Network | [arXiv] | [ |
|
| StarGAN-VC | Non-parallel many-to-many voice conversion with star generative adversarial networks | [arXiv] | [ |
|
| TempoGAN | A Temporally Coherent, Volumetric GAN for Super-resolution Fluid Flow | [arXiv] | [ |
|
| Parallel WaveGAN | A fast waveform generation model based on GAN with multi-resolution spectrogram | [arXiv] | [ |
|
| WaveGAN | Synthesizing Audio with Generative Adversarial Networks | [arXiv] | [ |
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] | [ |
|
| CipherGAN | Unsupervised Cipher Cracking Using Discrete GANs | [github] | [ |
|
| DiscoGAN | Discover Cross-Domain Generative Adversarial Networks | [arXiv] | [ |
|
| eCommerceGAN | A Generative Adversarial Network for E-commerce | [arXiv] | [ |
|
| PassGAN | A Deep Learning Approach for Password Guessing | [arXiv] | [ |
|
| SeqGAN | Sequence Generative Adversarial Networks with Policy Gradient | [arXiv] | [ |
|
| TAC-GAN | Text Conditioned Auxiliary Classifier Generative Adversarial Network | [arXiv] | [ |
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