stable-virtual-camera
输入一张照片,AI 生成绕其旋转的 3D 一致视角视频
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
输入一张照片,AI 生成绕其旋转的 3D 一致视角视频
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:你用手机随手拍了一张客厅的照片,然后对 AI 说:"给我生成一段视频,就像我绕着这个客厅走一圈看到的那样。" 听起来像是科幻电影里的情节——但 Stable Virtual Camera(SEVA) 正在把这件事变成现实。
2025 年 3 月,Stability AI 联合牛津大学和 UC Berkeley 发布了这个重磅项目。它是一个基于扩散模型(Diffusion Model)的通用视图合成(Novel View Synthesis, NVS)模型,可以根据任意数量的输入视角,生成 3D 一致的新视角图像和视频。项目在 GitHub 上线后迅速获得超过 1600 颗星,并被 ICCV 2025 接收。
核心能力速览:

图1:SEVA 在不同场景下的生成效果对比,展示了与其他主流 NVS 方法的量化性能差异。 图片来源:项目官方 GitHub 仓库。
在说 SEVA 之前,有必要先理解"视图合成"这个问题的本质挑战。
当你从不同角度看同一个物体时,画面会发生复杂变化:被遮挡的部分会重新出现、光影会随视角变化、纹理细节会因透视关系而扭曲。传统方法(如基于几何重建的 Multi-View Stereo)在以下两个场景中表现挣扎:
大视角跳变(Large Motion): 想象从正面看一辆车和从侧面看它——这需要模型"推理"出正面看不到的侧面细节。纯几何方法在视角差距超过 30° 时,重建质量会急剧下降。
时序一致性(Temporal Consistency): 如果逐帧生成多视角图像,相邻帧之间可能出现抖动、闪烁或几何不一致——就像一个不太会画画的画家,每画一笔都要重新观察对象。
行业此前的主流方法分为两类:
基于几何的方法(如 NeRF、MVS):在视角差距小时效果惊艳,但大跳变时重建失败,且需要精确的相机位姿估计。
基于生成式的方法(如 ZeroNVS、S rendr):能处理大视角跳变,但时序一致性差,视频容易出现"鬼影"或几何失真。
SEVA 的论文指出了一个关键洞察:"大视角跳变"和"时序一致性"在现有方法中是相互矛盾的——要么牺牲视角范围保一致性,要么牺牲一致性保视角范围。SEVA 的核心贡献,就是用扩散模型的强大生成能力同时解决这两个问题。
SEVA 采用了"生成式视图合成"的路线,其核心理念是:不追求精确恢复 3D 几何,而是让扩散模型"想象"出新视角应该长什么样——就像人类闭上眼睛也能想象从侧面看一个物体的样子。
项目官方将此描述为"Generalist Diffusion Model for NVS"(通用的 NVS 扩散模型)。模型被训练为可以接受任意数量的输入视图和任意目标相机位姿,输出对应的合成视图。这种设计让 SEVA 不需要针对特定场景调优,真正实现了"通用"。
从 seva/ 目录的代码结构来看,模型主要由以下几个模块组成:
SGMWrapper(主模型封装): 这是扩散模型的核心推理入口。它负责加载预训练的 Stable Diffusion 权重,并通过条件控制机制注入相机位姿信息。
DiscreteDenoiser(离散去噪器): 扩散模型的采样过程需要多步迭代去噪。SEVA 使用了离散化的去噪器设计(num_idx=1000),将连续的去噪过程离散为 1000 个步骤,在质量和速度之间取得平衡。
AutoEncoder(自编码器): 输入图像首先通过自编码器压缩到隐空间。SEVA 使用了专门训练的自编码器(seva/modules/autoencoder.py),将 576×576 的 RGB 图像压缩为隐变量表示,大幅降低扩散模型的计算量。
CLIPConditioner(CLIP 条件器): 除了相机位姿,模型还接受图像-文本条件的指导。这个模块(seva/modules/conditioner.py)将输入图像和文本描述编码为 CLIP 特征,注入到扩散模型的各层中,保证生成内容与输入图像的语义一致性。
Dust3rPipeline(深度/位姿估计): 这是 SEVA 依赖的第三方预处理模块(seva/modules/preprocessor.py),来自巴黎文理研究大学(PSL)的 DUSt3R 工作。当用户输入单张图像时,系统使用 Dust3R 自动估计相机位姿和深度图,为扩散模型提供几何先验。
Geometry 模块(seva/geometry.py): 负责相机几何计算,包括相机内外参矩阵、预设轨迹生成(轨道、螺旋等)、视角插值等。这使得用户可以指定复杂的相机运动路径。
SEVA 模型的训练细节在论文中有详细描述(arXiv:2503.14489)。训练使用了大规模的多视角数据集,模型规模为 13 亿参数(v1.1),在 576P 分辨率下运行。v1.0 到 v1.1 的重要改进是修复了前景物体偶尔与背景分离的问题。
| 模块 | 技术选型 | 说明 |
|---|---|---|
| 深度学习框架 | PyTorch >= 2.6.0 | 核心依赖 |
| 扩散模型库 | Diffusers | HuggingFace 生态 |
| 图像编码 | Open-CLIP | 图文多模态条件 |
| 3D 预处理 | DUSt3R | 深度/位姿估计 |
| 相机几何 | 自研 + Splines | 轨迹插值 |
| 前端界面 | Gradio 5.17.0 | Web UI |
| 模型分发 | HuggingFace Hub | 权重托管 |
| 3D 可视化 | Viser | 相机轨迹实时可视化 |
如果你不想折腾命令行,最简单的方式是运行 Gradio 演示界面:
git clone --recursive https://github.com/Stability-AI/stable-virtual-camera
cd stable-virtual-camera
pip install -e .
python demo_gr.py
运行后,终端会输出一个本地 URL(通常是 http://localhost:7860),在浏览器中打开即可看到一个交互式界面。界面上提供了预设的示例图像,包括汽车、花园、实验室场景等,你可以直接体验一键生成环绕视频的效果。
对于进阶用户,Gradio 界面还支持上传自己的图像、调整相机轨迹类型(轨道、螺旋等)、控制生成帧数等参数。
CLI 模式提供更精细的控制,适合科研人员做基准测试。核心命令格式:
python demo.py --data_path <图像路径或目录> [其他参数]
demo.py 中实现了多种任务模式:
CLI 模式还支持使用 Dust3R 自动估计相机位姿,无需手动标定——这大大降低了上手门槛。
项目的 Python 包名为 seva,通过 pip install -e . 安装后可以 import:
from seva.model import SGMWrapper
from seva.utils import load_model
model = load_model(device="cuda:0")
具体用法可以参考 demo.py 和 demo_gr.py 中的完整实现。
SEVA 是一个 13 亿参数的扩散模型,推理需要大量显存。根据官方要求和建议:
项目明确不支持 Windows 原生环境(Flash Attention 不兼容),建议 Windows 用户使用 WSL2。
SEVA 的模型权重托管在 HuggingFace 上(stabilityai/stable-virtual-camera),需要完成两步认证:
huggingface-cli login 登录 HuggingFace 账号这意味着项目不是完全"开箱即用"的——你需要有网络连接能访问 HuggingFace,且需要拥有一个 HuggingFace 账号。
| 维度 | 评分 | 说明 |
|---|---|---|
| 环境配置 | 中等 | Python >= 3.10 + PyTorch >= 2.6.0,依赖较多 |
| 硬件要求 | 高 | 必须有 NVIDIA GPU,8GB+ 显存 |
| 模型获取 | 需认证 | HuggingFace 需登录 + 申请访问 |
| Web UI | 支持 | Gradio 界面开箱即用 |
| 容器化 | 无 | 无 Dockerfile,需手动搭建环境 |
综合来看,对于有深度学习经验的开发者,部署难度适中;但对于普通爱好者,有一定的门槛。
这是 SEVA 目前最大的限制。项目明确说明,模型输出的内容遵循与模型相同的非商业许可(Stability AI Community License)。也就是说,用 SEVA 生成的视频不能用于商业目的。
扩散模型本质上是在"猜测"看不见的部分。对于纹理复杂、遮挡严重的场景,生成的视图可能出现幻觉细节(hallucinated details)——比如在一面本应是空白墙的地方"长出"了窗户。SEVA v1.1 对前景物体脱离背景的问题做了修复,但corner case 仍然存在。
目前项目只开源了推理代码,训练脚本未公开(团队在 GitHub Issue #27 中解释过原因)。对于学术研究者来说,无法直接复现或在自己的数据上微调模型是一个遗憾。
在 RTX 3090 上,单次生成 21 帧 576P 视频大约需要几分钟到十几分钟不等(取决于输入图像数量)。这个速度对于交互式应用来说还不够流畅。Torch 2.6 Nightly 版本支持 torch.compile() 编译加速,但并非所有用户都能获取 nightly 版本。
SEVA 的发布在 3D/4D 生成领域引发了不小关注。在此之前,主流的 3D 内容创建工具(如 NeRF、Gaussian Splatting)更偏向精确重建,依赖大量输入视角;而纯生成式方法又难以保证 3D 一致性。SEVA 证明扩散模型可以成为连接"生成"与"3D 一致性"的桥梁。
从更大的视角看,SEVA 代表了"3D 内容生成的民主化"趋势:过去需要专业设备和多视角图像采集才能创建的 3D 场景,现在只需一张照片。这对于游戏开发、VR/AR 内容创作、电影预演等场景都有潜在价值。
SEVA 被 ICCV 2025(国际计算机视觉大会)接收,这是计算机视觉领域最顶级的学术会议之一。论文的 reviewers 对其在无界视角合成(unbounded NVS)任务上的性能给予了肯定。论文的官方 GitHub 页面链接了 arXiv 预印本和官方项目页面,方便学术引用。
SEVA 是 Stability AI 在 2025 年推出的一系列开源项目之一,与 Stable Diffusion 3、Stable Audio 等形成互补的产品矩阵。通过开源推理代码,Stability AI 吸引了大量开发者和研究者在其基础上进行二次开发(如 Issue #51 中社区成员 PR 的训练脚本),形成了良好的开源生态。
推荐使用 SEVA 的人群:
不适合的使用场景:
SEVA 的出现让我们看到,AI 对"3D 空间理解"的能力正在快速提升。虽然它还不是完美的工具——商业限制、速度瓶颈、幻觉问题都真实存在——但它的开源精神和在学术/产业界引起的话题度,都证明了它是一个值得关注的项目。如果你在探索 AI 生成 3D 内容,SEVA 值得加入你的工具箱。

图2:Stability AI 官方机构头像。 项目由 Stability AI 主导,联合牛津大学 VGG 实验室和 UC Berkeley BAIR 共同研发。