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

No packages published

Contributors 2

  •  
  •  

Languages