文章目录
- Stability AI 开源视频生成全家桶 从视频到 4D 的进化之路
- 从单张图片到动态 4D
- 底层架构的重新设计
- 上手门槛不算高
- 从 SDXL 到 SV4D 2.0
Stability AI 开源视频生成全家桶 从视频到 4D 的进化之路
Stability AI 的 generative-models 仓库最近又更新了。这个项目从最初的 Stable Diffusion XL 开始,一步步扩展到视频生成领域,最新版本已经能做到从一段视频生成 4D 内容。
从单张图片到动态 4D
这个仓库最核心的产品线,是 Stability AI 的视频生成模型系列,从简到繁分为四个阶段。
第一阶段是 Stable Video Diffusion(SVD),能把一张图片变成一段 14 帧或 25 帧的视频。这是基础能力,给定一张静态图,模型推断出画面接下来可能发生的运动。
第二阶段是 SV3D,从单张图片生成环绕视角的多帧画面。输入一张物体图片,模型输出 21 帧不同角度的视图,相当于绕物体旋转一圈。这个模型分两个版本:SV3D_u 没有视角控制,SV3D_p 可以指定俯仰角和方位角路径。
第三阶段是 SV4D,把输入从图片换成了视频。给定一段 21 帧的视频,模型输出 40 帧的多视角新视频(5 帧 x 8 视角)。这意味着你不再满足于看到物体在动,还能从任意角度观看它的运动。
第四阶段是今年 5 月刚发布的 SV4D 2.0,相比前代有质的提升。它不需要像前作那样依赖 SV3D 先合成首帧的多视角,而是直接从视频生成 48 帧(12 帧 x 4 视角)的高质量输出。在运动细节的清晰度和时空一致性上明显更好,而且对真实世界视频的泛化能力更强。
底层架构的重新设计
除了模型本身的演进,这个仓库的代码架构也做了不少改动。和早期的 ldm 代码库相比,现在的实现更模块化。
扩散模型的核心类从 LatentDiffusion 改名为 DiffusionEngine,减少了大量子类继承。所有类型的条件输入(向量、序列、空间条件以及任意组合)统一用 GeneralConditioner 处理。引导器(如无分类器引导)和采样器分离成独立模块,采样器不再依赖具体模型。
训练方面采用了连续时间框架,离散时间模型只是连续时间的特例。损失函数的加权、网络的预条件处理、训练时的噪声级别采样,都设计成独立可配置的组件。
上手门槛不算高
项目提供了多种使用方式。最简单的入口是 Gradio 或 Streamlit 演示,一条命令就能启动交互界面。
对需要编程调用的用户,每个模型都提供了独立的采样脚本。以最新的 SV4D 2.0 为例,下载模型权重后,一行命令就能运行:
python scripts/sampling/simple_video_sample_4d2.py --input_path assets/sv4d_videos/camel.gif --output_folder outputs输入支持 GIF、MP4 格式的视频文件,也支持图片序列文件夹。脚本里还有一些实用选项,比如低显存环境下可以控制同时编解码的帧数,或者降低视频分辨率。对背景嘈杂的真实场景视频,可以用 SAM2 或 Clipdrop 先分割前景物体再运行,效果更好。
从 SDXL 到 SV4D 2.0
仓库还包含了 SDXL 系列模型(base 和 refiner)以及 SDXL-Turbo 的代码。SDXL 是 Stability AI 在图像生成领域的重要节点,1024 分辨率、双模型架构(base + refiner),在当时是开源图像生成的天花板。SDXL-Turbo 则用对抗扩散蒸馏技术把生成速度推到极致。
整个项目使用 Hatch 构建工具进行 Python 打包,配置文件驱动的方式组织代码。训练和推理的配置项通过 YAML 文件组合,不同的模型、训练策略、数据集可以灵活搭配。安装过程也比较标准,Python 3.10 虚拟环境加 PyTorch 2.0,几条命令就能跑起来。
对刚接触这个领域的开发者来说,这个仓库是一份不错的学习材料。从基础的条件扩散模型到多视角视频生成,所有代码都是开源的,配置和实现都能直接读。不管是想跑跑效果,还是想理解视频生成模型的技术细节,都能找到对应模块。
,配置和实现都能直接读。不管是想跑跑效果,还是想理解视频生成模型的技术细节,都能找到对应模块。