Implementation of the paper : Toward Multimodal Image-to-Image Translation
Fig 1: Structure of BicycleGAN. (Image taken from the paper)
To install the above dependencies, run:
$ sudo pip install -r requirements.txt
-img2imgGAN/
-nnet
-utils
-data/
-edges2handbags
-edges2shoes
-facades
-maps
Download the datasets from the following links
To generate numpy files for the datasets,
$ python main.py --create <dataset_name>
This creates train.npy
and val.npy
in the corresponding dataset directory. This generates very huge files. As an
alternate, the next step attempts to read images at run-time during training
Alternate to the above step, you could read the images in real time during training. To do this, you should create files containing paths to the images. This can be done by running the following script in the root of this repo.
$ bash setup_dataset.sh
Generating graph:
To visualize the connections between the graph nodes, we can
generate the graph using the flag archi
. This would be useful to assert the connections are correct.
This generates the graph for bicycleGAN
$ python main.py --archi
To generate the model graph for cvae-gan
,
$ python main.py --model cvae-gan --archi
Possible models are:
cvae-gan
, clr-gan
, bicycle
(default)
To visualize the graph on tensorboard
, run the following command:
$ tensorboard --logdir=logs/summary/Run_1 --host=127.0.0.1
Replace Run_1
with the latest directory name
Complete list of options:
$ python main.py --help
Training the network
To train model
(say cvae-gan
) on dataset
(say facades
) from scratch,
$ python main.py --train --model cvae-gan --dataset facades
The above command by default trains the model in which images from distribution of domain B
are generated
conditioned on the images from the distribution of domain A
. To switch the direction,
$ python main.py --train --model cvae-gan --dataset facades --direction b2a
To resume the training from a checkpoint,
$ python main.py --resume <path_to_checkpoint> --model cvae-gan
Testing the network
ckpt
directoryTo test the model from the given trained models, by default the model generates 5 different images (by sampling 5 different noise samples)
$ ./test.sh <dataset_name> <test_image_path>
To generate multiple output samples,
$ ./test.sh <dataset_name> <test_image_path> < # of samples>
Try it with some of the test samples present in the directory imgs/test
Loss of discriminator and generator as function of iterations on edges2shoes
dataset.
cVAE-GAN
and cLR-GAN
Released under the MIT license