Skip to content

amap-cvlab/MV-Painter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MVPainter

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

Pipeline

  • Release gradio demo.
  • Release technical report.
  • Release training code.
  • Release data processing code.

✨Key Features

  • 🔓 Fully Open-Source Texture Generation Pipeline

  • 🧩 Compatible with Mainstream 3D Geometry Generation Methods

  • 🎨 High-Fidelity, Geometry- and Image-Aligned PBR Texture Generation

🔥 News

  • [2025-04-30] We have released our technical report!
  • [2025-04-30] We have released model weights, data processing, trainning, inference scripts.

Installation guides can be found in INSTALL.md.

💡Infererence

Generate multi-view images

  1. Prepare the input images and glbs in /data/test/imgs and /data/test/glbs.

  2. 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 (Optional)

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.

Painting

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.

🏋️Training

Multi-View Generation Model

Train UNet

python train.py --base=./configs/mvpainter-train-unet.yaml --gpus 0 --num_nodes 32 --logdir=./logs

Train controlnet

python train.py --base=./configs/mvpainter-train-controlnet.yaml --gpus 0 --num_nodes 32 --logdir=./logs

PBR Model

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

Citation

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}
}

⭐️Acknowledgment

In this project we use parts of the implementations of the following works:

We thank these work's contributors for open sourcing their research and exploration.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages