高效单图3D网格生成技术,利用稀疏视图大型重建模型
InstantMesh是一个基于LRM/Instant3D架构的前馈框架,能从单张图像高效生成3D网格。它采用稀疏视图大型重建模型,提供多种模型变体,支持白色背景图像生成。项目开源了推理和训练代码、模型权重,并提供Gradio在线演示。InstantMesh在3D内容创作和计算机视觉等领域有广泛应用潜力。
<a href="https://arxiv.org/abs/2404.07191"><img src="https://img.shields.io/badge/ArXiv-2404.07191-brightgreen"></a> <a href="https://huggingface.co/TencentARC/InstantMesh"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20模型卡片-Huggingface-orange"></a> <a href="https://huggingface.co/spaces/TencentARC/InstantMesh"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Gradio%20演示-Huggingface-orange"></a> <br> <a href="https://replicate.com/camenduru/instantmesh"><img src="https://img.shields.io/badge/演示-Replicate-blue"></a> <a href="https://colab.research.google.com/github/camenduru/InstantMesh-jupyter/blob/main/InstantMesh_jupyter.ipynb"><img src="https://yellow-cdn.veclightyear.com/835a84d5/aff49e23-2af1-4cbf-992e-97ed8189e7ee.svg"></a> <a href="https://github.com/jtydhr88/ComfyUI-InstantMesh"><img src="https://img.shields.io/badge/演示-ComfyUI-8A2BE2"></a>
</div>本仓库是InstantMesh的官方实现,这是一个基于LRM/Instant3D架构的前向传播框架,用于从单张图像高效生成3D网格。
https://github.com/TencentARC/InstantMesh/assets/20635237/dab3511e-e7c6-4c0b-bab7-15772045c47d
我们建议使用Python>=3.10
、PyTorch>=2.1.0
和CUDA>=12.1
。
conda create --name instantmesh python=3.10 conda activate instantmesh pip install -U pip # 确保安装了Ninja conda install Ninja # 安装正确版本的CUDA conda install cuda -c nvidia/label/cuda-12.1.0 # 安装PyTorch和xformers # 如果使用不同的PyTorch版本,可能需要安装另一个xformers版本 pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121 pip install xformers==0.0.22.post7 # Linux用户:安装Triton pip install triton # Windows用户:使用这里提供的预构建Triton版本: pip install https://huggingface.co/r4ziel/xformers_pre_built/resolve/main/triton-2.0.0-cp310-cp310-win_amd64.whl # 安装其他依赖项 pip install -r requirements.txt
我们在模型卡片中提供了4种稀疏视图重建模型变体和一个定制的Zero123++ UNet,用于生成白色背景图像。
我们的推理脚本会自动下载模型。或者,您可以手动下载模型并将它们放在ckpts/
目录下。
默认情况下,我们使用instant-mesh-large
重建模型变体。
要在本地机器上启动gradio演示,只需运行:
python app.py
如果您的机器上有多个GPU,演示应用程序将自动在两个GPU上运行以节省内存。您也可以强制它在单个GPU上运行:
CUDA_VISIBLE_DEVICES=0 python app.py