Tensorflow implementation of GANs (Generative Adversarial Networks)
Maybe some of the codes wouldn't work on master branch, because i'm just working on the branch.
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' :).
Now on refactoring... All GAN training script can be run module-wisely like below. (WIP)
You can also use conda, virtualenv environments.
$ python3 -m pip install -r requirements.txt
Before running the model, make sure that
- downloading the dataset like CelebA, MNIST, etc what you want
- In
awesome_gans/config.py
, there are several configurations, customize with your flavor! - running the model like below
$ python3 -m awesome_gans.acgan
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!)
│
├── 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
Here's a google drive link. You can download pre-trained models from here
Here's the list-up for tons of GAN papers. all papers are sorted by alphabetic order.
Here's the beginning of the GAN.
Name | Summary | Paper | Code |
---|---|---|---|
GAN | Generative Adversarial Networks | [arXiv] | [code] |
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] | |
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] |
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] |
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]])(https://github.com/mit-han-lab/anycost-gan) |
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] | [ |
|
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] |
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] |
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] | [ |
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] | [ |
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 |
Any suggestions and PRs and issues are WELCOME :)
HyeongChan Kim / @kozistr