详情

首页手游攻略 MVDream:实践指南

MVDream:实践指南

佚名 2026-09-11 16:20:01

面对实际交付,我看MVDream的重点不在星标,而在这项能力:用于 3D 生成的多视图扩散。一旦进入日常自动化环节,输入边界、依赖和失败处理如果不清楚就很难稳定复用会直接影响交付,这也是我最关心的风险。短测时我会用一项范围明确的真实任务完成最小试跑,并保留配置时间、输出质量、异常信息和维护痕迹的结果,方便团队复盘。整体来看,它适合愿意先做小范围验证并复查原始文档的团队拿来做对照测试,最终决定仍应回到真实结果和维护状态。

MVDream

施一春、王鹏、叶江龙、麦龙、李科杰、肖阳

| 项目页面 | 3D一代 | 纸 | HuggingFace 演示(即将推出) |

3D生成

  • 此存储库仅包含MVDream论文的扩散模型和2D图像生成代码。
  • 对于 3D 生成,请检查 MVDream-threestudio。

安装

您可以为此存储库使用与 Stable-Diffusion 中相同的环境。或者您可以通过安装给定的要求来设置环境

pip install -r requirements.txt

要将MVDream用作python模块,您可以通过pip install -e .安装它或:

pip install git+https://github.com/bytedance/MVDream

型号卡

我们的模型在 Huggingface 模型页面 上提供,并具有 OpenRAIL 许可证。

型号 基础型号 分辨率
sd-v2.1-base-4view 稳定扩散2.1底座 4x256x256
sd-v1.5-4view 稳定扩散 1.5 4x256x256

默认情况下,我们在实验中使用 SD-2.1-base 模型。

请注意,您不必手动下载以下脚本的检查点。

文本转图像

您可以通过运行以下命令简单地生成多视图图像:

python scripts/t2i.py --text "an astronaut riding a horse"

我们还提供了一个渐变脚本来尝试 GUI:

python scripts/gradio_app.py

用途

加载模型

我们提供两种方式加载MVDream的模型:

  • 自动:使用 Huggingface 中的模型名称和权重加载模型配置。
from mvdream.model_zoo import build_model
model = build_model("sd-v2.1-base-4view")
  • 手动:使用配置文件和检查点文件加载模型。
from omegaconf import OmegaConf
from mvdream.ldm.util import instantiate_from_config
config = OmegaConf.load("mvdream/configs/sd-v2-base.yaml")
model = instantiate_from_config(config.model)
model.load_state_dict(torch.load("path/to/sd-v2.1-base-4view.th", map_location='cpu'))

推理

这是模型推理的一个简单示例:

import torch
from mvdream.camera_utils import get_camera
model.eval()
model.cuda()
with torch.no_grad():
    noise = torch.randn(4,4,32,32, device="cuda") # batch of 4x for 4 views, latent size 32=256/8
    t = torch.tensor([999]*4, dtype=torch.long, device="cuda") # same timestep for 4 views
    cond = {
        "context": model.get_learned_conditioning([""]*4).cuda(), # text embeddings
        "camera": get_camera(4).cuda(),
        "num_frames": 4,
    }
    eps = model.apply_model(noise, t, cond=cond)
点击查看更多
推荐专题
热门阅读