DRIT-Tensorflow

Simple Tensorflow implementation of Diverse Image-to-Image Translation via Disentangled Representations (ECCV 2018 Oral).

DRIT-Tensorflow

Requirements

  • Tensorflow 1.8
  • python 3.6

Usage

Download Dataset

├── dataset
   └── YOUR_DATASET_NAME
       ├── trainA
           ├── xxx.jpg (name, format doesn't matter)
           ├── yyy.png
           └── ...
       ├── trainB
           ├── zzz.jpg
           ├── www.png
           └── ...
       ├── testA
           ├── aaa.jpg 
           ├── bbb.png
           └── ...
       └── testB
           ├── ccc.jpg 
           ├── ddd.png
           └── ...
           
├── guide.jpg (example for guided image translation task)

Train

python main.py --phase train --dataset summer2winter --concat True

Test

python main.py --phase test --dataset summer2winter --concat True --num_attribute 3

Guide

python main.py --phase guide --dataset summer2winter --concat True --direction a2b --guide_img ./guide.jpg

Tips

  • --concat

    • True : for the shape preserving translation (summer <-> winter) (default)
    • False : for the shape variation translation (cat <-> dog)
  • --n_scale

    • Recommend n_scale = 3 (default)
    • Using the n_scale > 1, a.k.a. multiscale discriminator often gets better results
  • --n_dis

    • If you use the multi-discriminator, then recommend n_dis = 4 (default)
    • If you don't the use multi-discriminator, then recommend n_dis = 6
  • --n_d_con

    • Author use n_d_con = 3 (default)
    • Model can still generate diverse results with n_d_con = 1
  • --num_attribute (only for the test phase)

    • If you use the num_attribute > 1, then output images are variously generated

Summary

Comparison

comparison

Architecture

true

false

Train phase

train_1

train_2

Test & Guide phase

test

Results

result1

result2

GitHub