视频生成的扩散模型(深度学习)

过去几年,扩散模型在图像合成方面取得了显著成果。现在,研究界开始研究一项更艰巨的任务——将其用于视频生成。这项任务本身是图像情况的超集,因为图像是1帧的视频,而且它更具挑战性,因为:

  • 它对时间上跨帧的时间一致性有额外的要求,这自然要求将更多的世界知识编码到模型中。
  • 相比于文本或图像,收集大量高质量、高维的视频数据更加困难。

视频生成建模

参数化和采样

是从真实数据分布中采样的数据点。现在我们在时间上添加少量的高斯噪声,从而创建一系列噪声变化,表示为,随着噪声量增加而t增加,最后。加噪前向过程为高斯过程。设定义高斯过程的可微噪声过程。设定义高斯过程的可微噪声过程:

代入,满足,有:

假设对数信噪比为,我们可以将DDIMSong 2020表示为:

有一个特殊的-prediction()参数化由Salimans & Ho (2022)提出,与其他方法(-parameterization)相比,它已被证明有助于避免视频生成中的颜色偏移。这个-parameterization是通过角坐标的一个技巧得出的。首先,我们定义,因此我们有可以写成:

然后我们可以推断出:

DDIM被更新为:

在这里-parameterization是为了预测在视频生成的情况下,我们需要扩散模型运行多步上采样来延长视频长度或提高帧速率。这需要采样第二个视频的能力以第一条件为条件,在这里可能是自回归扩展或者是视频中间缺失的帧以低帧率。采样需要条件除了其自身对应的噪声变量之外。视频扩散模型(VDM;Ho & Salimans 2022)提出了使用调整后的去噪模型的重建引导方法,使得可以适当调节

在这里是重建由去噪模型提供。并且是一个权重因子,而且很大可以提高样本质量。请注意,也可以同时对低分辨率视频进行条件处理,以使用相同的重建引导方法将样本扩展至高分辨率。

模型架构:3D U-Net和DiT

与文本到图像的扩散模型类似,U-netTransformer仍然是两种常见的架构选择。谷歌基于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文本编码器提供文本嵌入作为条件输入。
  • 一个基本的视频传播模型。
  • 交错的空间和时间超分辨率扩散模型的级联,包括3TSR(时间超分辨率)和3SSR(空间超分辨率)组件。

基础去噪模型同时对所有具有共享参数的帧执行空间操作,然后时间层跨帧混合激活以更好地捕捉时间连贯性,这被发现比帧自回归方法效果更好。

SSRTSR模型都是以通道连接噪声数据的上采样输入为条件。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)扩展了一个预先训练的图像扩散模型,以实现一次性视频调整:给定一个包含框架,,并附有描述性提示,任务是生成一个新的视频根据微调和相关的文本提示。例如,=”A man is skiing”可以扩展为= “Spiderman is skiing on the beach”。Tune-A-Video 旨在用于对象编辑、背景更改和风格转换。除了扩大2D卷积层之外,Tune-A-VideoU-Net架构还结合了ST-Attention(时空注意)模块,通过查询前几帧中的相关位置来捕获时间一致性。给定帧的潜在特征、前几帧以及第一帧预计查询,键和值ST-attention定义为:

RunwayGen-1模型(Esser等人,2023)旨在根据文本输入编辑给定视频。它分解了对视频结构和内容的考虑生成条件。然而,要对这两个方面进行清晰的分解并不容易。

  • 内容指视频的外观和语义,从文本中采样以进行条件编辑。帧的CLIP嵌入是内容的良好表示,并且与结构特征基本保持正交。
  • 结构描述几何和动态,包括形状、位置、物体的时间变化,以及是从输入视频中采样的。可以使用深度估计或其他特定于任务的辅助信息(例如,用于人体视频合成的人体姿势或面部特征点)。

Gen-1中的架构变化非常标准,即在其残差块中在每个2D空间卷积层之后添加1D时间卷积层,在其注意力块中在每个2D空间注意力块之后添加1D时间注意力块。在训练过程中,结构变量与扩散潜变量连接,其中内容变量在交叉注意力层中提供。在推理时,剪辑嵌入通过预先转换将CLIP文本嵌入转换为CLIP图像嵌入。

视频LDM(Blattmann等人,2023)首先训练LDM(潜在扩散模型)图像生成器。然后对模型进行微调,以生成添加了时间维度的视频。微调仅适用于编码图像序列上这些新添加的时间层。时间层在视频LDM中与现有的空间层交错在微调过程中保持冻结状态。也就是说,我们只微调新参数但不是预先训练的图像骨干模型参数Video LDM的流水线首先以低fps生成关键帧,然后通过2步潜在帧插值来提高fps。长度的输入序列被解释为一批图像(即)为基础图像模型然后重新塑造成视频格式时间层。有一个跳跃连接导致时间层输出的组合和空间输出通过学习合并参数实践中实现了两种类型的时间混合层:(1)时间注意力和(2)基于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仅配置所有帧来关注第一帧。
  • 交错帧平滑器:是一种在交替帧上使用帧插值来减少闪烁效果的机制。在每个时间步,平滑器会插入偶数或奇数帧以平滑其对应的三帧剪辑。请注意,在平滑步骤之后,帧数会随时间减少。
  • 分层采样器:利用分层采样器在内存受限的情况下实现具有时间一致性的长视频。长视频被分成多个短片段,每个片段都有一个关键帧。该模型使用完全跨帧注意力预生成这些关键帧以实现长期一致性,并且每个相应的短片段都根据关键帧按顺序合成。