AI个人学习
和实操指南
豆包Marscode1

MIDI-3D:从单张图片快速生成多物体3D场景的开源工具

综合介绍

MIDI-3D 是 VAST-AI-Research 团队开发的一个开源项目,它能从一张图片快速生成包含多个物体的3D场景,适合开发者、研究人员和创作者使用。这个工具基于多实例扩散模型技术,结合人工智能和3D建模,能同时生成多个高质量3D物体,并保持它们的空间关系。MIDI-3D 在 2025 年 CVPR 大会上发布,代码、模型权重和在线演示都已开放。它支持真实和卡通风格的图片输入,生成时间短至40秒,输出文件为 .glb 格式,可在其他软件中编辑。项目旨在简化3D场景创作,让更多人能轻松制作数字资产。

MIDI-3D:从单张图片快速生成多物体3D场景的开源工具-1


 

功能列表

  • 从单张图片生成包含多个物体的3D场景,支持真实和卡通风格。
  • 提供图像分割功能,自动识别并标注图片中的物体。
  • 同时生成多个可分离的3D实例,自动组合成完整场景。
  • 支持命令行操作和交互式网页演示两种方式。
  • 自动下载预训练模型权重到本地,方便快速启动。
  • 输出 .glb 格式的3D模型文件,可用于后续编辑或导入其他软件。
  • 生成过程高效,无需逐个物体建模或长时间优化。

 

使用帮助

MIDI-3D 的使用分为安装和操作两部分。以下是详细步骤,帮助你从零开始上手。

安装流程

  1. 准备硬件和软件环境
    你需要一台支持 CUDA 的电脑,因为 MIDI-3D 依赖 GPU 加速。推荐使用 NVIDIA GPU,显存至少 6GB。确保安装 Python 3.10 或更高版本。
  2. 创建虚拟环境(可选)
    为避免冲突,可以创建一个新的 Conda 环境:
conda create -n midi python=3.10
conda activate midi
  1. 安装 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/ 选择对应命令。

  1. 下载项目代码
    在终端运行以下命令,克隆 MIDI-3D 仓库:
git clone https://github.com/VAST-AI-Research/MIDI-3D.git
cd MIDI-3D
  1. 安装依赖
    项目提供 requirements.txt 文件,运行以下命令安装所有依赖:
pip install -r requirements.txt
  1. 获取模型权重
    运行脚本时,MIDI-3D 会自动从 https://huggingface.co/VAST-AI/MIDI-3D 下载预训练模型,保存到 pretrained_weights/MIDI-3D 文件夹。如果网络不稳定,也可以手动下载并解压到该路径。

操作流程

MIDI-3D 支持两种使用方式:命令行和交互式演示。以下是具体步骤。

命令行操作

  1. 生成分割图
    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 文件。
  1. 生成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

交互式演示

  1. 启动演示
    运行以下命令启动 Gradio 界面:
python gradio_demo.py

系统会自动打开浏览器,显示操作页面。你也可以访问在线演示:https://huggingface.co/spaces/VAST-AI/MIDI-3D。

  1. 上传图片并分割
    在界面点击“Input Image”上传图片。然后用鼠标框选物体区域,系统会自动生成分割图,显示在“Segmentation Result”中。
  2. 生成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 是否支持,或者确认分割图是否正确。
  • 如果物体细节缺失,尝试用更高分辨率的图片。

 

应用场景

  1. 游戏开发
    开发者可以用 MIDI-3D 从草图生成3D场景。比如,一张森林图片可以快速变成树木和地形的3D模型,导入 Unity 使用。
  2. 学术研究
    研究人员可以用它测试多实例扩散模型的效果。虽然模型只用合成数据训练,但对真实和卡通图片也有很好的适应性。
  3. 数字艺术
    艺术家可以用卡通图片生成3D动画场景,快速制作创意作品,节省建模时间。

 

QA

  1. MIDI-3D 支持哪些图片类型?
    支持 .png 和 .jpg 格式。推荐使用清晰的图片,效果更佳。
  2. 需要什么硬件配置?
    需要 NVIDIA GPU,显存至少 6GB,配合 CUDA 环境运行。CPU 无法满足需求。
  3. 生成的模型可以商用吗?
    可以,项目采用 MIT 许可证,生成的 .glb 文件可自由用于商业用途,但需遵守许可证要求。
未经允许不得转载:首席AI分享圈 » MIDI-3D:从单张图片快速生成多物体3D场景的开源工具
zh_CN简体中文