综合介绍
MIDI-3D 是 VAST-AI-Research 团队开发的一个开源项目,它能从一张图片快速生成包含多个物体的3D场景,适合开发者、研究人员和创作者使用。这个工具基于多实例扩散模型技术,结合人工智能和3D建模,能同时生成多个高质量3D物体,并保持它们的空间关系。MIDI-3D 在 2025 年 CVPR 大会上发布,代码、模型权重和在线演示都已开放。它支持真实和卡通风格的图片输入,生成时间短至40秒,输出文件为 .glb
格式,可在其他软件中编辑。项目旨在简化3D场景创作,让更多人能轻松制作数字资产。
功能列表
- 从单张图片生成包含多个物体的3D场景,支持真实和卡通风格。
- 提供图像分割功能,自动识别并标注图片中的物体。
- 同时生成多个可分离的3D实例,自动组合成完整场景。
- 支持命令行操作和交互式网页演示两种方式。
- 自动下载预训练模型权重到本地,方便快速启动。
- 输出
.glb
格式的3D模型文件,可用于后续编辑或导入其他软件。 - 生成过程高效,无需逐个物体建模或长时间优化。
使用帮助
MIDI-3D 的使用分为安装和操作两部分。以下是详细步骤,帮助你从零开始上手。
安装流程
- 准备硬件和软件环境
你需要一台支持 CUDA 的电脑,因为 MIDI-3D 依赖 GPU 加速。推荐使用 NVIDIA GPU,显存至少 6GB。确保安装 Python 3.10 或更高版本。 - 创建虚拟环境(可选)
为避免冲突,可以创建一个新的 Conda 环境:
conda create -n midi python=3.10
conda activate midi
- 安装 PyTorch
根据你的 GPU 的 CUDA 版本安装 PyTorch。比如,用 CUDA 11.8 的命令是:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
如果版本不同,请访问 https://pytorch.org/get-started/locally/ 选择对应命令。
- 下载项目代码
在终端运行以下命令,克隆 MIDI-3D 仓库:
git clone https://github.com/VAST-AI-Research/MIDI-3D.git
cd MIDI-3D
- 安装依赖
项目提供requirements.txt
文件,运行以下命令安装所有依赖:
pip install -r requirements.txt
- 获取模型权重
运行脚本时,MIDI-3D 会自动从 https://huggingface.co/VAST-AI/MIDI-3D 下载预训练模型,保存到pretrained_weights/MIDI-3D
文件夹。如果网络不稳定,也可以手动下载并解压到该路径。
操作流程
MIDI-3D 支持两种使用方式:命令行和交互式演示。以下是具体步骤。
命令行操作
- 生成分割图
MIDI-3D 需要一张图片和对应的分割图(标注物体区域)。可以用自带的 Grounded SAM 脚本生成分割图。比如,你有一张图片04_rgb.png
,运行:
python -m scripts.grounding_sam --image assets/example_data/Cartoon-Style/04_rgb.png --labels "lamp sofa table dog" --output ./segmentation.png
--image
指定输入图片路径。--labels
输入图片中物体的名称,用空格分隔。--output
指定分割图保存路径。
运行后,会生成一个segmentation.png
文件。
- 生成3D场景
用图片和分割图生成3D场景,运行以下命令:
python -m scripts.inference_midi --rgb assets/example_data/Cartoon-Style/00_rgb.png --seg assets/example_data/Cartoon-Style/00_seg.png --output-dir "./output"
--rgb
是原图路径。--seg
是分割图路径。--output-dir
是输出文件夹路径。
生成的3D场景会保存为output.glb
文件,通常需要40秒到1分钟。如果物体靠近图片边缘,建议加参数--do-image-padding
,如:
python -m scripts.inference_midi --rgb 00_rgb.png --seg 00_seg.png --output-dir "./output" --do-image-padding
交互式演示
- 启动演示
运行以下命令启动 Gradio 界面:
python gradio_demo.py
系统会自动打开浏览器,显示操作页面。你也可以访问在线演示:https://huggingface.co/spaces/VAST-AI/MIDI-3D。
- 上传图片并分割
在界面点击“Input Image”上传图片。然后用鼠标框选物体区域,系统会自动生成分割图,显示在“Segmentation Result”中。 - 生成3D场景
点击“Run Segmentation”确认分割图后,调整参数(如随机种子),再点击生成按钮。几秒后,界面会显示3D模型,点击下载得到.glb
文件。
功能操作详解
- 图像分割
Grounded SAM 是 MIDI-3D 的预处理工具,能自动识别图片中的物体并生成分割图。你可以输入物体名称(如“lamp sofa”),也可以在交互界面手动框选。它支持多物体场景,分割精度高。 - 多物体3D生成
MIDI-3D 使用多实例扩散模型,能同时生成多个3D物体,并保持它们的空间关系。比如,一张客厅图片可以生成沙发、桌子和灯的3D模型,直接组成完整场景。它比传统逐个物体生成的方法更快。 - 模型输出
生成的.glb
文件兼容 Blender、Unity 等软件。你可以导入文件,调整材质、灯光或添加动画,满足不同需求。
补充资源
- 教学视频
官方提供了一个操作视频(https://github.com/VAST-AI-Research/MIDI-3D 中查看),详细演示了从上传图片到生成3D场景的流程。 - 论文参考
想了解技术细节,可以阅读论文:https://arxiv.org/abs/2412.03558。
常见问题解决
- 如果生成失败,检查 GPU 是否支持,或者确认分割图是否正确。
- 如果物体细节缺失,尝试用更高分辨率的图片。
应用场景
- 游戏开发
开发者可以用 MIDI-3D 从草图生成3D场景。比如,一张森林图片可以快速变成树木和地形的3D模型,导入 Unity 使用。 - 学术研究
研究人员可以用它测试多实例扩散模型的效果。虽然模型只用合成数据训练,但对真实和卡通图片也有很好的适应性。 - 数字艺术
艺术家可以用卡通图片生成3D动画场景,快速制作创意作品,节省建模时间。
QA
- MIDI-3D 支持哪些图片类型?
支持.png
和.jpg
格式。推荐使用清晰的图片,效果更佳。 - 需要什么硬件配置?
需要 NVIDIA GPU,显存至少 6GB,配合 CUDA 环境运行。CPU 无法满足需求。 - 生成的模型可以商用吗?
可以,项目采用 MIT 许可证,生成的.glb
文件可自由用于商业用途,但需遵守许可证要求。