八千字干货:OpenAI 安全系统负责人亲自教你视频生成模型

作者 | 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 年提出了一种特殊的预测参数化方法(其中 )。相较于参数化,这种方法已被证明有助于避免视频生成中的色彩偏移问题。




处理空间维度:
处理时间维度:

一个冻结状态的 T5 文本编码器,用于提供作为条件输入的文本嵌入。 一个基础视频扩散模型。 交错的空间和时间超分辨率扩散模型的级联,其中包括 3 个 TSR(时间超分辨率)和 3 个 SSR(空间超分辨率)组件。
注解:
扩散模型是一种深度学习技术,用于生成高质量的数据样本,如视频和图像。
TSR(Temporal Super-Resolution)指的是提高视频帧率的技术,增强视频在时间维度上的连续性和流畅度。
SSR(Spatial Super-Resolution)则是指提高视频分辨率的技术,使得图像在空间维度上的细节更加丰富清晰。

图 3 Imagen Video 中的级联采样流程。实际上,文本嵌入会被注入到所有组件中,而不仅仅是在基础模型中(Ho 等人于 2022 年发表)



适应图像模型以生成视频
另一种显著的扩散视频建模方法是对预训练的图文扩散模型进行“扩展”,即插入时间层,之后可以选择仅针对视频数据微调新层,甚至完全避免额外训练。新模型继承了文本-图片配对(text-image pairs)的先验知识,从而有助于减轻对文本-视频配对(text-video pair)数据的需求。
在视频数据上进行微调
Make-A-Video 通过扩展预训练的扩散图像模型引入时间维度,包含三个关键组成部分:
1. 一个在图文对数据上训练的基础图文转换模型。
2. 空间-时间卷积层和注意力层(attention layers),用于将网络扩展到覆盖时间维度。
3. 一个帧插值网络,用于高帧率视频生成。

图 6 Make-A-Video 管道示意图(Singer 等人于 2022 年发表)
最终的视频推理方案可以表述为:
其中:
表示输入的文本内容。 是经过BPE编码后的文本数据。 是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 年发表)
Gen-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 年发表)
类似于 Video LDM,Stable Video Diffusion(SVD)的架构设计同样基于在每层空间卷积和注意力层之后插入时间层的 LDM,但 SVD 会对整个模型进行微调,其训练 Video LDM 涉及三个阶段:
1. 文本到图像的预训练(Text-to-image pretraining)至关重要,有助于提升质量和遵循提示的能力。
2. 视频预训练(Video pretraining)最好单独进行,并理想情况下应在更大规模、精心策划的数据集上进行。
3. 高质量视频微调(High-quality video finetuning)适用于较小规模且预先配有字幕的高保真视频。
SVD 架构特别强调了数据集策划在模型性能上的关键作用。设计者应用了一套剪辑检测流水线来获取每个视频更多的剪辑片段,然后运用了三种不同的字幕生成模型:(1) CoCa 用于中间帧,(2) V-BLIP 用于生成视频字幕,以及(3)基于前两种字幕的 LLM 字幕生成方法。
接下来,设计者通过以下方式不断改进视频数据集:移除动作较少(通过 2fps 下计算出的低光流分数筛选)、过多文本出现(利用光学字符识别技术识别包含大量文本的视频)或普遍审美价值较低(使用 CLIP 嵌入标注每个片段的第一、中间和最后一帧,并计算美学得分及文本-图像相似性)的片段。实验表明,经过过滤的高质量数据集即使规模较小也能带来更好的模型表现。
生成远距离关键帧后,再通过时间超分辨率插值来维持高质量的时间一致性是一项主要挑战。Lumiere 则采用了时空 U-Net(STUNet)架构,该架构通过单次传递一次性生成视频的整个时间跨度,消除了对 TSR(时间超分辨率)组件的依赖。STUNet 在时间和空间维度上对视频进行下采样,因此昂贵的计算操作在一个紧凑的时间-空间潜在空间内进行。

图 12 Lumiere 去掉了 TSR(时间超分辨率)模型。受内存限制,膨胀的 SSR 网络只能在视频短片段上运行,因此 SSR 模型会针对一组较短但有重叠的视频片段进行操作(Bar-Tal 等人于 2024 年发表)
STUNet 将预训练的文本到图像 U-Net 扩大化,使其能够在时间和空间两个维度上对视频进行下采样和上采样。基于卷积的模块由预训练的文本到图像层组成,随后是一个因子分解的空间-时间卷积。而在最粗略层级的 U-Net 中,注意力模块包含了预训练的文本到图像层,紧随其后的则是时间注意力机制。进一步的训练只针对新添加的层进行。

图 13 (a) 空间-时间 U-Net(STUNet),(b) 基于卷积的模块,以及(c) 基于注意力的模块的架构(Bar-Tal 等人于 2024 年发表)
无训练适应:预训练模型无需训练即可生成视频
令人惊讶的是,有一种方法可以无需任何训练就能调整预训练的文本到图像模型以输出视频!
如果我们简单地随机采样一系列潜在编码(latent code),然后构建相应解码图像的视频,则无法保证时间上物体和语义的一致性。Text2Video-Zero 通过向预训练的图像扩散模型添加两项关键机制来实现零样本、无训练视频生成,从而确保时间一致性:
1. 动态运动引导的潜在编码序列采样:采用运动动力学(motion dynamics)方式采样潜在编码序列,以保持全局场景和背景随时间的一致性;
2. 帧级自注意力重编程:使用每一帧对首帧的新交叉帧注意力机制(new cross-frame attention)重新配置帧级别的自注意力,以此来维持前景对象的上下文、外观和身份特征。

图 14 Text2Video-Zero 管道概览(Khachatryan 等人于 2023 年发表)
采样包含运动信息的潜在变量序列的过程时,按以下步骤描述:

整套流程首先从随机采样的第一帧开始,通过预先训练的图像扩散模型逐步生成后续帧的潜在编码。在此过程中,针对每一帧加入运动信息,通过变形操作沿预定义的方向移动场景元素,最后运用 DDIM 正向传播步骤还原出连贯且带有动态变化的图像序列。
此外,Text2Video-Zero 借鉴了首帧参考机制,将预训练的 Stable Diffusion 模型中的自注意力层替换为新的跨帧注意力机制,旨在确保在生成视频的过程中保持前景物体的外观、形状和身份信息的一致性。

(可选)可以使用背景蒙版进一步优化并提高背景一致性。比如,我们采用某种现有方法获取第帧对应的前景蒙版,并在扩散步骤处,根据背景矩阵合并实际和变形的潜在编码:

这里,代表实际的潜在编码,而是在背景上的扭曲潜在编码;是一个超参数,在实验中论文设置为。
Text2video-zero 可以与 ControlNet 结合使用,在每次扩散时间步长内,对每一帧应用预训练的 ControlNet 复制分支,并将 ControlNet 分支输出添加到主 U-net 的跳过连接中。
ControlVideo 旨在根据文本提示和一组运动序列(例如深度图或边缘图),来生成视频。它改编自 ControlNet,并增加了三个新机制:
1. 跨帧注意力(Cross-frame attention):在自注意力模块中实现全跨帧交互。不同于 Text2Video-zero 仅配置所有帧关注首帧的做法,该机制将各个时间步长的潜在帧映射到、、矩阵中,实现了所有帧之间的相互作用。
2. 交错帧平滑器(Interleaved-frame smoother)是一种利用帧间插值机制,以减少闪烁效应的方法。在每个时间步长,平滑器会对偶数帧或奇数帧进行插值,以平滑它们对应的三帧片段。注意,经过平滑处理后,帧的数量会随时间递减。
3. 分层采样器(Hierarchical sampler)能在内存限制下生成具有时间一致性的长视频。一段长视频被分割成多个短片段,每个片段选择一个关键帧。模型预先全跨帧注意力生成这些关键帧以保证长期连贯性,然后依次根据关键帧合成相应的短片段。

图 15 ControlVideo 的整体框架概览 (Zhang 等人于 2023 年发表)
基于 Lilian Weng 的要求,我们在开头便加入了引用链接,但也建议感兴趣的读者到 Weng 的主页阅读原文或其他文章,深度感触她的精彩分享。
[1] Cicek et al. 2016. “3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation.”
[2] Ho & Salimans, et al. “Video Diffusion Models.” 2022 | webpage
[3] Bar-Tal et al. 2024 “Lumiere: A Space-Time Diffusion Model for Video Generation.”
[4] Brooks et al. “Video generation models as world simulators.” OpenAI Blog, 2024.
[5] Zhang et al. 2023 “ControlVideo: Training-free Controllable Text-to-Video Generation.”
[6] Khachatryan et al. 2023 “Text2Video-Zero: Text-to-image diffusion models are zero-shot video generators.”
[7] Ho, et al. 2022 “Imagen Video: High Definition Video Generation with Diffusion Models.”
[8] Singer et al. “Make-A-Video: Text-to-Video Generation without Text-Video Data.” 2022.
[9] Wu et al. “Tune-A-Video: One-Shot Tuning of Image Diffusion Models for Text-to-Video Generation.” ICCV 2023.
[10] Blattmann et al. 2023 “Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models.”
[11] Blattmann et al. 2023 “Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets.”
[12] Esser et al. 2023 “Structure and Content-Guided Video Synthesis with Diffusion Models.”
[13] Bar-Tal et al. 2024 “Lumiere: A Space-Time Diffusion Model for Video Generation.”

