AdvStyle - Official PyTorch Implementation
September 12, 2021 ยท View on GitHub
Discovering Interpretable Latent Space Directions of GANs Beyond Binary Attributes.
Huiting Yang, Liangyu Chai, Qiang Wen, Shuang Zhao, Zixun Sun, Shengfeng He
In CVPR 2021
Prerequisites
- Linux
- Python 3
- NVIDIA GPU + CUDA CuDNN
Setup
- Clone this repo:
git clone https://github.com/BERYLSHEEP/AdvStyle.git
- Download resources:
- Please download the pretrained FFHQ StyleGAN and anime StyleGAN weights
- Move the weights to
models/pretrain/pytorch
Testing Demo
The following commands are examples of testing the learned direction:
# stylegan ffhq
python new_demo.py manipulate_test supermodel \
--gan_model stylegan_ffhq --resolution 1024 --latent_type z
# stylegan anime
python new_demo.py manipulate_test maruko \
--gan_model stylegan_anime --resolution 512 --latent_type z
if you want to manipulate multi attributes simultaneously, you can list all the attributes on the command as follow:
# multi attribute manipulation
python new_demo.py manipulate_test blonde,open_mouth \
--gan_model stylegan_anime --resolution 512 --latent_type z
If you want to specific the manipulated latent code, you can set the --noise_path option:
# specific latent code
python new_demo.py manipulate_test maruko \
--gan_model stylegan_anime --resolution 512 --latent_type z \
--noise_path ./noise/maruko/2.npy
Results are saved to result/{attribute}
The attribute names are the file names in the boundaries directory.
Interactive Demo
-
Prerequisites: Flask
pip install flask pip install --upgrade flask_nav pip install --upgrade flask_bootstrap -
Running
# only for stylegan_anime # the input latent code is belong to latent space z [1, 512] python app.py --latent_code noise/maruko/16.npy --composing_type z # the input latent code is belong to latent space w+ [1, 16, 512] python app.py --latent_code noise/38_w+.npy --composint_type w+ -
Instructions
- Only one attribute can be edited at once time.
- Multi attributes edit examples:
- Click the corresponding
EditButton for "Pink Hair", then move the corresponding toolbar to the desired step. - Click the corresponding
EditButton for "Open Mouth", then move the corresponding toolbar to the desired step. - ....
- Click the corresponding
Related Project
- The pretrained StyleGAN weights are from official StyleGAN and Gwern
- Using the pytorch implementation of StyleGAN from [InterFaceGAN](Pytorch implementation of official model)
Citation
If you use this code for your research, please cite our paper:
@InProceedings{Yang_2021_CVPR,
author = {Yang, Huiting and Chai, Liangyu and Wen, Qiang and Zhao, Shuang and Sun, Zixun and He, Shengfeng},
title = {Discovering Interpretable Latent Space Directions of GANs Beyond Binary Attributes},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2021},
pages = {12177-12185}
}