Paper: UVFaceFusion: Fast Multi-view Topologically Consistent Face Reconstruction in the Wild via UV-space Neural Fusion (SIGGRAPH Asia 2026 Journal Track)
UVFaceFusion is a system for reconstructing a topologically consistent 3D facial mesh from multi-view face images captured in the wild in less than 3 seconds.
UVFaceFusion can also be called VGGTFace2, because it is the sequel to VGGTFace.
- Clean up and reorganize the current codebase. The existing implementation is relatively messy and needs better structure, documentation, and maintainability.
- Release the detailed inference code. The current implementation only supports mesh reconstruction at the base resolution.
- Release the training code.
Try UVFaceFusion in your browser (upload 16 images → reconstruct a mesh in one click)!
Note: The current web demo supports exactly 16 images per reconstruction. We will optimize this soon.
⭐ If you find UVFaceFusion useful, please consider giving this repository a star!
First, install Pixel3DMM following the instructions in their official repository: https://github.com/SimonGiebenhain/pixel3dmm.
We rely on its pretrained UV predictor weights, but we do not require FLAME-related assets.
Therefore, when running install_preprocessing_pipeline.sh, you only need to download the UV predictor weights.
Running download_flame2023.sh is not necessary for UVFaceFusion.
Please download the pretrained weights from the official VGGT repository:
https://github.com/facebookresearch/vggt
After downloading, rename the checkpoint to vggt_weights.pt and place it under:
./pretrained_weights/vggt_weights.pt
Note: Please follow VGGT’s official instructions and license terms when downloading and using the weights.
To preprocess multi-view images, run:
python preprocess.py --image_folder {image_folder} --output_folder {output_folder}
During preprocessing, we use Pixel3DMM’s UV predictor to estimate a UV map for each image, and use facer to estimate the mask for each image.
Example:
python preprocess.py --image_folder ./examples/example1 --output_folder ./preprocessed_data/example1
Note:
- You may need to install pyfacer—just follow the instructions in their official repository: https://github.com/FacePerceiver/facer.
After preprocessing, run the reconstruction script:
python infer.py --BASE_PATHS {preprocessed_dir}
Example:
python infer.py --BASE_PATHS ./preprocessed_data/example1
Once finished, you will find result.ply under the corresponding directory, which is the reconstructed mesh.
You can also reconstruct multiple multi-view sets sequentially in a single run (so VGGT weights and fusion net weights are loaded only once). Provide multiple directories separated by commas:
python infer.py --BASE_PATHS ./preprocessed_data/example1,./preprocessed_data/example2
- Title: UVFaceFusion: Fast Multi-view Topologically Consistent Face Reconstruction in the Wild via UV-space Neural Fusion
- PDF / arXiv: https://arxiv.org/abs/2607.18798
If you use this work, please consider citing our paper.
Authors: Xin Ming, Yuxuan Han, Junhai Yong, Feng Xu
Affiliation: BNRist and School of Software, Tsinghua University
UVFaceFusion uses the GPL v3 license (see LICENSE).
(Note: VGGTFace uses the MIT license.)
It depends on third-party projects (e.g., Pixel3DMM and VGGT) that are distributed under their own licenses. Please make sure you comply with the corresponding upstream terms when using their code/models.
Questions, feedback, or collaboration ideas are welcome!
- Email: 1729406968@qq.com
- GitHub Issues: please open an issue on this repository.