PhoenixPeng's blog.

视频扩散模型——12.VideoCrafter1

2024/05/17

一、介绍

图1.在 VideoCrafter1 中开源了两个用于视频生成的扩散模型。文本到视频 (T2V) 模型将文本提示作为输入,并相应地生成视频。另一方面,图像到视频 (I2V) 模型接受图像、文本提示或两者作为视频生成的输入。

  文本到视频(T2V)模型,Make-A-Video 和 Imagen Video是级联模型,而大多数其他作品,如LVDM,Magic Video、ModelScope和 Align your latents 都是基于SD的模型。这些模型通过合并时间层来确保帧之间的时间一致性,从而将SD框架扩展到视频。空间层参数继续自预训练的 SD UNet。

  成功的 T2I 模型的蓬勃发展和下游任务的进步在很大程度上可以归因于社区内的开源环境。SD 是一个关键的基础,因为它是使用巨大的计算能力在大量文本-图像对上训练的。对于大多数学术研究小组来说,与此相关的成本往往令人望而却步。相比之下,在T2V领域,Make-AVideo 和Imagen Video 展示了有希望的视频结果,但它们都不是开源的。Gen-2、Pika Labs 和 Moonvalley  等几家初创公司可以生成高质量的视频,但研究人员仍然无法访问他们的模型以进行进一步探索。

  目前,存在几种开源 T2V 模型,即 ModelScope、Hotshot-XL、AnimateDiff  和 Zeroscope V2 XL。发布的 ModelScope 型号只能生成分辨率为 256 × 256 的视频,图像质量不理想。Zeroscope V2 XL 通过在一小部分视频上进行调整来提高其视觉质量,但其生成的视频中仍然存在闪烁和可见噪点。Hotshot-XL 旨在将 SDXL 扩展到视频模型中,并生成具有 8 帧和 512 × 512 分辨率的 gif。AnimateDiff 建议将时间模块与 LORA SD 模型的空间模块相结合。由于时态模块是在 Webvid-10M 上训练的,因此 AnimateDiff 的原始 T2V 模型的结果很差。与高质量的 LORA 模型相结合,可以生成高质量的视频。然而,范围在风格和概念构成能力方面受到LORA模型的限制。目前仍然缺乏能够生成高分辨率和高质量视频的开源通用 T2V 基础模型。

  最近,Pika Labs 和 Gen-2 发布了他们的图像到视频 (I2V) 模型,旨在通过提示对给定图像进行动画处理,同时保留其内容和结构。这种技术仍处于早期阶段,因为生成的运动是有限的,并且通常存在可见的伪影。唯一的开源通用 I2V 基础模型 I2VGen-XL 在 ModelScope 中发布。此模型使用图像嵌入来替换文本嵌入,以优化预训练的 T2V 模型。但是,它不满足内容保留约束。生成的视频与给定图像中的语义含义相匹配,但不严格遵循参考内容和结构。因此,开源社区迫切需要一个好的 I2V 模型。

  在这项工作中,作者介绍了两种用于高质量视频生成的扩散模型:一种用于文本到视频(T2V)生成,另一种用于图像到视频(I2V)生成。T2V 模型以 SD 2.1 为基础,将时间注意力层合并到 SD UNet 中以捕获时间一致性。并且采用图像和视频联合训练策略来防止概念遗忘。训练数据集包括 LAION COCO 600M、Webvid10M 和 10M 高分辨率采集视频数据集。T2V 型号可以生成分辨率为 1024 × 576 且持续时间为 2 秒的视频。另一方面,I2V 模型基于 T2V 模型,接受文本和图像输入。使用CLIP提取图像嵌入,并通过交叉注意力注入SD UNet,类似于文本嵌入的注入。I2V 模型在 LAION COCO 600M 和 Webvid10M 上进行训练。作者的想法是通过发布这些模型,旨在为开源社区做出重大贡献,使研究人员和从业者能够在他们的工作基础上进一步推进视频生成领域。

图2.与 Gen-2、Pika Labs、I2VGen-XL 和 Zeroscope-XL 的视觉比较。

二、方法

1. VideoCrafter1: Text-to-Video Model

  结构概述:VideoCrafter T2V模型是一个潜在视频扩散模型(LVDM),由两个关键组件组成:视频VAE和视频潜在扩散模型,如图3所示。

图3.VideoCrafter1 中视频扩散模型的框架:在自动编码器的潜在空间中训练视频UNet。以FPS为条件来控制生成视频的运动速度。对于 T2V 模型,只有文本提示通过交叉注意力输入空间转换器,而对于 I2V 模型,文本和图像提示都作为输入。

  视频VAE负责减小样本尺寸,使后续的扩散模型更加紧凑和高效。首先,将视频数据 \(\textcolor{blue}{x_0}\) 输入VAE编码器 \(\textcolor{blue}{\mathcal{E}}\) ,将其投射到视频潜在表示 \(\textcolor{blue}{z_0}\) 中,该视频潜在表示 \(\textcolor{blue}{z_0}\) 具有较低的数据维度和压缩的视频表示。然后,可以通过VAE解码器 \(\textcolor{blue}{\mathcal{D}}\) 将视频潜在映射射回重建的视频 \(\textcolor{blue}{x^{\prime}_0}\) 中。之后采用来自稳定扩散模型的预训练VAE作为视频VAE,并在不提取时间信息的情况下单独投影每一帧。获得视频潜在表示 \(\textcolor{blue}{z_0}\) 后,通过以下方式对 \(\textcolor{blue}{z_0}\) 进行扩散过程:

  其中 \(\textcolor{blue}{T}\) 是扩散时间步长的数量,\(\textcolor{blue}{\beta_t}\) 是时间步长 \(\textcolor{blue}{t}\) 处的噪声水平。因此,可以在任意时间步长 \(\textcolor{blue}{t}\) 处获得一系列嘈杂的视频潜在表示 \(\textcolor{blue}{z_t}\)

  为了执行去噪过程,学习了去噪器U-Net来估计其输入被加噪后潜在表示中的噪声,经过渐进式去噪过程后,具有噪声的潜在样本变成干净的视频潜在,最终可以被VAE解码器解码为像素空间中生成的视频。

  去噪 3D U-Net:如图 3 所示,去噪 U-Net 是一种 3D U-Net 架构,由一堆具有跳跃连接的基本时空块组成。每个模块由卷积层、spatial transformers (ST) 和 temporal transformers (TT) 组成,其中

  去噪器的控制信号包括语义控制(如文本提示)和运动速度控制(如视频fps)。我们可以通过交叉注意力注入语义控制:

  \(\textcolor{blue}{\varphi_i(z_t) \in R^{N \times d^i_\epsilon}}\)表示潜在表示的 spatially flattened tokens,\(\textcolor{blue}{\phi}\) 表示Clip 文本编码器,\(\textcolor{blue}{y}\) 表示输入文本提示。fps 的运动速度控制是通过 FPS embedder实现的。该embedder与时间步长embedder具有相同的结构。具体来说,FPS或时间步长使用 sinusoidal embedding 将其投影到embedding vector当中。然后将该向量输入到两层 MLP中,以将正弦嵌入映射到学习嵌入。随后,通过逐元素加法融合时间步长嵌入和 FPS 嵌入。最后将融合嵌入添加到卷积特征中,以调节中间特征。

2. VideoCrafter1: Image-to-Video Model

  文本提示为内容生成提供了高度灵活的控制,但它们主要关注语义级规范,而不是详细的外观。在 I2V 模型中,是将额外的条件输入(即图像提示)集成到视频扩散模型中,该模型有望根据提供的图像合成动态视觉内容。对于文本到视频的扩散模型,条件文本嵌入空间在确定最终输出视频的视觉内容方面起着至关重要的作用。为了以兼容的方式为视频模型提供图像信息,必须将图像投影到文本对齐的嵌入空间中。学习这种具有丰富细节的嵌入,有助于以提高视觉保真度。图 4 显示了为扩散模型配备图像条件分支的图示。

图4.图像条件分支的图示。U-Net 主干功能 \(F_{in}\) 通过双交叉注意力层处理文本和图像嵌入,其输出融合为 \(F_{out}\)

  

  文本对齐的图像嵌入:由于文本嵌入是使用预训练的 CLIP 文本编码器构建的,因此本文使用其图像编码器从输入图像中提取图像特征。尽管来自 CLIP 图像编码器的全局语义token \(\textcolor{blue}{f_{cls}}\) 与图像标题很好地对齐,但它主要在语义级别表示视觉内容,而捕获细节的能力较差。受现有视觉调节工作的启发,作者利用了CLIP图像ViT最后一层的full patch visual tokens \(\textcolor{blue}{F_{vis} = \{f_i\}^K_{i=0}}\),它包含了有关图像的更丰富的信息。

  为了促进与文本嵌入的对齐,利用可学习的投影网络(Projection Net) \(\textcolor{blue}{\mathcal{P}}\)\(\textcolor{blue}{F_{vis}}\) 转换为目标图像嵌入 \(\textcolor{blue}{F_{img} = \mathcal{P}(F_{vis})}\)使视频模型主干能够有效地处理图像特征。然后使用文本嵌入 \(\textcolor{blue}{F_{text}}\)和图像嵌入 \(\textcolor{blue}{F_{img}}\) 通过双交叉注意力层计算 U-Net 中间特征 \(\textcolor{blue}{F_{in}}\)

image-20240520104221493

  其中 \(\textcolor{blue}{Q = F_{in}W_q}\)\(\textcolor{blue}{K_{text} = F_{text}W_k}\)\(\textcolor{blue}{V_{text} = F_{text}W_v}\)\(\textcolor{blue}{K_{img} = F_{img}W^′_k}\)\(\textcolor{blue}{V_{img} = F_{img}W^′_v}\)。请注意,对图像交叉注意力使用与文本交叉注意力相同的query。因此,每个交叉注意力层只新添加了两个参数矩阵 \(\textcolor{blue}{W^′_k}\)\(\textcolor{blue}{W^′_v}\)。图 5 分别比较了以全局语义token和采用的丰富视觉token为条件的生成视频的视觉保真度。

图5.图像条件文本到视频生成比较。(a) 条件图像输入。(b) 以全局语义token为条件的生成。(c) 生成有条件的full patch visual tokens。使用的文本提示是“一个有着五颜六色头发的美丽女孩”。

三、实验

1. Implementation Details

  Dataset:作者采用图像和视频联合训练策略进行模型训练。使用的图像数据集是 LAION COCO,这是一个大型文本-图像数据集,由 6 亿个为公开可用的 Web 图像生成的高质量标题组成。对于视频数据集,利用公开的WebVid-10M,这是一个大型短视频数据集,其文本描述来自素材网站,提供多样化和丰富的内容。此外,作者编译了一个大规模的高质量视频数据集,其中包含1000万个分辨率大于1280×720的视频,用于T2V模型的训练。

  Training Scheme: 为了训练 T2V 模型,作者采用了 Stable Diffusion 中使用的训练策略,即从低分辨率到高分辨率的训练。我们首先以 256 × 256 的分辨率训练从图像模型扩展的视频模型,以进行 80K 迭代,批处理大小为 256。接下来,从 256 × 256 模型恢复,并使用分辨率为512x320 的视频对其进行微调,以进行136K的迭代,批大小为 128。最后,我们以 1024 × 576 的分辨率对模型进行 45K 迭代微调,批大小为 64。对于 I2V 模型,最初训练从图像嵌入到用于交叉注意力的嵌入空间的映射。随后,我们修复了文本和图像嵌入的映射,并微调了视频模型以改善对齐方式。

  Evaluation Metrics:作者使用EvalCrafter(评估视频生成模型的基准)来评估视频质量以及文本和视频之间的对齐情况。EvalCrafter 在VideoCrafter1、Gen-2、Pika Labs 和 ModelScope 之间进行比较,同时考虑了定量指标和用户研究。在表 1 和图 6 中列出了主要结果。VideoCrafter1的 T2V 模型在开源模型中实现了最佳的视觉质量和视频质量。为了进行定性评估,会在图 2、7 和 9 中提供了几个视觉示例进行说明。

图6.来自用户研究的原始评级。

  Relations to Floor33:作者在一个名为 Floor33 的 Discord 频道上部署了这两个开源模型,用户只需输入提示即可在线探索模型的功能。并且增加了一个可选功能,提示扩展,以丰富用户提示中的信息。

2. 性能评估

  Text-to-Video Results:作者将他们的 T2V 模型与 Gen-2 和 Pika Labs 等商业模型以及开源模型 I2VGen-XL 进行了比较。由于 I2VGen-XL 是图像到视频的模型,作者首先使用 SDXL 生成图像,然后使用 I2VGen-XL 创建视频。结果如图 2 和图 7 所示。

图7.与 Gen-2、Pika Labs、I2VGen-XL 和 Zeroscope-XL 的视觉比较。

  如表 1 所示,VideoCrafter1模型在视觉质量和文本对齐方面优于开源 T2V 模型。VideoCrafter1模型在训练过程中鼓励大型物体移动,与其他模型相比,生成的视频中的运动更明显。然而,较大的运动有时会在时间一致性中引入误差。图 2 和图 7 也证明了与开源模型相比,VideoCrafter1在视觉质量和概念构图方面的优势。Zeroscope的图像质量不尽如人意,因为它有时无法生成内容或产生重复网格等伪影。

  Gen-2 和 Pika Labs 始终如一地生成具有高美学分数的视频,并且在结果中抑制了噪点。然而,Gen-2 偶尔会在概念构成方面遇到困难,如图 7 中的两个示例所示,其结果过于平滑。Pika Labs 表现出最佳的文本对齐性能,但并不总是生成正确的样式,如图 7 中的第二个示例所示。

  作者还比较了 VideoCrafter 版本之间的差异,如图 8 和表1所示。VideoCrafter今年在视觉质量、文本-视频对齐、时间一致性和运动质量方面都有很好的进展。并且VideoCrafter的最新版本(23.10)达到了与Pika Lab 相同的质量,这证明了VideoCrafter的训练方式和数据集的好处。

图8.不同 VideoCrafter 文本到视频版本之间视觉质量的视觉比较。提示分别是“漫威电影风格,超级可爱的暹罗猫作为寿司厨师”,“戴着粗花呢帽子和眼镜的聪明阅读报纸,霍华德霍奇金风格”和“手持相机,政治家在讲台上发表演讲”。比较视频将在我们的 Github 上发布。

  图像到视频的结果:作者根据现有的最先进的图像到视频方法评估了VideoCrafter1,包括两个开源条件视频扩散模型和两个商业产品演示。VideoComposer 是最近发布的合成视频生成模型,支持文本-图像到视频合成。I2VGenXL 是一个开源的图像到视频生成项目。Pika  和 Gen-2 是商业公司开发的知名文本到视频生成产品,它们也支持图像到视频应用。

  视觉比较结果如图 9 所示。我们可以观察到,Pika、Gen-2 和VideoCrafter1对条件图像的视觉保真度比 VideoComposer 和 I2VGen-XL 要好。尽管第一帧与输入图像几乎相同,但 VideoComposer 存在严重的时间不一致问题,其中后续帧会转换为完全不同的外观。I2VGen-XL表现出良好的时间一致性和运动幅度,但外观与条件图像有明显偏差。Pika实现了最佳的视觉保真度和时间一致性;然而,它通常呈现出非常微妙的运动幅度。相比之下,Gen-2 可以产生令人满意的运动幅度和视觉保真度,但其性能不稳定,即有时会遇到时间漂移问题(如在汽车外壳中)。VideoCrafter1的 I2V 模型在这些情况下表现出更好的性能,具有良好的时间一致性和运动幅度,以及可接受的视觉保真度。然而,VideoCrafter1的I2V模型仍然存在一些局限性,例如成功率,面部伪像不理想等,需要进一步改进。

image-20240520151246807

四、总结

  本文介绍了两种用于视频生成的扩散模型。一种是文本到视频生成模型,能够生成分辨率为 1024 × 576 的高质量、高分辨率、电影质量的视频。它在开源 T2V 模型中提供最佳质量。另一种是图像到视频生成模型,这是第一个开源的通用 I2V 基础模型,可以保留给定参考图像的内容和结构。

  现有的开源模型仅代表起点。持续时间、分辨率和运动质量的改进对于未来的发展仍然至关重要。具体来说,两种型号的当前持续时间限制为 2 秒;将其延长到更长的时间会更有益。这可以通过使用额外的帧进行训练和开发帧插值模型来实现。至于分辨率,采用空间放大模块或与ScaleCrafter 合作是一种很有前途的策略。此外,通过利用更高质量的数据,可以提高运动和视觉质量

  

CATALOG
  1. 1. 一、介绍
  2. 2. 二、方法
    1. 2.1. 1. VideoCrafter1: Text-to-Video Model
    2. 2.2. 2. VideoCrafter1: Image-to-Video Model
  3. 3. 三、实验
    1. 3.1. 1. Implementation Details
    2. 3.2. 2. 性能评估
  4. 4. 四、总结