作者 | Lilian Weng
编译 |
王启隆
出品 | AI 科技大本营(ID:rgznai100)
引自 | Weng, Lilian. (Apr 2024). Diffusion Models Video Generation. Lil’Log.
链接
|
https://lilianweng.github.io/posts/2024-04-12-diffusion-video/.
近日,来自 OpenAI 的
Lilian Weng 发布了一篇博客,从技术性角度科普了用于视频生成的扩散模型
。此前,她曾在 2021 年发表博客《什么是扩散模型?》,以透彻且硬核的方式讲解了其中的技术原理。如今,她的最新分享无疑成为深入探索视频生成领域的必读之作。
前一篇文章:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
Lilian Weng 于 2018 年加入 OpenAI,先后领导过 Applied AI(人工智能应用研究)和 Head of Safety Systems(安全系统)团队在 GPT-4 项目中主要参与预训练、强化学习 & 对齐、模型安全等方面的工作。这次由她撰写的关于扩散模型在视频生成应用上的新思考,希望能为你提供一道新视野。
从零开始的视频生成建模
以下为正文:
扩散模型近年来在图像合成方面表现出了强大的效果。现在研究界已经开始着手一个更具挑战性的任务——将其应用于视频生成。这一任务实际上是图像案例的超集,因为单帧图像可视作一种视频,而它更具难度的原因在于:
1. 视频生成对时间轴上不同帧之间的时序一致性(temporal consistency across frames in time)提出了额外要求,这自然需要我们将更多的世界知识编码到模型当中。
2. 与文本或图像相比,收集大量高质量、高维度的视频数据更为困难,更不必提文本-视频配对(text-video pairs)的数据了。
从零开始的视频生成建模
首先,让我们回顾一下从头设计和训练扩散视频模型的方法,这意味着我们将不依赖预训练的图像生成器。
参数化与采样基础
此处我们采用与前一篇文章稍有不同的变量定义,但数学原理保持一致。
前
一篇文章
:
https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
设
是从真实数据分布中抽取的一个数据点。现在我们在时间上逐步添加少量高斯噪声(Gaussian noise),从而创建一系列
的含噪变体,记作
,随着
增大,噪声量也逐渐增加,直至最后
。这个添加噪声的前向过程是一个高斯过程(Gaussian process)。令
定义该高斯过程的不同噪声计划:
为了表示
时的
,我们有以下推导:
令信噪
比(signal-to-noise-ratio, SNR)的
对数形式为
,我们可以将 DDIM(Denoising Diffusion Implicit Models, Song 等人发表于 2020 年的论文)的更新公式表示为:
Salimans & Ho 于 2022 年提出了一种特殊的
预测参数化方法(其中
)。相较于
参数化,这种方法已被证明有助于避免视频生成中的色彩偏移问题。
图 1 此图为扩散更新
步骤(diffusion update step)在角度
坐标中工作的可视化表示,其中 DDIM 通过沿
方向移动来演化
。(
Salimans & Ho
于
2022 年
发表
)
在视频生成场景中,我们需要扩散模型执行多个上采样步骤以延长视频长度或提高帧率。这就需要模型具备根据第一个视频
抽样第二个视频
的能力,即
,其中
可能是
的自回归扩展,或者是低帧率视频
之间的缺失帧。
抽样
除了依赖其自身的噪声变量外,还需要根据
进行条件化。视频扩散模型(Video Diffusion Models, VDM;Ho & Salimans 等人于 2022 年发表)论文中提出了采用调整后的去噪模型进行重建导向的方法,使得
的抽样能够正确依据
进行条件化:
此处,
和
分别是去噪模型提供的
和
的重构版本。而
是一个权重因子,发现当设置较大的
时可以提升样本质量。需要注意的是,我们也可以同时对低分辨率视频进行条件化,使用相同的重建导向方法将样本扩展到高分辨率。
类似于文本到图像的扩散模型,
U-Net
和
Transformer
仍然是目前两种常见的架构选择。
谷歌有一系列基于 U-Net 架构的扩散视频建模论文,而最近来自 OpenAI 的 Sora 模型则利用了 Transformer 架构。
视频扩散模型
(VDM)采用了标准的扩散模型设置,但对其架构进行了适应性修改,使之适用于视频建模。它将 2D U-net 扩展至适用于三维数据(Cicek 等人, 2016),其中每个特征图代表一个由帧数
、高度
、宽度
通道组成的 4D 张量。这种 3D U-net 是按空间和时间维度分解的,意味着每一层仅作用于空间维度或时间维度,而不是同时作用于两者:
原先 2D U-Net 中的每个 2D 卷积层被扩展为仅针对空间维度的 3D 卷积层;具体来说,原本的 3x3 卷积转换为了 1x3x3 卷积操作,只在空间维度(高度和宽度)上进行处理。
在每个空间注意
力块(spatial attention block)之后增加了
一个时间
注意力块(temporal attention block)
。该块负责对第一个轴(帧)执行注意力机制,并将空间轴视为批量维度。相对位置嵌入被用来跟踪帧的顺序。这一时间注意力块对于模型捕捉良好的时间连贯性至关重要。通过这种方式,模型能够在不混淆不同帧间空间信息的同时,有效地学习并整合视频序列的时间动态。
图 2 3D U-net 架构。网络的输入包括噪声视频
、条件信息
以及对数信噪比 (
) 参数
。通道倍增器
表示各层的通道数量 (
Salimans & Ho
于
2022 年
发表
)
Imagen Video 基于扩散模型的级联结构来提升视频生成质量,并能输出分辨率为
、帧率为
的视频。整个 Imagen Video 架构包含以下组件,总计由 7 个扩散模型构成。
一个冻结状态的 T5 文本编码器,用于提供作为条件输入的文本嵌入。
交错的空间和时间超分辨率扩散模型的级联,其中包括 3 个 TSR(时间超分辨率)和 3
个
SSR(
空间超分辨率)组件。
注解:
扩散模型是一种深度学习技术,用于生成高质量的数据样本,如视频和图像。
TSR(Temporal Super-Resolution)指的是提高视频帧率的技术,增强视频在时间维度上的连续性和流畅度。
SSR(Spatial Super-Resolution)则是指提高视频分辨率的技术,使得图像在空间维度上的细节更加丰富清晰。
图 3 Imagen Video 中的级联采样流程。实际上,文本嵌入会被注入到所有组件中,而不仅仅是在基础模型中(
Ho 等人
于
2022 年
发表
)
基础去噪模型首先对所有帧执行空间操作,这些操作共享同一组参数,然后通过时间层混合不同帧之间的激活以更好地捕捉时间连贯性,这一方法被发现相比基于帧自回归的方法效果更优。
图 4 Imagen Video 扩散模型中时空分离块的架构(
Ho 等人
于
2022 年
发表
)
SSR 和 TSR 模型均基于通道方向上与噪声数据
连接后的上采样输入进行条件计算。其中,SSR 采用双线性重采样进行上采样,而 TSR 通过重复帧或填充空白帧的方式来实现上采样。
为了加速采样过程,Imagen Video 还采用了逐步蒸馏策略,每次蒸馏迭代都能将所需的采样步数减半。他们的实验成功地将全部 7 个视频扩散模型浓缩至每个模型仅需 8 步采样,且视觉感知质量没有明显损失。
为了实现更好的规模化效率,
Sora
利用了针对视频和图像潜在编码(latent code)时空块操作的
DiT
(扩散 Transformer)架构。视觉输入被表示为一系列时空块序列,这些序列充当 Transformer 的输入令牌。
图 5 Sora 是一个扩散 Transformer 模型(
Brooks 等人于 2024年
发表
)
适应图像模型以生成视频
另一种显著的扩散视频建模方法是对预训练的图文扩散模型进行“扩展”,即插入时间层,之后可以选择仅针对视频数据微调新层,甚至完全避免额外训练。新模型继承了文本-图片
配对
(text-image pairs)的先验知识,从而有助于减轻对文本-视频配对(text-video pair)数据的需求。
在视频数据上进行微调
Make-A-Video 通过扩展预训练的扩散图像模型引入时间维度,包含三个关键组成部分:
1. 一个在图文对数据上训练的基础图文转换模型。
2. 空间-时间卷积层和注意力层(attention layers),用于将网络扩展到覆盖时间维度。
3. 一个帧插值网络,用于高帧率视频生成。
图 6 Make-A-Video 管道示意图(
Singer 等人
于
2022 年
发表
)
最终的视频推理方案可以表述为:
其中:
是CLIP的文本编码器,令
,它负责对输入文本进行编码。
是先验模块,基于文本嵌入
及BPE编码后的文本
生成图像嵌入
,即
。这部分是在文本-图像配对数据集上训练的,而在视频数据上未进行微调。
是时空解码器,用于生成一系列共16帧低分辨率(64x64像素)的RGB图像序列
。
是帧间插值网络,通过在生成帧之间插值来提高有效帧率。这是一个针对视频上采样任务中的缺失帧预测而进行微调的模型。
和
分别为空间和时空超分辨率模型,分别将图像分辨率提升至
和
。
时空超分辨率层包含伪三维卷积层(pseudo-3D convo layers)和伪三维注意力层(pseudo-3D attention layers):
伪三维卷积层:每个空间二维卷积层(从预训练的图像模型初始化)后接一个时间维度的一维卷积层(初始化为恒等函数)。概念上,二维卷积层首先生成多个帧,然后将这些帧重塑为视频片段。
伪三维注意力层:在每个(预训练过的)空间注意力层之后堆叠并使用一个时间注意力层,以此近似完整的时空注意力层。
图 7 伪三维卷积(左)和注意力(右)层的工作原理示意
(
Singer 等人
于
2022 年发表
)
其中输入张量
(分别对应批量大小、通道数、帧数、高度和宽度);而
是在时间维度和空间维度之间进行交换的操作;flatten(.) 是一个矩阵操作,用于将
转换为
的形式,而 flatten
.
则执行逆向转换过程。
在训练过程中,Make-A-Video 管道的不同组件独立训练:
1. 解码器
、先验
以及两个超分辨率组件
、
首先仅使用图像进行训练,不依赖配对的文本数据。
2. 接下来添加新的时间维度层,初始设置为恒等函数,然后在未标注的视频数据上进行微调。
Tune-A-Video 通过扩展预训练的图像扩散模型实现了单次视频调整:给定包含
帧的视频
以及与其相关的描述性提示
,任务是基于稍作编辑且相关的文本提示
生成一个新的视频
。例如,
“一名男子正在滑雪” 可以拓展为
“蜘蛛侠在海滩上滑雪”。Tune-A-Video 主要应用于物体编辑、背景更改及风格迁移。
除了将二维卷积层扩充至三维,Tune-A-Video 中的 U-Net 架构还整合了 ST-Attention(ST-Attn,时空注意力)模块来捕捉时序一致性,通过查询前一帧中的相关位置。对于某一帧
的潜在特征,前一帧
和首帧
投影到查询向量
、键向量
和值向量
上,ST-Attn 定义如下:
图 8 Tune-A-Video 架构概述。在采样阶段之前,首先进行轻量级的单视频微调阶段。请注意,由于整个时序自注意力(T-Attn)层是新添加的,所以会进行微调,但在微调过程中只更新 ST-Attn 和 Cross-Attn 中的查询投影部分,以保持先前文本到图像的知识。ST-Attn 提高了时空一致性,而 Cross-Attn 则细化了文本与视频的对齐关系(
Wu 等人
于
2023 年
发表
)
G
en-1 模型(
Runway 公司出品)致力于实现根据文本输入来编辑指定视频的任务。
该模型针对视频结构和内容的分解条件生成过程进行了优化设计,但实际上要明确区分并处理这两者颇具挑战性。
内容
指代视频的外观表现和语义属性,这部分内容从文本中抽样用于条件编辑。帧的 CLIP 嵌入是内容的良好表示形式,而且在很大程度上与结构特征保持正交。
结构
描绘了视频中的几何形态和动态变化,包括物体形状、位置及随时间变化的情况,这部分信息从输入视频中抽样获取。可能利用诸如深度估计等特定任务的辅助信息(如在合成人物视频场景中的人体姿势或面部特征点信息)来进一步理解结构特征。
Gen-1 模型架构上的调整比较规范,即在每个残差块的二维空间卷积层之后追加一层一维时间卷积层,并在每个注意力块的二维空间注意力层之后增加一维时间注意力模块。在训练期间,结构变量
会与扩散潜变量
连接在一起,其中内容变量
在交叉注意力层中得到体现。在推理时刻,通过预设转化方法,将 CLIP 文本嵌入转化为 CLIP 图像嵌入。
图 9 Gen-1 模型训练流程概述(
Esser 等人
于
2023 年
发表
)
Video LDM 首先训练一个基于 LDM(潜在扩散模型)的图像生成器,接着对模型进行微调以产出带有时间维度的视频。微调阶段仅针对新增加的时间层在编码后的图像序列上实施。在 Video LDM(参照图10)中的时间层集合
会与已存在的且在微调过程中保持固定的的空间层
交替堆叠。也就是说,我们只对新引入的参数
进行微调,而预先训练好的图像主体模型参数
则不作改动。
视频 LDM 的工作流程首先是按照低帧率生成关键帧,之后通过两阶段的潜在帧插值过程提升帧率。
输入时长为
的序列被视为基础图像模型
的一批图像(即
),随后这些图像会被转换为适应于时间层
的视频格式。有一个跳跃连接使得时间层输出
通过一个可学习的合并参数
与空间输出
结合在一起。在实际应用中,视频 LDM 实现了两种类型的时间混合层:(1) 时间注意力机制和 (2) 基于 3D 卷积的残差块结构。
图 10 针对图像合成预训练的 LDM 被扩展为视频生成器。其中,
、
、
、
和
分别代表批次大小、序列长度、通道数、高度和宽度。
是一个可选的条件/上下文帧(
Blattmann 等人
于
2023 年发表
)
然而,LDM(Latent Diffusion Model)预训练自编码器存在一个问题,即它仅处理过静态图像而非视频。若直接将其应用于视频生成,则可能导致帧间闪烁效应且缺乏良好的时间一致性。为此,Video LDM 在解码器中添加了额外的时间层,并通过基于 3D 卷积构建的逐块时间判别器,在视频数据上进行了微调,而编码器保持不变。如此一来,我们仍能复用预训练的 LDM。在时间解码器的微调过程中,冻结的编码器独立处理视频中的每一帧,并通过视频感知的判别器确保帧间的重建具有时间一致性。
图 11 视频潜在扩散模型中自编码器的训练流程。解码器经过微调以具备跨帧的时间一致性,这得益于新增的时间判别器,而编码器则保持冻结状态(
Blattmann 等人于 2023 年发表
)