This repository contains the official PyTorch implementation for the paper: SofGAN: A Portrait Image Generator with Dynamic Styling.
We propose a SofGAN image generator to decouple the latent space of portraits into two subspaces: a geometry space and a texture space.
Experiments on SofGAN show that our system can generate high quality portrait images with independently controllable geometry and texture attributes.
Here we provide a Colab demo, which basically demonstrated the capbility of style transfer and free-viewpoint protrait.
Install environment:
git clone https://github.com/apchenstu/sofgan.git --recursive
conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=10.2 -c pytorch
pip install tqdm argparse scikit-image lmdb config-argparse dlib
Please see each subsection for training on different datasets. Available training datasets:
- FFHQ
- CelebA
- Your own data (portrait images or segmaps)
We also provide our pre-process ffhq and celeba segmaps (in our classes labels). You may also want to re-train the SOF model base on your own multi-view segmaps.
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 --master_port=9999 train.py \
--num_worker 4 --resolution 1024
--name $exp_name
--iter 10000000
--batch 1 --mixing 0.9 \
path/to/your/image/folders \
--condition_path path/to/your/segmap/folders
In our experiments, 4x Nividia 2080Ti GPU would take around 20
days to reach 10000k
iterations. Adjusting the image resolution and max iterations to suit your own dataset. Emperically, for datasets like FFHQ and CelebA(resolution 1024x1024
) the network would converge after 1000k
iterations and achieve fancy results.
Notice: training on none pair-wise data (image/segmap) is encouraged. Since it's one of the key features of our SofGAN.
We provide a rendering script in renderer.ipynb
, where you can restyle your own photos, videos and generate free-viewpoint portrait images while maintaining the geometry consistency.
Just to download our checkpoints and unzip to the root folder.
The Painter is included in Painter
, you can pull down and drawing on-the-fly.
Before that, you need to install the enviroment with pip install -r ./Painter/requirements.txt
You could download and try the Wand, an IOS App developed by Deemos.
New Folder
StyleFlow: Attribute-conditioned Exploration of StyleGAN-Generated Images using Conditional Continuous Normalizing Flows (TOG 2021)
Rameen Abdal, Peihao Zhu, Niloy Mitra, Peter Wonka
SEAN: Image Synthesis With Semantic Region-Adaptive Normalization (CVPR 2020)
Peihao Zhu, Rameen Abdal, Yipeng Qin, Peter Wonka
StyleRig: Rigging StyleGAN for 3D Control over Portrait Images (CVPR 2020)
A. Tewari, M. Elgharib, G. Bharaj, F. Bernard, H.P. Seidel, P. Pérez, M. Zollhöfer, Ch. Theobalt
StyleGAN2: Analyzing and Improving the Image Quality of {StyleGAN} (CVPR 2020)
Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila
SPADE: Semantic Image Synthesis with Spatially-Adaptive Normalization (CVPR 2019)
Taesung Park, Ming-Yu Liu, Ting-Chun Wang, Jun-Yan Zhu
If you find our code or paper helps, please cite:
@article{sofgan,
title={Sofgan: A portrait image generator with dynamic styling},
author={Chen, Anpei and Liu, Ruiyang and Xie, Ling and Chen, Zhang and Su, Hao and Yu, Jingyi},
journal={ACM Transactions on Graphics (TOG)},
volume={41},
number={1},
pages={1--26},
year={2022},
publisher={ACM New York, NY}
}