视频生成的扩散模型(深度学习)
过去几年,扩散模型在图像合成方面取得了显著成果。现在,研究界开始研究一项更艰巨的任务——将其用于视频生成。这项任务本身是图像情况的超集,因为图像是1
帧的视频,而且它更具挑战性,因为:
- 它对时间上跨帧的时间一致性有额外的要求,这自然要求将更多的世界知识编码到模型中。
- 相比于文本或图像,收集大量高质量、高维的视频数据更加困难。
视频生成建模
参数化和采样
让
代入
假设对数信噪比为DDIM
Song 2020
表示为:
有一个特殊的-prediction
(Salimans & Ho (2022)
提出,与其他方法(-parameterization
)相比,它已被证明有助于避免视频生成中的颜色偏移。这个-parameterization
是通过角坐标的一个技巧得出的。首先,我们定义
然后我们可以推断出:
DDIM
被更新为:
在这里-parameterization
是为了预测VDM;Ho & Salimans 2022
)提出了使用调整后的去噪模型的重建引导方法,使得
在这里
模型架构:3D U-Net和DiT
与文本到图像的扩散模型类似,U-net
和Transformer
仍然是两种常见的架构选择。谷歌基于U-net
架构发表了一系列扩散视频建模论文,而OpenAI
最近提出的Sora
模型则利用了Transformer
架构。
VDM
(Ho & Salimans
等人,2022
年)采用标准扩散模型设置,但采用适合视频建模的架构。它扩展了2D U-net
以适用于3D
数据(Cicek
等人,2016
年),其中每个特征图为帧 x
高度 x
宽度 x
通道的4D
张量。此3D U-net
在空间和时间上进行分解,这意味着每一层仅在空间或时间维度上运行,但不能同时在两个维度上运行:
- 处理空间:1.每个旧的
2D U-net
中的2D
卷积层都被扩展为仅空间的3D
卷积;准确地说,3x3
卷积变成了1x3x3
卷积。2.每个空间注意力块仍然作为空间注意力,其中第一个轴(frames
)被视为批次维度。 - 处理时间:每个空间注意力块后都会添加一个时间注意力块。它对第一个轴(
frames
)进行注意,并将空间轴视为批处理维度。相对位置嵌入用于跟踪帧的顺序。时间注意力块对于模型捕捉良好的时间连贯性非常重要。
Imagen Video
(Ho
等人,2022
年)建立在一系列扩散模型之上,以提高视频生成质量,并升级到以24 fps
的速度输出1280x768
视频Imagen Video架构由以下组件组成,总共有7
个扩散模型。
- 冻结的
T5
文本编码器提供文本嵌入作为条件输入。 - 一个基本的视频传播模型。
- 交错的空间和时间超分辨率扩散模型的级联,包括
3
个TSR
(时间超分辨率)和3
个SSR
(空间超分辨率)组件。
基础去噪模型同时对所有具有共享参数的帧执行空间操作,然后时间层跨帧混合激活以更好地捕捉时间连贯性,这被发现比帧自回归方法效果更好。
SSR
和TSR
模型都是以通道连接噪声数据SSR
通过可学习的双线性差值进行上采样,而TSR
通过重复帧或填充空白帧进行上采样。Imagen Video
也应用了渐进式蒸馏来加速采样,每次蒸馏迭代可以将所需的采样步骤减半。他们的实验能够将所有7
个视频扩散模型蒸馏到仅需8
个采样步骤,而不会明显损失感知质量。为了实现更好的扩展效果,Sora
(Brooks
等人,2024
年)利用DiT
(扩散的Tranformer
)架构,该架构对视频和图像潜在代码的时空块进行操作。视觉输入表示为时空块序列,这些时空块充当Transformer
输入token
。
调整图像模型来生成视频
扩散视频建模的另一种方法是通过插入时间层来“膨胀”预先训练的图像到文本扩散模型,然后我们可以选择仅在视频数据上微调新层,或者完全避免额外训练。新模型继承了文本-图像对的先验知识,因此它可以帮助减轻对文本-视频数据对的需求。
视频数据微调
Make-A-Video
(Singer
等人,2022
年)扩展了具有时间维度的预训练扩散图像模型,该模型由三个关键部分组成:
- 在文本-图像数据上训练的基本文本到图像模型。
- 时空卷积和注意力层扩展网络以覆盖时间维度。
- 用于高帧率生成的帧插值网络。
最终的视频推理方案可以表述为:
在这里:
是文本。 是`BPE`编码的文本。 是`CLIP`文本编码器, 。 是先验,生成图像嵌入 、给定文本嵌入 和`BPE`编码的文本 ,这部分是在文本图像对上训练的,而不是在视频数据上微调的。 是时空解码器,可生成`16`帧,其中每帧都是低分辨率 RGB图像 。 是帧差值网络,通过在生成的帧之间进行差值来提高有效帧速率。这是一个针对预测视频采样蒙版帧任务的微调模型。 是空间和时间超分辨率模型,分别将图像分辨率提高到 和 。 即为最终生成的视频。
时空SR
层包含伪3D
卷积层和伪3D
注意力层:
- 伪3D卷积层:每个空间
2D
卷积层(从预训练图像模型初始化)后面都有一个时间1D
层(初始化为恒等函数)。从概念上讲,卷积2D
层首先生成多个帧,然后将这些帧重塑为视频片段。 - 伪3D注意力层:在每个(预训练的)空间注意层之后,堆叠一个时间注意力层,并用于近似完整的时空注意力层。
它们可以表示为:
输入张量Make-A-Video
流程的不同组件会进行独立训练。
- 解码器
,事先的 以及两个超分辨率组件 首先仅对图像进行训练,没有配对的文本。 - 接下来添加新的时间层,将其初始化为身份函数,然后对未标记的视频数据进行微调。
Tune-A-Video
(Wu
等人,2023
年)扩展了一个预先训练的图像扩散模型,以实现一次性视频调整:给定一个包含2D
卷积层之外,Tune-A-Video
的U-Net
架构还结合了ST-Attention(时空注意)模块,通过查询前几帧中的相关位置来捕获时间一致性。给定帧的潜在特征ST-attention
定义为:
Runway
的Gen-1
模型(Esser
等人,2023
年)旨在根据文本输入编辑给定视频。它分解了对视频结构和内容的考虑
- 内容
指视频的外观和语义,从文本中采样以进行条件编辑。帧的 CLIP
嵌入是内容的良好表示,并且与结构特征基本保持正交。 - 结构
描述几何和动态,包括形状、位置、物体的时间变化,以及 是从输入视频中采样的。可以使用深度估计或其他特定于任务的辅助信息(例如,用于人体视频合成的人体姿势或面部特征点)。
Gen-1
中的架构变化非常标准,即在其残差块中在每个2D
空间卷积层之后添加1D
时间卷积层,在其注意力块中在每个2D
空间注意力块之后添加1D
时间注意力块。在训练过程中,结构变量CLIP
文本嵌入转换为CLIP
图像嵌入。
视频LDM
(Blattmann
等人,2023
年)首先训练LDM
(潜在扩散模型)图像生成器。然后对模型进行微调,以生成添加了时间维度的视频。微调仅适用于编码图像序列上这些新添加的时间层。时间层LDM
中与现有的空间层交错Video LDM
的流水线首先以低fps
生成关键帧,然后通过2
步潜在帧插值来提高fps
。长度的输入序列3D
卷积的残差块。
但是,LDM
的预训练自动编码器仍然存在一个问题,它只能看到图像而看不到视频。如果天真地使用它来生成视频,可能会导致闪烁伪影,并且没有良好的时间连贯性。因此,视频LDM
在解码器中添加了额外的时间层,并使用由3D
卷积构建的逐块时间鉴别器对视频数据进行微调,而编码器保持不变,以便我们仍然可以重复使用预训练的LDM
。在时间解码器微调期间,冻结的编码器会独立处理视频中的每一帧,并使用视频感知鉴别器强制跨帧进行时间连贯的重建。
与视频LDM
类似,稳定视频扩散(SVD;Blattmann
等人,2023
年)的架构设计也是基于LDM
,在每个空间卷积和注意力层之后插入时间层,但SVD
会对整个模型进行微调。训练视频LDM
分为三个阶段:
- 文本到图像的预训练很重要,有助于提高质量和快速跟进。
- 视频预训练有利于分离,理想情况下应该在更大规模、精选的数据集上进行。
- 高质量视频微调适用于较小、预先带有高视觉保真度字幕的视频。
SVD
特别强调了数据集管理在模型性能中的关键作用。他们应用了剪切检测管道来获取每个视频的更多剪切,然后应用了三种不同的字幕模型:(1)CoCa
用于中间帧,(2)V-BLIP
用于视频字幕,(3)基于前两个字幕的LLM
字幕。然后,他们能够继续改进视频数据集,方法是删除运动较少的剪辑(通过以2fps
计算的低光流分数进行过滤)、过多的文本存在(应用光学字符识别来识别包含大量文本的视频)或通常美学价值较低的剪辑(使用CLIP
嵌入注释每个剪辑的第一帧、中间帧和最后一帧并计算美学分数和文本-图像相似性)。实验表明,经过过滤的更高质量的数据集可以提高模型质量,即使这个数据集小很多。首先生成远距离关键帧,然后添加具有时间超分辨率的插值,其关键挑战在于如何保持高质量的时间一致性。Lumiere
(Bar-Tal
等人,2024
年)采用了时空U-Net
(STUNet
)架构,该架构通过传递一次性生成视频的整个时间,从而消除了对TSR
(时间超分辨率)组件的依赖。STUNet
在时间和空间维度上对视频进行下采样,因此在紧凑的时空潜在空间中进行昂贵的计算。
STUNet
扩展了预训练的文本到图像的U-net
,使其能够在时间和空间维度上对视频进行上/下采样。基于卷积的块由预训练的文本到图像层组成,后跟分解的空间时间卷积。最粗略的U-Net
级别的基于注意力的块包含预训练的文本到图像,后跟时间注意力。进一步的训练只发生在新添加的层上。
无需训练的适应性
令人惊讶的是,可以采用预先训练的文本转图像模型来输出视频,而无需任何训练。如果我们天真地随机采样潜在代码序列,然后构建解码后的相应图像的视频,则无法保证对象和语义在时间上的一致性。Text2Video-Zero
(Khachatryan
等人,2023
年) 通过增强预训练的图像扩散模型,实现零样本、无需训练的视频生成,该模型具有两种实现时间一致性的关键机制:
- 对具有运动动态的潜在代码序列进行采样,以保持全局场景和背景时间的一致性。
- 重新编程帧级自注意力,在第一帧上使用每帧的新的跨帧注意力,以保留前景对象的上下文、外观和身份。
对一系列潜在变量进行采样的过程,
- 确定方向
用于控制全局场景和相机运动;默认情况下,我们设置 。还定义一个超参数 控制整体运动量。 - 首先随机采样第一帧的潜在代码,
。 - 履行
DDIM
使用预先训练的图像扩散模型(例如本文中的稳定扩散(SD
)模型)进行后向更新步骤,并获取相应的潜在代码,在这里 。 - 对于潜在代码序列中的每一帧,我们使用运动平移和扭曲操作,其定义为
去得到 。 - 最后将
DDIM
应用于所有的,去得到 。
此外,Text2Video-Zero
用一种新的跨帧注意力机制(参考第一帧)取代了预训练SD
模型中的自注意力层。其目的是在整个生成的视频中保留有关前景对象的外观、形状和身份的信息。
可以使用背景蒙版进一步平滑背景并提高背景一致性。假设我们获得相应的前景蒙版
在这里Text2video-zero
可以与ControlNet
结合使用,其中ControlNet
预训练复制分支在每个帧上使用ControlNet
分支输出添加到主U-net
的跳过连接。
ControlVideo
(Zhang
等人,2023
年)旨在生成以文本提示为条件的视频ControlNet
,并添加了三种新机制:
- 跨帧注意力:在自注意力模块中添加完全跨帧交互。它通过将所有时间步中的潜在帧映射到
矩阵,不同于 Text2Video-zero
仅配置所有帧来关注第一帧。 - 交错帧平滑器:是一种在交替帧上使用帧插值来减少闪烁效果的机制。在每个时间步
,平滑器会插入偶数或奇数帧以平滑其对应的三帧剪辑。请注意,在平滑步骤之后,帧数会随时间减少。 - 分层采样器:利用分层采样器在内存受限的情况下实现具有时间一致性的长视频。长视频被分成多个短片段,每个片段都有一个关键帧。该模型使用完全跨帧注意力预生成这些关键帧以实现长期一致性,并且每个相应的短片段都根据关键帧按顺序合成。