PhoenixPeng's blog.

视频扩散模型——7.Latte

2024/03/23

一、介绍

  扩散模型是强大的深度生成模型,适用于内容创建中的各种任务,包括图像到图像生成、文本到图像生成和 3D对象生成等。与这些在图像中的成功应用相比,生成高质量视频仍然面临着重大挑战,这主要归因于视频的复杂性和高维性,这些视频在高分辨率帧中包含复杂的时空信息

  同时,研究人员揭示了骨干网络革命对于扩散模型成功的重要性。依赖于卷积神经网络(CNN)的 U-Net在图像和视频生成工作中占据了突出的地位。相反,一方面,DiT 和 U-ViT 将 ViT  的架构调整为用于图像生成的扩散模型,并取得了良好的性能。此外,DiT 已经证明 UNet 的归纳偏差对于潜在扩散模型的性能并不重要。另一方面,基于注意力的架构提供了一种直观的选项,用于捕获视频中的远程上下文关系。因此,一个非常自然的问题出现了:基于 Transformer 的潜在扩散模型能否增强真实视频的生成?

  在本文中,作者将提出了一种用于视频生成的新型Latent Diffusion Transformer,即 Latte,它采用video Transformer作为骨干。 Latte 采用预先训练的变分自动编码器将输入视频编码为潜在空间中的特征,其中从编码特征中提取token。然后应用一系列 Transformer 块对这些令牌进行编码。考虑到空间和时间信息之间的固有差异以及从输入视频中提取的大量token,如图2所示,Latte从分解输入视频的空间和时间维度的角度设计了四种高效的基于Transformer的模型变体。

  用于视频生成的基于 Transformer 的潜在扩散模型可能会表现出不同的特征,因此需要确定该架构的最佳设计选择。因此,在本文中进行了全面的消融分析,包括视频剪辑patch嵌入、模型变体、时间步长类信息注入、时间位置嵌入和学习策略。该分析使 Latte 能够生成具有时间连贯内容的逼真视频(见图 1),并在四个标准视频生成基准上实现最先进的性能,包括 FaceForensics、SkyTimelapse、UCF101和 Taichi-HD 。值得注意的是,Latte 的性能远远优于最先进的技术,实现了最佳的FVD、FID和IS 。此外, Latte 还能够扩展到文本到视频生成任务,与当前的 T2V 模型相比,它也取得了可比的结果。

二、方法

  本文仍然是沿用stable diffusion的训练以及推理框架,并延续DiT的思想,去训练具有学习的逆过程协方差 \(\textcolor{blue}{Σ_θ}\) 的扩散模型,优化完整的 \(\textcolor{blue}{D_{KL}}\) 项,从而使用完整的 \(\textcolor{blue}{L}\)(表示为 \(\textcolor{blue}{L_{vlb}}\))进行训练。

  LDM 扩展到视频生成:

  1️⃣编码器 E 用于将每个视频帧压缩到潜在空间中;

Latte使用的是SD的一个二维autoencoder,不是将整个视频进行压缩,而是对视频的每一帧进行压缩,帧数是不变的

  2️⃣扩散过程在视频的潜在空间中运行,以对潜在的空间和时间信息进行建模。

  在这项工作中,\(\textcolor{blue}{ε_θ}\) 是用 Transformer 实现的。通过使用 \(\textcolor{blue}{L_{simple}}\)和 \(\textcolor{blue}{L_{vlb}}\) 来训练所有模型。

1.Latte的模型变体

  Latte 的模型变体如图 2 所示,提出了四种 Latte 模型变体来有效捕获视频中的时空信息。

  👩‍🏭Variant 1:如图 2 (a) 所示,该Variant 1的 Transformer 主干包括两种不同类型的 Transformer 块:空间 Transformer 块和时间 Transformer 块。前者专注于仅捕获共享相同时间索引的token之间的空间信息,而后者以“交错融合”的方式捕获跨时间维度的时间信息。

  假设在潜在空间 \(\textcolor{blue}{V_L ∈ R^{F×H×W×C}}\) 中有一个视频剪辑。首先将 \(\textcolor{blue}{V_L}\) 转换为token序列,表示为 \(\textcolor{blue}{\hat{z}∈ R^{n_f×n_h×n_w×d}}\)。这里 \(\textcolor{blue}{F}\) 、 \(\textcolor{blue}{H}\) 、 \(\textcolor{blue}{W}\) 和 \(\textcolor{blue}{C}\) 分别表示潜在空间中视频帧的数量、视频帧的高度、宽度和通道。潜在空间中视频剪辑内的token总数为\(\textcolor{blue}{n_f × n_h × n_w}\)\(\textcolor{blue}{d}\) 分别表示每个标记的维度。时空位置嵌入 \(\textcolor{blue}{p}\) 被合并到\(\textcolor{blue}{\hat{z}}\) 中。最后,我们得到 \(\textcolor{blue}{z = \hat{z} + p}\) 作为 Transformer 主干的输入。

  再将 \(\textcolor{blue}{z}\) 重塑为 \(\textcolor{blue}{z_s ∈ R^{n_f×t×d}}\) 作为空间 Transformer 块的输入以捕获空间信息。这里,\(\textcolor{blue}{t = n_h × n_w}\) 表示每个时间索引的token数。随后,包含空间信息的 \(\textcolor{blue}{z_s}\) 被重塑为\(\textcolor{blue}{z_t ∈ R^{t×n_f×d}}\) ,作为时间 Transformer 块的输入,用于捕获时间信息。

  👩🏻‍🌾Variant 2:与Variant 1 中的时间“交错融合”设计相反,该变体利用“后期融合”方法来组合时空信息。如图 2 (b) 所示,Variant 2由与Variant 1相同数量的 Transformer 块组成。与Variant 1 类似,空间 Transformer 块和时间 Transformer 块的输入形状分别为 \(\textcolor{blue}{z_s ∈ R^{n_f×t×d}}\)\(\textcolor{blue}{z_t ∈ R^{t×n_f×d}}\)

  🧙‍♀️Variant 3:Variant 1 和 Variant 2 主要关注 Transformer 块的因式分解。Variant 3 侧重于分解 Transformer 块中的多头注意力。如图 2 (c) 所示,该变体最初仅在空间维度上计算自注意力,然后是时间维度。因此,每个 Transformer 块都会捕获空间和时间信息。与Variant 1 和 Variant 2类似,空间多头自注意力和时间多头自注意力的输入分别为\(\textcolor{blue}{z_s ∈ R^{n_f×t×d}}\)\(\textcolor{blue}{z_t ∈ R^{t×n_f×d}}\)

  💂🏻‍♀️Variant 4:在此变体中,将多头注意力(MHA)分解为两个组件,每个组件利用一半的注意力头,如图 2(d)所示。使用不同的组件在空间和时间维度上分别处理token。这些不同分量的输入形状分别为\(\textcolor{blue}{z_s ∈ R^{n_f×t×d}}\)\(\textcolor{blue}{z_t ∈ R^{t×n_f×d}}\)。一旦计算出两个不同的注意力操作,就将 \(\textcolor{blue}{z_t ∈ R^{t×n_f×d}}\) 重塑为\(\textcolor{blue}{z^{\prime}_t ∈ R^{n_f×t×d}}\)。然后将 \(\textcolor{blue}{z^{\prime}_t}\) 添加到 \(\textcolor{blue}{z_s}\),用作 Transformer 块中下一个模块的输入。

  在 Transformer 主干之后,沿同DiT一样,通过采用标准线性解码器去解码视频token,再进行重塑操作来导出预测噪声和预测协方差。两个输出的形状与输入的形状相同\(\textcolor{blue}{V_L ∈ R^{F×H×W×C}}\)

2.Latte的实证分析

  对 Latte 中的关键组件进行了全面的实证分析,旨在发现将 Transformer 集成为视频生成的潜在扩散模型中的骨干的最佳实践。

2.1 潜在视频剪辑patch embedding

  为了嵌入视频剪辑,作者探索了以下两种方法来分析在token中集成时间信息的必要性,即均匀帧patch嵌入压缩帧patch嵌入

  1️⃣均匀帧patch嵌入:如图 3 (a) 所示,将 ViT中的patch嵌入技术分别应用于每个视频帧。具体地,当从每个视频帧提取非重叠图像块时\(\textcolor{blue}{n_f}\)\(\textcolor{blue}{n_h}\)\(\textcolor{blue}{n_w}\)等价于\(\textcolor{blue}{F}\)\(\textcolor{blue}{\frac{H}{h}}\)\(\textcolor{blue}{\frac{W}{w}}\)。这里,\(\textcolor{blue}{h}\)\(\textcolor{blue}{w}\)分别表示image patch的高度和宽度。

  2️⃣压缩帧patch嵌入:第二种方法是通过将 ViT patch嵌入扩展到时间维度来对潜在视频片段中的时间信息进行建模,如图 3 (b) 所示。沿着时间维度以 \(\textcolor{blue}{s}\) 的步幅提取tubes,然后将它们映射到token。这里,与非重叠均匀帧patch嵌入相比,\(\textcolor{blue}{n_f}\)相当于 \(\textcolor{blue}{\frac{F}{s}}\) 。与前者相比,该方法在patch嵌入阶段本质上融合了时空信息。请注意,在使用压缩帧patch嵌入方法的情况下,额外的步骤需要集成 3D 转置卷积以对输出潜在视频进行时间上采样,遵循标准线性解码器和重塑操作。

2.2 Timestep-class 信息注入

  本文探索了两种将Timestep或class信息集成到模型中的方法。第一种方法是将其视为token,作者将这种方法称为all tokens。第二种方法类似于自适应层归一化(AdaLN)。采用线性回归根据输入 \(\textcolor{blue}{c}\) 计算 \(\textcolor{blue}{γ_c}\)\(\textcolor{blue}{β_c}\),得出方程 \(\textcolor{blue}{AdaLN (h, c) = γ_cLayerNorm(h) + β_c}\),其中 \(\textcolor{blue}{h}\) 表示 Transformer 块内的隐藏嵌入。此外,我们还对 \(\textcolor{blue}{\alpha_c}\) 进行回归,该回归直接应用于 Transformer 块内的任何残差连接 (RCs) 之前,从而得到 \(\textcolor{blue}{RCs(h, c) = α_ch + AdaLN (h, c)}\)将此称为可扩展自适应层归一化(S-AdaLN)。 S-AdaLN的架构如图4a所示

2.3 时间位置嵌入

  时间位置嵌入使模型能够理解时间信号。本文探索了两种方法将时间位置嵌入注入到模型中:1️⃣绝对位置编码方法结合了不同频率的正弦和余弦函数,使模型能够识别每个帧的精确位置视频序列;2️⃣相对位置编码方法采用旋转位置嵌入(RoPE)使模型能够掌握连续帧之间的时间关系

2.4 通过学习策略增强视频生成

  为了确保生成的视频展现出最佳的视觉质量,同时保持时间一致性。本文探讨了结合两种额外的学习策略(即使用预训练模型进行学习使用图像-视频联合训练进行学习)是否可以提高生成视频的质量。

  1️⃣使用预训练模型进行学习:预训练的图像生成模型已经了解了世界的样子。因此,有许多视频生成工作将其模型建立在预先训练的图像生成模型上,以了解世界如何运动。然而,这些工作主要建立在潜在扩散模型中的 U-Net 上。基于 Transformer 的潜在扩散模型的必要性值得探讨。

  具体方法:作者从 ImageNet 上预先训练的 DiT 模型初始化 Latte。但直接从预训练的DiT模型初始化会遇到参数缺失或不兼容的问题。为了解决这些问题,在预训练的 DiT 中,位置嵌入 \(\textcolor{blue}{p ∈ R^{n_h×n_w×d}}\) 应用于每个token。然而,在Latte中,token数是预训练 DiT 模型的 \(\textcolor{blue}{n_f}\) 倍。(视频生成相比图像多一个时间维度)因此,作者在时间上将位置嵌入从 \(\textcolor{blue}{p ∈ R^{n_h×n_w×d}}\) 复制到\(\textcolor{blue}{p ∈ R^{n_f×n_h×n_w×d}}\) 次。此外,预训练的 DiT 包括标签嵌入层,类别数量为 1000。然而,与 ImageNet 相比,所使用的视频数据集要么缺乏标签信息,要么包含的类别数量明显较少。由于Latte的目标是无条件和类条件视频生成,DiT 中的原始标签嵌入层不适合这项任务,因此作者选择直接丢弃 DiT 中的标签嵌入并应用零初始化。

  2️⃣通过图像-视频联合训练进行学习:基于 CNN 的视频扩散模型的先前工作提出了一种联合图像视频训练策略,可以极大地提高生成视频的质量。作者也探讨这种训练策略是否也可以提高基于 Transformer 的视频扩散模型的性能。为了实现视频和图像生成的同步训练,我们将从同一数据集中随机选择的视频帧附加到所选视频的末尾,并且每个帧都是独立采样的。为了确保我们的模型能够生成连续的视频,在时间模块中使用与视频内容相关的token来对时间信息进行建模,而视频末尾的随机帧token被排除在外。

三、实验

1.实验设置

  数据集:Latte主要在四个公共数据集上进行综合实验:FaceForensics、SkyTimelapse、UCF101和 Taichi-HD。本文除了 UCF101 之外,对所有数据集使用训练分割。对于 UCF101,同时使用训练和测试分割。使用特定的采样间隔从这些数据集中提取 16 帧视频片段,每帧大小调整为 256×256 分辨率以进行训练。

  评估指标:在定量比较的评估中,采用三个评估指标:FVD、FID 和 IS。主要关注点是 FVD,因为其基于图像的对应 FID 更符合人类的主观判断。遵循 StyleGAN-V 引入的评估指南,通过分析 2,048 个视频剪辑(每个视频剪辑包含 16 帧)来计算 FVD 分数。仅使用 IS 来评估 UCF101 的生成质量,因为它利用 UCF101 微调的 C3D 模型。

  baseline:Latte与最近的方法进行比较以定量评估结果,包括 MoCoGAN、VideoGPT、MoCoGAN-HD、DIGAN、 StyleGAN-V、PVDM、MoStGAN-V和 LVDM。

  Latte配置:一系列 N 个 Transformer 块用于构建 Latte 模型,每个 Transformer 块的隐藏维度为 D,具有 N 个多头注意力。效仿ViT,在本文中设置具有不同参数数量的 Latte 的四种配置,如表4所示。

  实施细节:使用具有恒定学习率 1 × 10−4 的 AdamW 优化器来训练所有模型。水平翻转是唯一采用的数据增强。遵循生成建模工作中的常见做法,在整个训练过程中维持 Latte 权重的指数移动平均值 (EMA),采用 0.9999 的衰减率。所有报告的结果均直接从 EMA 模型获得。Latte借用了stable diffusion 1.4 中预训练的变分自动编码器。

2.消融实验

  在本节中,使用FaceForensics 数据集上在Latte的不同变体进行实验,其中包括模型变体、视频采样间隔、模型大小对模型性能的影响。

  1️⃣视频剪辑patch嵌入:Latte研究了第 2.1 节中详述的两种视频剪辑patch嵌入方法的影响。在图6e中,压缩帧patch嵌入方法的性能明显落后于均匀帧patch嵌入方法。这一发现与视频理解方法 ViViT 获得的结果相矛盾。作者推测,使用压缩帧补丁嵌入方法会导致时空信号丢失,这使得 Transformer 主干很难学习视频的分布。

  2️⃣Timestep-class信息注入:如图 6f 所示,S-AdaLN 的性能明显优于all tokens。作者认为这种差异可能源于以下事实:all tokens仅向模型的输入层引入时间步长或标签信息,这可能面临在整个模型中有效传播的挑战。相比之下,S-AdaLN 以更自适应的方式为每个 Transformer 块将时间步长或标签信息编码到模型中。这种信息传输方法似乎更有效,可能有助于实现卓越的性能和更快的模型收敛。

  3️⃣时间位置嵌入:图6b说明了两种不同时间位置嵌入方法对模型性能的影响。采用绝对位置嵌入方法往往会比其他方法产生稍微更好的结果

  4️⃣通过学习策略增强视频生成:如图 6c 所示,可以观察到训练的初始阶段极大地受益于 ImageNet 上的模型预训练,从而能够在视频数据集上快速实现高质量的性能。然而,随着迭代次数的增加,使用预训练模型初始化的模型的性能趋于稳定在一定水平附近,这比使用随机初始化的模型要差得多。

  这种现象可以用两个因素来解释:1)ImageNet 上的预训练模型提供了良好的表示,这可能有助于模型在早期阶段快速收敛; 2)ImageNet和FaceForensics之间的数据分布存在显着差异,这使得模型很难将在ImageNet上学到的知识适应FaceForensics。如表1和表2所示,图像视频联合训练(“Latte+IMG”)导致FID和FVD显着提高。沿时间轴将额外的随机采样帧与视频连接起来,使模型能够在每个批次中容纳更多示例,这可以增加训练模型的多样性。

  5️⃣视频采样间隔:该实验旨在探索各种采样率,从每个训练视频构建 16 帧剪辑。如图6a所示,在训练过程中,早期使用不同采样率的模型之间存在显着的性能差距。然而,随着训练迭代次数的增加,性能逐渐变得一致,这表明不同的采样率对模型性能影响很小。我们选择视频采样间隔为 3,以确保生成的视频具有合理的连续性,以进行与最先进技术的比较实验。

  6️⃣Model variants:实验还评估了 Latte 的模型变体,为了确保公平的比较,所有不同模型的参数计数相等,并且从头开始训练所有模型。结果如图 6d 所示,随着迭代次数的增加,Variants 1 表现最好。值得注意的是,与其他三个模型变体相比,Variants 4 的浮点运算 (FLOP) 大约为四分之一,如表 3 所示。 因此,Variants 4 在四个变体中表现最差也就不足为奇了。

  在Variants 2 中,一半的 Transformer 块最初用于空间建模,然后剩下的一半用于时间建模。这种划分可能会导致后续时间建模过程中空间建模能力的丧失,最终影响性能。因此,与仅使用多头注意力(Variants 3)相比,采用完整的 Transformer 块(包括多头注意力、层范数和多线性投影)在建模时间信息方面可能更有效。

  7️⃣model size:如表4所示。训练了四个不同大小的 Latte 模型。 FaceForensics 数据集上的 4(XL、L、B 和 S)。图 8 清楚地说明了随着训练迭代次数的增加,相应的 FVD 的进展。可以清楚地观察到,增加模型大小通常与显着的性能改进相关,这在DiT图像生成工作中也已指出

3.与sota进行比较

  基于上一节的消融研究。可以获得基于 Transformer 的潜在视频扩散模型的最佳实践(即模型Variants 1均匀帧patch嵌入S-AdaLN 和绝对位置嵌入方法图像视频联合训练)。在这些最佳实践下使用 Latte 与当前最先进的技术进行比较。

  定性结果:图 5 展示了 Latte 在 UCF101、Taichi-HD、FaceForensics 和 SkyTimelapse 上的视频合成结果。 Latte方法在所有场景中始终如一地提供逼真的高分辨率视频生成结果(256x256 像素)。这包括捕捉人脸的运动和处理运动员的重大转变。值得注意的是,Latte擅长在具有挑战性的 UCF101 数据集中合成高质量视频,而其他比较方法常常无法完成这项任务。

  定量结果:在表2展示了Latte和其他对比方法的定量结果。Latte在所有数据集上都显着优于以前的工作,这表明Latte在视频生成方面的优越性。在表1报告 FaceForensics 上的 FID 和 UCF101 上的 IS 来评估视频帧质量。Latte表现出出色的性能,FID 值为 3.87,IS 值为 73.31,显着超过其他方法的能力。

4.扩展到文本到视频生成

  为了探索Latte的潜在能力,作者将 Latte 扩展到文本到视频生成。采用图2(a)所示的方法来构建Latte T2V模型。并利用预训练模型可以促进模型训练。因此,作者利用预训练的 PixArt-α(512 × 512 分辨率)的权重来初始化 Latte T2V 模型中空间 Transformer 块的参数。由于常用视频数据集 WebVid-10M的分辨率低于 512 × 512,因此在LAVIE中提出的高分辨率视频数据集 Vimeo25M 上训练Latte模型。作者在这两个数据集的子集上训练 T2V 模型,其中包含大约 330,000 个文本视频对。在图 7 中的视觉质量方面与最近的 T2V 模型 VideoFusion和 VideoLDM 进行了比较。它表明 Latte 可以生成可比较的 T2V 结果。此外,选择 2,048 个采样视频来计算 FVD 和 FID 分数。所得的 FVD 和 FID 值分别为 328.20 和 50.72。

四、总结

  这项工作提出了 Latte,一种简单且通用的视频扩散方法,它采用视频 Transformer 作为生成视频的骨干。为了提高生成的视频质量,论文当中还确定了所提出模型的最佳实践,包括剪辑patch嵌入、模型变体、Timesteps-class信息注入、时间位置嵌入和学习策略。综合实验表明,Latte 在四个标准视频生成基准测试中取得了最先进的结果。此外,与当前的 T2V 方法相比,还获得了可比的文本到视频结果。Latte 可以为未来有关将基于 Transformer 的骨干网集成到视频生成扩散模型以及其他模式的研究提供宝贵的见解。

  

CATALOG
  1. 1. 一、介绍
  2. 2. 二、方法
    1. 2.1. 1.Latte的模型变体
    2. 2.2. 2.Latte的实证分析
      1. 2.2.1. 2.1 潜在视频剪辑patch embedding
      2. 2.2.2. 2.2 Timestep-class 信息注入
      3. 2.2.3. 2.3 时间位置嵌入
      4. 2.2.4. 2.4 通过学习策略增强视频生成
  3. 3. 三、实验
    1. 3.1. 1.实验设置
    2. 3.2. 2.消融实验
    3. 3.3. 3.与sota进行比较
    4. 3.4. 4.扩展到文本到视频生成
  4. 4. 四、总结