Skip to content
AttGAN Tensorflow, AttGAN: Facial Attribute Editing by Only Changing What You Want
Python
Branch: master
Clone or download
Latest commit eb9df2b Jul 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
imlib attgan init May 6, 2018
pics add 384 hd results Jun 18, 2018
pylib attgan init May 6, 2018
tflib attgan init May 6, 2018
.gitignore attgan init May 6, 2018
LICENSE attgan init May 6, 2018
README.md README.md: update Jul 22, 2019
data.py (thanks to @CastellanLiu) fix the incorrect attribute conflict check … Dec 19, 2018
examples.md add hd-celeba option Jun 5, 2018
models.py add lsgan-gp dcgan-gp options Jun 14, 2018
results.md add 384 hd results Jun 18, 2018
test.py add hd-celeba option Jun 5, 2018
test_multi.py add hd-celeba option Jun 5, 2018
test_slide.py add hd-celeba option Jun 5, 2018
train.py add lsgan-gp dcgan-gp options Jun 14, 2018

README.md

         

AttGAN

Tensorflow implementation of AttGAN - AttGAN: Facial Attribute Editing by Only Changing What You Want

Related

Exemplar Results

  • See results.md for more results, we try higher resolution and more attributes (all 40 attributes!!!) here

  • Inverting 13 attributes respectively

    from left to right: Input, Reconstruction, Bald, Bangs, Black_Hair, Blond_Hair, Brown_Hair, Bushy_Eyebrows, Eyeglasses, Male, Mouth_Slightly_Open, Mustache, No_Beard, Pale_Skin, Young

  • Comparisons with VAE/GAN and IcGAN on inverting single attribute

  • Comparisons with VAE/GAN and IcGAN on simultaneously inverting multiple attributes

Usage

  • Prerequisites

    • Tensorflow 1.7 or 1.8
    • Python 2.7 or 3.6
  • Dataset

  • Well-trained models: download the models you need and unzip the files to ./output/ as below,

    output
    ├── 128_shortcut1_inject1_none
    └── 384_shortcut1_inject1_none_hd
    
  • Examples of training

    • see examples.md for more examples

    • training

      • for 128x128 images

        CUDA_VISIBLE_DEVICES=0 \
        python train.py \
        --img_size 128 \
        --shortcut_layers 1 \
        --inject_layers 1 \
        --experiment_name 128_shortcut1_inject1_none
      • for 384x384 images

        CUDA_VISIBLE_DEVICES=0 \
        python train.py \
        --img_size 384 \
        --enc_dim 48 \
        --dec_dim 48 \
        --dis_dim 48 \
        --dis_fc_dim 512 \
        --shortcut_layers 1 \
        --inject_layers 1 \
        --n_sample 24 \
        --experiment_name 384_shortcut1_inject1_none
      • for 384x384 HD images (need HD-Celeba)

        CUDA_VISIBLE_DEVICES=0 \
        python train.py \
        --img_size 384 \
        --enc_dim 48 \
        --dec_dim 48 \
        --dis_dim 48 \
        --dis_fc_dim 512 \
        --shortcut_layers 1 \
        --inject_layers 1 \
        --n_sample 24 \
        --use_cropped_img \
        --experiment_name 384_shortcut1_inject1_none_hd
    • tensorboard for loss visualization

      CUDA_VISIBLE_DEVICES='' \
      tensorboard \
      --logdir ./output/128_shortcut1_inject1_none/summaries \
      --port 6006
  • Example of testing single attribute

    CUDA_VISIBLE_DEVICES=0 \
    python test.py \
    --experiment_name 128_shortcut1_inject1_none \
    --test_int 1.0
  • Example of testing multiple attributes

    CUDA_VISIBLE_DEVICES=0 \
    python test_multi.py \
    --experiment_name 128_shortcut1_inject1_none \
    --test_atts Pale_Skin Male \
    --test_ints 0.5 0.5
  • Example of attribute intensity control

    CUDA_VISIBLE_DEVICES=0 \
    python test_slide.py \
    --experiment_name 128_shortcut1_inject1_none \
    --test_att Male \
    --test_int_min -1.0 \
    --test_int_max 1.0 \
    --n_slide 10

Citation

If you find AttGAN useful in your research work, please consider citing:

@article{he2017attgan,
  title={Attgan: Facial Attribute Editing by Only Changing What You Want},
  author={He, Zhenliang and Zuo, Wangmeng and Kan, Meina and Shan, Shiguang and Chen, Xilin},
  journal={arXiv preprint arXiv:1711.10678},
  year={2017}
}
You can’t perform that action at this time.