SkillAgentSearch skills...

Fancy123

[CVPR2025]Fancy123: One Image to High-Quality 3D Mesh Generation via Plug-and-Play Deformation

Install / Use

/learn @YuQiao0303/Fancy123
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Fancy123

Paper arXiv

This is the official repository for the CVPR2025 paper: ''Fancy123: One Image to High-Quality 3D Mesh Generation via Plug-and-Play Deformation'' by Qiao Yu, Xianzhi Li, Yuan Tang, Xu Han, Long Hu, Yixue Hao, and Min Chen.

Fancy123 generates a high-quality textured 3D mesh given a single RGB image:

https://github.com/user-attachments/assets/470f1244-197a-472a-98d6-599775638ac7

Fancy123's core idea is to utilize 2D image deformation to address the multiview inconsistency issue, and 3D mesh deformation to address the low fidelity issue:

method

https://github.com/user-attachments/assets/6700ac0d-7331-4097-8cf3-3a3e7ede6b70

🎉 News

  • 2025.07.21: Code Released! 🌟
  • 2025.02.27: Fancy123 is accepted by CVPR2025!🎊 We currently plan to release code in July 2025.

🛠️Install & Model Download

Please refer to scripts/install.md.

✅Training

Fancy123 works during inference and is training-free!

🎬Inference

First, put your images under `examples', then run InstantMesh to get an initial mesh:

python run_init.py

You'll see generated multiview images in outputs/instant-mesh-large/images and initial meshes in outputs/instant-mesh-large/meshes.

Then, run Fancy123's enhancement steps:

python main_fancy123_refine.py

You'll see results in outputs/instant-mesh-large/fancy123_meshes. You can use tools like MeshLab or Blender to visualize the final result named `final_mesh.obj'.

Tips for better results

  1. Check unproject_wo_2D_deform.obj: if its geometry seems bad, try setting geo_refine=False in main_fancy123_refine.py L105.
  2. if 2D_deform_deformed.obj seems ok but 3D_deformed_mesh.obj looks smaller or shrunk, you can try setting lap_weight smaller or even to 0 in configs/instantmesh.yaml. We found that a larger laplacian weight makes the mesh shrink.
  3. if 2D_deform_deformed.obj seems ok but 3D_deformed_mesh.obj looks bad, it may be that no suitable camera parameters are found. If your input image is almost 0-elevation, you can try setting input_all_0_elevation to True in configs/instantmesh.yaml. In this way we don't try to find the best camera parameters but use the default settings.
  4. If something seems wrong with the texture projecting, try use_vertex_wise_NBF: False in configs/instantmesh.yaml. If you still cannot get a good result, try other random seeds, or leave an issue so that I can see if there's anything that I can help.

🤝Acknowledgement

We have intensively borrowed code from the following repositories. Many thanks to the authors for sharing their code.

📝Citation

If you find Fancy123 helpful, please cite our paper:

@InProceedings{Yu_2025_CVPR,
    author    = {Yu, Qiao and Li, Xianzhi and Tang, Yuan and Han, Xu and Hu, Long and Hao, Yixue and Chen, Min},
    title     = {Fancy123: One Image to High-Quality 3D Mesh Generation via Plug-and-Play Deformation},
    booktitle = {Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR)},
    month     = {June},
    year      = {2025},
    pages     = {595-604}
}
View on GitHub
GitHub Stars65
CategoryDevelopment
Updated1mo ago
Forks2

Languages

Python

Security Score

80/100

Audited on Mar 5, 2026

No findings