🍀 Install
June 24, 2025 · View on GitHub
SOAP: Style-Omniscient Animatable Portraits
Tingting Liao · Yujian Zheng · Adilbek Karmanov · Liwen Hu · Leyang Jin · Yuliang Xiu · Hao Li
Siggraph 2025 (Conference Track)
🔥 News
2025/04/30🌟 Code and Webpage are released.2025/04/29🚀 SOAP is accpted by Siggraph2025.
🍀 Install
1. Install environment
sudo apt-get install libegl1-mesa-dev
sudo apt-get install mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev
sudo apt-get install mesa-utils
git clone --single-branch --branch main https://github.com/TingtingLiao/soap.git
cd soap
conda create -n soap python=3.10 -y
conda activate soap
# For cuda-12.1
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121
# For cuda-11.8
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
2. Download Extra Data
bash download.sh
🍉 Usage
1. Processing
The pre-processing step will generate the multive images and normals, initial FLAME model, detect facial landmarks and face parsing. Please login huggingface huggingface-cli login before running:
python process.py image=assets/examples/00.png
2. Reconstruction
python main.py image=assets/examples/00.png
The generated results will be saved under ./output/examples/00/6-views/.
These results are rendered by nvidiffrast. We recommend you to use blender3.6 for realistic rendering.
3. Blender Rendering
git clone https://github.com/TingtingLiao/soap_blender.git
cd soap_blender
bash install_blender.sh
# render
python render.py \
--data_dir ../output/examples \
--subject 00 \
--exp newest \
--driven 0000
🍋 GUI
We provide gui.py for visualization and interation with the editing the face shape.
python gui.py -i output/examples/00
https://github.com/user-attachments/assets/20ed6d19-c6d5-4ee1-a355-527b00a5bc82
🤗 Acknowledgments
We thank the following projects for their contributions to the development of SOAP:
- Unique3D for multi-view diffusion initialization.
- FaceParsing for hair and eyes segmentation.
- face-alignment and MediaPipe for landmark detection and cropping.
- EMOCA and Deep3DFaceRecon for parametric model estimation.
- Continuous Remeshing for mesh processing.
- FLAME for parametric head model initialization.
Contributors
📖 Citation
@article{liao2025soap,
title={SOAP: Style-Omniscient Animatable Portraits },
author={Liao, Tingting and Zheng, Yujian and Karmanov, Adilbek and Hu, Liwen and Jin, Leyang and Xiu, Yuliang and Hao Li},
year={2025},
eprint={2505.05022},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2505.05022},
}