MVPainter is a fully open-source system for 3D texture generation, providing a comprehensive solution including data, models, and evaluation tools.

🔓 Fully Open-Source Texture Generation Pipeline
🧩 Compatible with Mainstream 3D Geometry Generation Methods
🎨 High-Fidelity, Geometry- and Image-Aligned PBR Texture Generation
Installation guides can be found in INSTALL.md.
Prepare the input images and glbs in /data/test/imgs and /data/test/glbs.
Run the following command to infer:
python infer_multiview.py --input_glb_dir ./data/test/glbs --input_img_dir ./data/test/imgs --output_dir ./outputs/test --geo_rotation 0
Mesh generated from TripoSG, use --geo_rotation 0
Mesh generated from Hunyuan-2, use --geo_rotation -90
Mesh generated from TRELLIS,use --geo_rotation -90
Mesh generated from Hi3dGen --geo_rotation -90
Extract PBR attributes from generated mul-view images.
python infer_pbr.py --mv_res_dir ./outputs/test
The extracted PBR maps will be saved in --mv_res_dir directory.
Run the following command to paint 3d model with multi-view generations:
python infer_paint.py --mv_res_dir ./outputs/test/mvpainter --output_dir ./results/test/mvpainter
If use PBR:
python infer_paint.py --mv_res_dir ./outputs/test/mvpainter --output_dir ./results/test/mvpainter --use_pbr
--mv_res_dir is the directory of the generated multi-view images.
python train.py --base=./configs/mvpainter-train-unet.yaml --gpus 0 --num_nodes 32 --logdir=./logs
python train.py --base=./configs/mvpainter-train-controlnet.yaml --gpus 0 --num_nodes 32 --logdir=./logs
Our pbr model is improved based on IDArb. The specific improvements can be found in our technical report. Our training script is similar to IDArb:
accelerate launch --config_file configs/acc/8gpu.yaml train_pbr.py --config configs/train.yaml
Dataprocess guides can be found in here
Our human-aligned evaluation system can be found in here
If you found this repository helpful, please cite our report:
@article{shao2025mvpainter,
title={MVPainter: Accurate and Detailed 3D Texture Generation via Multi-View Diffusion with Geometric Control},
author={Shao, Mingqi and Xiong, Feng and Sun, Zhaoxu and Xu, Mu},
journal={arXiv preprint arXiv:2505.12635},
year={2025},
url={https://arxiv.org/abs/2505.12635}
}
In this project we use parts of the implementations of the following works: - Hunyuan3D-1 - Hunyuan3D-2 - IDArb - MaterialAnything
We thank these work's contributors for open sourcing their research and exploration.
$ claude mcp add MV-Painter \
-- python -m otcore.mcp_server <graph>