Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apchenstu/sofgan
[TOG 2022] SofGAN: A Portrait Image Generator with Dynamic Styling
https://github.com/apchenstu/sofgan
3drendering faces gan
Last synced: 2 days ago
JSON representation
[TOG 2022] SofGAN: A Portrait Image Generator with Dynamic Styling
- Host: GitHub
- URL: https://github.com/apchenstu/sofgan
- Owner: apchenstu
- License: other
- Created: 2020-07-07T08:08:56.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-10-17T22:12:26.000Z (about 1 year ago)
- Last Synced: 2023-12-14T15:32:30.199Z (11 months ago)
- Topics: 3drendering, faces, gan
- Language: Python
- Homepage:
- Size: 118 MB
- Stars: 752
- Watchers: 23
- Forks: 103
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# SofGAN (TOG 2022)
## [Project page](https://apchenstu.github.io/sofgan/) | [Paper](https://arxiv.org/abs/2007.03780)
This repository contains the official **PyTorch** implementation for the paper: [SofGAN: A Portrait Image Generator with Dynamic Styling](https://arxiv.org/abs/2007.03780).
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.![Teaser](https://github.com/apchenstu/apchenstu.github.io/blob/master/sofgan/img/semantic_level.png)
### Colab Demo
[Here](https://colab.research.google.com/drive/1V03JfVsuOamgncWMXoOOSRsQPzd35x5v?usp=sharing) we provide a **Colab** demo, which basically demonstrated the capbility of **style transfer** and **free-viewpoint protrait**.
## Installation
![version](https://img.shields.io/badge/pytorch-%3E%3D%201.7.1-blue) ![version](https://img.shields.io/badge/Ubuntu-%3E%3D16.04-blue) ![version](https://img.shields.io/badge/torchvision-%3E%3D0.8.2-blue)![version](https://img.shields.io/badge/cudatoolkit-%3D%3D10.2-blue)
Install environment:
```bash
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
```## Training
Please see each subsection for training on different datasets. Available training datasets:* [FFHQ](https://github.com/NVlabs/stylegan)
* [CelebA](https://github.com/switchablenorms/CelebAMask-HQ)
* [Your own data](#your-own-data) (portrait images or segmaps)We also provide our pre-process [ffhq and celeba segmaps](https://1drv.ms/u/s!Ard0t_p4QWIMhhQQz82NRbxRIjZ5?e=uYiBpg) (in our classes labels). You may also want to re-train the [SOF model](https://github.com/walnut-REE/sof/) base on your own multi-view segmaps.
## Run
```bash
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](https://github.com/NVlabs/stylegan) and [CelebA](https://github.com/switchablenorms/CelebAMask-HQ)(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**.
## Rendering
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](https://drive.google.com/file/d/17SW3MurX_78_CfT29DaBZuqnKEjkbzQv/view?usp=sharing) and unzip to the root folder.## UI Illustration
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```![UI](https://github.com/apchenstu/GIFs/blob/main/sofgan.gif)
## IOS App
You could download and try the [Wand](https://apps.apple.com/cn/app/wand/id1574341319), an **IOS** App developed by [Deemos](https://www.deemos.com/).![two-dimensions](https://github.com/apchenstu/GIFs/blob/main/two-dimensions.gif)
## Online Demo
New Folder## Relevant Works
[**StyleFlow: Attribute-conditioned Exploration of StyleGAN-Generated Images using Conditional Continuous Normalizing Flows (TOG 2021)**](https://arxiv.org/abs/2008.02401)
Rameen Abdal, Peihao Zhu, Niloy Mitra, Peter Wonka[**SEAN: Image Synthesis With Semantic Region-Adaptive Normalization (CVPR 2020)**](https://arxiv.org/abs/1911.12861)
Peihao Zhu, Rameen Abdal, Yipeng Qin, Peter Wonka[**StyleRig: Rigging StyleGAN for 3D Control over Portrait Images (CVPR 2020)**](https://gvv.mpi-inf.mpg.de/projects/StyleRig/)
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)**](https://arxiv.org/abs/1912.04958)
Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila[**SPADE: Semantic Image Synthesis with Spatially-Adaptive Normalization (CVPR 2019)**](https://arxiv.org/abs/1903.07291)
Taesung Park, Ming-Yu Liu, Ting-Chun Wang, Jun-Yan Zhu## Citation
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}
}
```