视频扩散模型
视频扩散模型是当前视频生成的主流架构,Sora、Runway Gen-3等先进模型都基于此技术。
什么是视频扩散模型
视频扩散模型将图像扩散模型扩展到时间维度,通过在潜在空间中逐步去噪来生成视频。这种方法继承了扩散模型在图像生成上的优势,同时解决了视频特有的时序一致性问题。
核心思想
- 时空扩散:在空间和时间维度同时进行扩散过程
- 潜在空间:压缩视频到低维潜在空间降低计算量
- 条件控制:通过文本、图像等条件引导生成
- 迭代去噪:通过多步去噪逐步恢复高质量视频
视频扩散 vs 图像扩散
视频扩散模型与图像扩散模型有相似之处,但也有关键区别:
| 方面 | 图像扩散 | 视频扩散 |
|---|---|---|
| 数据维度 | 3D (C, H, W) | 4D (C, T, H, W) |
| 压缩目标 | 空间信息 | 空间+时间信息 |
| 去噪网络 | 2D UNet/DiT | 3D UNet/DiT |
| 关键挑战 | 生成质量 | 质量+时序一致性 |
| 计算量 | 较大 | 极大(数百倍) |
发展历程
2022年:探索期
OpenAI发布Video Diffusion Models,首次将扩散模型应用于视频生成。Google发布Imagen Video,展示了扩散模型在视频生成上的潜力。
2023年:突破期
Runway发布Gen-2,Stability AI发布SVD,视频扩散模型进入实用阶段。Pika Labs、HeyGen等产品涌现。
2024年:成熟期
OpenAI发布Sora,采用DiT架构,支持60秒高质量视频生成。Runway发布Gen-3 Alpha,国产模型如可灵、即梦等快速发展。
模型架构
视频扩散模型通常包含三个核心组件,形成一个完整的生成流水线:
| 组件 | 作用 | 说明 |
|---|---|---|
| 视频VAE | 压缩/重建 | 将视频编码到低维潜在空间,再解码回像素空间 |
| 去噪网络 | 核心生成 | 在潜在空间预测并去除噪声(UNet或DiT) |
| 文本编码器 | 条件编码 | 将文本描述转换为条件向量引导生成 |
生成流程
- 文本编码:将输入的文本描述通过文本编码器转换为条件向量
- 初始噪声:在潜在空间生成随机噪声
- 迭代去噪:去噪网络根据条件向量逐步去除噪声
- 解码输出:将潜在空间的去噪结果解码为像素空间的视频
两种主流架构
UNet架构
传统扩散模型采用的架构,通过下采样-上采样结构捕获多尺度特征。代表模型:SVD、Runway Gen-2。特点是成熟稳定,但扩展性有限。
DiT架构
Diffusion Transformer,使用Transformer替代UNet作为去噪网络。代表模型:Sora。特点是可扩展性强,适合大规模训练。
视频VAE
视频VAE(Video Variational Autoencoder)是对图像VAE的扩展,需要在时间维度上进行压缩。它是降低视频扩散计算量的关键组件。
压缩方式
- 空间压缩:与图像VAE相同,通常8倍下采样
- 时间压缩:在时间维度压缩,通常4-8倍
- 整体压缩:可达到32-64倍的压缩比
时间压缩的实现
2D VAE + 帧独立处理
使用图像VAE逐帧编码和解码。优点是可以复用预训练的图像VAE,缺点是缺乏时序一致性,可能导致帧间闪烁。
3D卷积VAE
在时间维度上也使用卷积进行压缩。通过3D卷积自然地建模时序关系,压缩后的潜在表示具有更好的时序一致性。
因果VAE
采用因果卷积,只依赖当前帧之前的信息。适用于需要实时处理或自回归生成的场景。
视频VAE的设计考量
| 设计选择 | 影响因素 | 权衡 |
|---|---|---|
| 压缩比 | 计算量 vs 重建质量 | 压缩比越高计算越快,但可能丢失细节 |
| 时间感受野 | 时序建模能力 | 感受野越大一致性越好,但延迟越高 |
| 潜在空间维度 | 表达能力 vs 计算量 | 维度越高表达越强,计算量越大 |
时空UNet
时空UNet是视频扩散的核心去噪网络,需要在空间和时间维度同时进行去噪。它是早期视频扩散模型的主流架构。
网络结构
- 编码器:逐步下采样,捕获多尺度特征
- 瓶颈层:最深层,处理最抽象的表示
- 解码器:逐步上采样,重建细节
- 跳跃连接:连接编码器和解码器的对应层
时空注意力的实现
空间注意力
在每帧内部计算自注意力,处理帧内的空间关系。这与图像UNet中的注意力相同。
时间注意力
在不同帧的相同位置之间计算注意力,建立帧间的时序关系,确保一致性。
常用模块设计
时空分离注意力
先计算空间注意力,再计算时间注意力。这种方式计算效率高,是大多数模型采用的方式。
3D卷积块
使用3D卷积替代2D卷积,自然地在时空维度上建模。计算量大,但能捕获局部时空特征。
时间层归一化
专门针对时间维度的归一化,有助于稳定训练和保持时序一致性。
UNet vs DiT 对比
| 特性 | UNet | DiT |
|---|---|---|
| 架构类型 | 卷积+注意力混合 | 纯Transformer |
| 可扩展性 | 有限 | 强 |
| 参数效率 | 高 | 中等 |
| 训练稳定性 | 较好 | 需要调优 |
| 大规模表现 | 有上限 | 持续提升 |
DiT架构
Diffusion Transformer (DiT) 使用Transformer替代UNet作为去噪网络,是当前最先进的视频扩散架构。Sora的成功证明了DiT在视频生成领域的巨大潜力。
核心设计
视频Patch化
将视频分解为时空Patch(如2×8×8的时间×空间块),每个Patch作为一个token。这与ViT将图像分解为Patch类似,但扩展到了时间维度。
条件注入
通过adaLN (Adaptive Layer Norm) 将时间步和条件信息注入到每个Transformer层。这种方式比简单的条件拼接更有效。
位置编码
为每个时空Patch添加位置编码,帮助模型理解空间和时间位置。可以使用绝对位置编码或相对位置编码。
DiT的优势
- 可扩展性:可以通过增加层数和宽度来扩展模型规模
- 全局建模:自注意力可以捕获全局时空关系
- 灵活输入:可以处理不同分辨率和时长的视频
- 迁移学习:可以充分利用图像预训练的权重
Sora的DiT架构
Sora是DiT架构在视频生成领域的代表作,其核心创新包括:
时空Patch提取
将压缩后的视频潜在表示分解为时空Patch,这是Sora能够处理不同分辨率和时长视频的关键。
Recaption
使用GPT-4将简短的提示词扩展为详细描述,提高生成质量和一致性。
大规模训练
在大规模视频数据上训练,模型涌现出意想不到的能力,如物理模拟、3D一致性等。
采样加速
视频扩散模型推理速度慢是主要瓶颈,一个短视频可能需要数百次去噪步骤。采样加速技术是让视频扩散模型实用的关键。
常用加速方法
DDIM (Denoising Diffusion Implicit Models)
确定性采样方法,可以将采样步数从1000步减少到50-100步,同时保持生成质量。是大多数扩散模型默认的采样方法。
DPM-Solver
高阶ODE求解器,可以在20步以内达到高质量生成。比DDIM更快,是目前最常用的快速采样方法之一。
Euler / Heun 采样器
简单高效的ODE求解方法,平衡了速度和质量。在许多开源模型中被广泛使用。
蒸馏加速
通过知识蒸馏将多步模型压缩为少步模型:
- • 渐进蒸馏:逐步将N步模型蒸馏为N/2步
- • 一致性模型:训练单步就能生成高质量结果的模型
- • LCM (Latent Consistency Models):在潜在空间的一致性蒸馏
视频特有的加速策略
分层采样
对关键帧使用多步采样,对中间帧使用少步采样或插值,减少总体计算量。
帧并行
在GPU上并行处理多个帧,利用批量计算提高效率。需要较大的显存。
缓存重用
缓存中间计算结果,在相邻帧之间重用,减少重复计算。
训练策略
视频扩散模型的训练比图像扩散更加复杂,需要特别考虑时序一致性和计算效率。
数据准备
视频数据的特点
- • 文件大,存储和读取成本高
- • 时长、分辨率、帧率不统一
- • 质量参差不齐,需要筛选
- • 标注成本高,高质量描述稀缺
数据预处理
- • 统一分辨率和帧率
- • 裁剪到固定时长片段
- • 去除黑边、水印等
- • 使用VLM生成描述作为标注
训练技巧
帧率采样
在训练时随机采样不同的帧率,让模型适应不同时间尺度的运动。
条件Dropout
随机丢弃部分条件信息(如文本描述),提高模型的无条件生成能力和引导灵活性。
噪声调度
针对视频调整噪声调度策略,可能需要与图像不同的调度参数。
混合训练
同时训练图像和视频数据,利用大量图像数据提升视觉质量。
损失函数
常用损失
- • 简单MSE:预测噪声与真实噪声的均方误差
- • v-prediction:预测速度向量,数值更稳定
- • 时序损失:显式约束帧间一致性
- • 感知损失:在特征空间计算损失,提升视觉质量