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