PhoenixPeng's blog.

视频扩散模型——4.Gen1

2023/12/26

一、引言

  对于视频生成任务,要保证其生成样本能够保存时间一致性,且具有较高的空间细节。在大规模数据集上训练的强大扩散模型,如DALLE-2和Stable Diffusion 等文本条件模型使新手用户能够仅凭文本提示作为输入即可生成详细的图像。这表明潜在扩散模型提供了在感知压缩空间中生成图像的有效方法。

  本文提出了一种可控结构和内容感知视频扩散模型,该模型在无字幕视频和成对文本图像数据的大规模数据集上进行训练。该模型利用单目深度估计来表示结构,用预训练的神经网络预测的嵌入来表示内容。该方法在其生成过程中提供了几种强大的控制模式。首先,与图像合成模型类似,训练模型,使推断视频的内容(例如外观或风格)与用户提供的图像或文本提示相匹配(图1)。其次,受扩散过程的启发,将信息模糊过程应用于结构表示,以便能够选择模型对给定结构的粘附强度。最后,还通过自定义指导方法调整推理过程,该方法受到无分类器指导的启发,以控制生成剪辑中的时间一致性。

图1:引导视频合成: 该方法基于潜在视频扩散模型,能够在通过文本(顶部)或图像(底部)描述的内容的指导下合成视频(顶部和底部),同时保持输入视频的结构(中间)。

  GEN-1做了如下贡献:

  1️⃣通过将时间层引入预训练的图像模型并联合训练图像和视频,将潜在扩散模型扩展到视频生成。

  2️⃣GEN-1是一个结构和内容感知模型,该模型在示例图像或文本的指导下修改视频。编辑完全在推理时执行,无需对每个视频进行额外的训练或预处理。

  3️⃣GEN-1展示了对时间、内容和结构一致性的完全控制。首次表明,对图像和视频数据的联合训练可以对时间一致性进行推理时间控制。为了实现结构的一致性,对表示中不同细节级别的训练允许在推理过程中选择所需的设置

  4️⃣并且,可通过对一小组图像进行微调,可以进一步定制训练后的模型,以生成特定主题更准确的视频。

二、方法

  从内容和结构的角度考虑视频会很有帮助。通过结构:指的是描述其几何形状和动力学的特征,例如主体的形状和位置以及它们的时间变化。将内容定义为描述视频外观和语义的特征,例如对象的颜色和样式以及场景的照明。然后,GEN-1模型的目标是在保留其结构的同时编辑视频的内容。

  具体来说,目标是学习视频\(\textcolor{blue}{x}\)的生成模型\(\textcolor{blue}{p(x|s,c)}\),其条件包括结构(用\(\textcolor{blue}{s}\)表示),内容(用\(\textcolor{blue}{c}\)表示)。我们从输入视频中推断出形状表示,并根据描述编辑的文本提示 c 对其进行修改。首先,将生成模型的实现描述为条件性潜在视频扩散模型,然后,描述我们对形状和内容表示的选择。最后,讨论模型的优化过程。有关概述,请参见图 2。

图2:在训练期间(左),输入视频 \(\textcolor{blue}{x}\) 通过固定编码器 \(\textcolor{blue}{\mathcal{E}}\) 编码为 \(\textcolor{blue}{z_0}\) 并扩散到 \(\textcolor{blue}{z_t}\)。通过对使用 MiDaS 获得的深度图进行编码来提取结构表示 \(\textcolor{blue}{s}\),并通过使用 CLIP 对其中一个帧进行编码来提取内容表示 \(\textcolor{blue}{c}\)。然后,该模型在 \(\textcolor{blue}{s}\) 的帮助下学习潜在空间中的逆向过程,\(\textcolor{blue}{s}\)\(\textcolor{blue}{z_t}\)连接,然后\(\textcolor{blue}{c}\)通过交叉注意力块注入。在推理过程中(右图),输入视频的结构以相同的方式提供。为了通过文本指定内容,通过先验将 CLIP 文本嵌入转换为图像嵌入。

1.时空潜在扩散

  若要正确对视频帧的分布进行建模,架构必须考虑帧之间的关系。同时,作者希望学习到具有共享参数的图像模型,以受益于在大规模图像数据集上训练获得的更好的泛化。

  为了实现这一点,作者通过引入时态层来扩展图像架构,这些时态层仅对视频输入有效。所有其他图层在图像和视频模型之间共享。自动编码器保持固定状态,并独立处理视频中的每一帧。

  UNet由两个主要构建块组成:Residual Block和Transformer Block(见图3)。与VDM类似,通过添加跨时间的一维卷积和跨时间的一维自注意力层来将它们扩展到视频。在每个Residual中,在每个2D卷积之后引入一个1D时间卷积。同样,在每 2D Spatial transformer block之后,添加一个1D Temporal transformer block,它沿时间轴模仿其空间对应物。作者还将帧索引的可学习位置编码输入到Temporal transformer block中。在实现中,将图像视为具有单帧的视频,以统一处理这两种情况。对于空间层,具有批量大小 b、帧数 n、c 通道数和空间分辨率 \(\textcolor{blue}{w × h}\)(即形状 \(\textcolor{blue}{b × n × c × h × w}\))的批处理张量被重新排列为 \(\textcolor{blue}{(b · n) × c × h × w}\),时间卷积为 \(\textcolor{blue}{(b · h · w) × c × n}\),时间自注意力重新排列为 \(\textcolor{blue}{(b · h · w) × n × c}\)

图3:通过在其构建块中添加时间层,将基于图像的UNet架构扩展到视频。在Residual Block(左图)中:在每个2D空间卷积之后添加一个1D时间卷积。在attention blocks(右图)中:在每个2D空间注意力块之后添加一个1D时间注意力块。

  

2.表示内容和结构

  1️⃣条件扩散模型: 扩散模型非常适合对条件分布(如 \(\textcolor{blue}{p(x|s,c)}\) )进行建模。在这种情况下,正向过程 \(\textcolor{blue}{q}\) 保持不变,而条件变量 \(\textcolor{blue}{s}\)\(\textcolor{blue}{c}\) 成为模型的附加输入。

  由于缺乏与图像数据集质量相似的大规模配对视频-文本数据集,该模型限制在无字幕的视频数据上进行训练。因此,虽然目标是根据描述视频内容的文本提示来编辑输入视频,但没有视频的三胞胎训练数据(其编辑提示和结果输出,也没有成对的视频和文本字幕)。

  因此,在训练过程中,必须从训练视频 \(\textcolor{blue}{x}\) 本身推导出结构和内容表示,即 \(\textcolor{blue}{s = s(x)}\)\(\textcolor{blue}{c=c(x)}\),导致每个示例损失为

  在推理过程中,结构 \(\textcolor{blue}{s}\) 和内容 \(\textcolor{blue}{c}\) 分别来自输入视频 \(\textcolor{blue}{y}\) 和文本提示 \(\textcolor{blue}{t}\)。通过对以 \(\textcolor{blue}{s(y)}\)\(\textcolor{blue}{c(t)}\) 为条件的生成模型进行采样,获得 \(\textcolor{blue}{y}\) 的编辑版本 \(\textcolor{blue}{x}\)

  2️⃣内容表示: 为了从文本输入 \(\textcolor{blue}{t}\) 和视频输入 \(\textcolor{blue}{x}\) 推断内容表示,并利用 CLIP 图像嵌入来表示内容。对于视频输入,在训练过程中随机选择其中一个输入帧。可以训练一个先验模型,该模型允许从文本嵌入中采样图像嵌入。此方法允许通过图像输入(而不仅仅是文本)指定编辑。

  解码器可视化表明,CLIP嵌入提高了对语义和风格属性的敏感性,同时对精确的几何属性(如对象的大小和位置)保持不变。因此,CLIP 嵌入是内容的合适表示

  3️⃣结构表示:内容和结构的完美分离是困难的。有关视频中语义对象类的先验知识会影响视频中出现某些形状的概率。尽管如此,我们还是可以选择合适的表示来引入归纳偏差,引导模型朝着预期的行为方向发展,同时降低结构和内容之间的相关性。

  从输入视频帧中提取的深度估计提供了所需的属性,因为与简单的结构表示相比,它们编码的内容信息要少得多。例如,边缘滤镜还可以检测视频中的纹理,这限制了对视频中内容的艺术控制范围。尽管如此,内容和结构信息之间仍然存在根本的重叠,作者选择CLIP图像嵌入作为内容表示,深度估计作为结构表示。深度图可显示对象的轮廓,从而防止涉及对象形状大幅变化的内容编辑。

  为了更好地控制要保留的结构量,我们建议在具有不同信息量的结构表示上训练模型。采用了基于模糊运算符的信息破坏过程,与其他方法(如添加噪声)相比,它提高了稳定性。与扩散时间步长 \(\textcolor{blue}{t}\) 类似,作者提供结构模糊水平 \(\textcolor{blue}{t_s}\) 作为模型的输入。文中提出,模糊(blurring)也被探索为生成建模的前向过程(Cold diffusion)。

  4️⃣条件机制: 作者用两种不同的条件机制来解释内容和结构的不同特征。由于结构代表了视频帧空间信息的很大一部分,因此使用串联进行条件输入以有效利用这些信息。相比之下,内容表示形式描述的属性与特定位置无关。因此,可以利用交叉注意力,可以有效地将这些信息传输到任何位置。

  使用 UNet 架构的Spatial transformer block进行交叉注意力调节。每个操作都包含两个注意力操作,其中第一个执行空间自注意力,第二个执行交叉注意力,其中包含从 CLIP 图像嵌入计算的键和值。

  为了适应结构,使用MiDaS DPT-Large模型估计所有输入帧的深度图。然后,将模糊和下采样的 \(\textcolor{blue}{t_s}\) 迭代应用于深度图,其中 \(\textcolor{blue}{t_s}\) 控制要从输入视频中保留的结构量。在训练过程中,随机抽取 0 到 \(\textcolor{blue}{t_s}\) 之间的 \(\textcolor{blue}{t_s}\)。在推理时,可以控制该参数以实现不同的编辑效果。将扰动深度图重新采样到RGB帧的分辨率,并使用\(\textcolor{blue}{\mathcal{E}}\)对其进行编码。这种结构的潜在表示与提供给 UNet 的输入 \(\textcolor{blue}{z_t}\) 连接起来。我们还输入了四个通道,其中包含 ts 的正弦嵌入。

  5️⃣抽样: 虽然方程(2)提供了一种从训练模型中抽样的直接方法,但许多其他抽样方法只需要扩散时间步长的一小部分即可获得良好的样品质量。GEN-1在整个实验中使用DDIM 。此外,无分类器扩散引导显著提高了样品质量。对于条件模型 \(\textcolor{blue}{μ_θ(x_t,t,c)}\),这是通过训练模型也执行无条件预测 \(\textcolor{blue}{μ_θ(x_t,t,\phi)}\)然后在采样期间根据

  其中 \(\textcolor{blue}{ω}\) 是控制强度的指导尺度。基于\(\textcolor{blue}{ω}\) 推断无条件模型和条件模型之间方向的直觉,应用这个想法来也可以控制模型的时间一致性。具体来说,由于使用共享参数训练图像和视频模型,因此可以考虑两个模型对相同输入的预测。设\(\textcolor{blue}{μ_θ(z_t,t,c,s)}\)表示对视频模型的预测,设\(\textcolor{blue}{μ^π_θ(z_t,t,c,s)}\)表示分别应用于每一帧的图像模型的预测。考虑到 c 的无分类器指导,然后根据

  实验表明,这种方法控制了输出中的时间一致性,见图4。

image-20240510100659188

图4:时间控制:联合训练图像和视频模型,通过时间指导量表 \(ω_t\) 对编辑视频的时间一致性进行显式控制。在左侧,通过连续帧的CLIP余弦相似度测量的帧一致性随\(ω_t\)单调增加,而随光流翘曲的帧之间的均方误差单调减小。在右侧,较低的比例(中间行的 0.5)可实现“手绘”外观的编辑,而较高的比例(最底行的 1.5)可获得更平滑的结果。最上面一行显示了原始输入视频,两个编辑使用提示“一个男人看着相机的铅笔素描”。

3.优化

  在 240M 图像的内部数据集和 6.4M 视频剪辑的自定义数据集上进行训练。我们使用尺寸为 9216 的图像批次,分辨率为 320 × 320、384 × 320 和 448 × 256,以及具有翻转纵横比的相同分辨率。以 12.5% 的概率对图像批次进行采样。对于主要训练,使用包含 8 帧的视频批次,间隔 4 帧采样,分辨率为 448 × 256,总视频批处理大小为 1152。

  GEN-1分多个阶段训练模型。首先,基于预训练的文本条件潜在扩散模型(Stable diffusion)初始化模型权重。将条件从 CLIP 文本嵌入更改为 CLIP 图像嵌入,并仅对图像进行 15k 步长的微调。之后,引入第 3.1 节中描述的时间连接,并在图像和视频上联合训练 75k 步。然后,在结构 \(\textcolor{blue}{s}\) 上添加条件反射,\(\textcolor{blue}{t_s ≡ 0}\) 固定并训练 25k 步。最后,我们继续训练,在 0 到 7 之间均匀采样\(\textcolor{blue}{t_s}\) ,再进行 10k 步。

三、结果

  为了评估GEN-1,使用了DAVIS 的视频和各种素材。为了自动创建编辑提示,首先运行字幕模型来获取原始视频内容的描述。然后,使用 GPT3  生成编辑后的提示。

1.定性结果

  GEN-1在许多不同的输入上表现良好(见图5)。在处理静态镜头(第一行)以及自拍视频(第二行)中的摇晃相机运动,而无需对输入视频进行任何显式跟踪。我们还看到它处理了各种各样的镜头,例如风景和特写镜头。GEN-1不局限于特定的主题领域,这要归功于其基于深度估计的一般结构表示。通过同时在大规模图像和视频数据集上训练获得的泛化支持许多编辑功能,包括动画风格的更改(例如动画(第一行)或粘土(第二行),场景环境的变化,例如将白天更改为日落(第三行)或将夏季更改为冬季(第四行),以及场景中角色的各种更改。 例如,将徒步旅行者变成外星人(第五排)或将自然界中的熊变成在星星中行走的太空熊(第六排)。

图5:GEN-1可以进行广泛的视频编辑,包括动画风格的更改(如动画或粘土),环境的更改(如日期或季节),以及将角色(如人类)更改为外星人或将场景从自然界移动到外太空。

  通过 CLIP 图像嵌入使用内容表示,允许用户通过图像指定内容。一个特定的应用示例是字符替换,如图 9 所示。实验使用一组六个视频演示了此应用程序。对于集合中的每个视频,都会重新合成五次,每次都提供从集合中的另一个视频中获取的单个内容图像。可以保留 \(\textcolor{blue}{t_s=3}\)的内容特征,尽管它们的姿势和形状存在很大差异。

图9:图片提示:将输入视频(第一列)的结构与其他视频(第一行)的内容相结合。

  最后,由于应用了多功能扩散模型,在推理过程中获得了很大的灵活性。在图 8 中说明了蒙版视频编辑的使用,该目标是让模型预测蒙版区域之外的所有内容,同时保留蒙版区域内的原始内容。值得注意的是,这种技术类似于使用扩散模型进行修复的方法。

图8:背景编辑:屏蔽去噪过程允许将编辑限制在背景上,以便更好地控制结果。

2.用户研究

  以文本为条件的视频到视频翻译是计算机视觉的一个新兴领域,因此可以找到有限数量的方法来进行比较。以 Text2Live 为基准,这是一种采用分层神经图谱的文本引导视频编辑的最新方法。作为基线,从两个方面与SDEdit进行比较:每帧生成的结果和通过少数镜头视频风格化方法传播的第一帧结果(IVS)。实验还包括两个基于深度的 Stable Diffusion 版本;一个是用深度调节训练的,另一个是根据深度估计保留过去的结果。还包括一个消融:将 SDEdit 应用于视频模型,而不以结构表示为条件。

  根据用户研究定性地判断该方法的成功。使用 Amazon Mechanical Turk (AMT) 对 35 个具有代表性的视频编辑提示的评估集运行用户研究。对于每个示例,要求 5 名注释者将基线和我们的方法之间的忠实度与视频编辑提示(“哪个视频更好地代表提供的编辑字幕?”)进行比较,以随机顺序呈现,并使用多数票获得最终结果

  结果如图 7 所示。在所有比较的方法中,GEN-1方法(ours)的结果大约是 3/4 的首选。

图7:根据用户研究,ours模型结果优于基线模型。

  方法之间的视觉比较可以在图13中找到。观察到 SDEdit 对编辑强度非常敏感。低值通常无法达到所需的编辑效果,而高值会改变输入的结构,例如在图中。S13 大象在编辑后看向另一个方向。虽然使用固定种子能够使输出的整体颜色在帧之间保持一致,但样式和结构在帧之间都可能以不自然的方式变化,因为它们的关系不是通过基于图像的方法建模的。总的来说,观察到 deforum 的行为非常相似。使用小镜头视频风格化传播 SDEdit 输出可产生更一致的结果,但通常会引入传播伪影,尤其是在摄像机或拍摄对象移动较大的情况下。Depth-SD 可对单个帧生成准确、保留结构的编辑,但如果不对时间关系进行建模,则帧随时间推移不一致。

图8:评估方法之间的视觉比较。从上到下:input、Deforum、ours、SDEdit、IVS、Depth-SD、Text2Live。

  Text2Live 输出的质量差异很大。由于它依赖于分层神经图集,输出在时间上往往是平滑的,但它往往难以执行准确表示编辑提示的编辑。直接比较很困难,因为 Text2Live 需要前景和背景的输入蒙版和编辑提示。此外,计算神经图谱大约需要 10 小时,而ours的方法大约需要一分钟。

3.定量评估

  用以下两个指标量化了帧一致性和提示一致性之间的权衡。帧一致性(Frame consistency):计算输出视频所有帧上的 CLIP 图像嵌入,并报告所有连续帧对之间的平均余弦相似度。提示一致性(Prompt consistency):计算输出视频所有帧上的 CLIP 图像嵌入和编辑提示的 CLIP 文本嵌入,报告了所有帧上文本和图像嵌入之间的平均余弦相似度。

  图 6 显示了使用帧一致性和提示一致性指标的每个模型的结果。ours模型在这两个方面都优于基线模型(位于图表右上象限的较高位置)。我们还注意到,在基线模型中增加梯度尺度参数时,会有一个轻微的权衡:更大的强度尺度意味着更高的提示一致性,但代价是帧一致性较低。增加模型的时间尺度 (\(\textcolor{blue}{ω_t}\)) 会导致更高的帧一致性,但提示一致性更低。我们还观察到,随着内容不受输入结构的影响,结构尺度 (\(\textcolor{blue}{t_s}\)) 的增加会导致更高的提示一致性。

图6:提示与帧一致性:SD-Depth 等图像模型可实现良好的提示一致性,但无法跨帧生成一致的编辑。基于传播的方法(如 IVS 和 Text2Live)提高了帧的一致性,但无法提供准确反映提示的编辑。ours方法实现了帧和提示一致性的最佳组合。

4.自定义

  预训练图像合成模型的自定义允许用户生成自定义内容的图像,例如人物或图像风格,基于用于微调的小型训练数据集。为了评估定制好的深度条件潜在视频扩散模型,在一组 15-30 张图像上对其进行微调,并生成包含所需主题的新颖内容。在微调过程中,一半的批处理元素是自定义主题的,另一半是原始训练数据集的,以避免过度拟合。

  图 10 显示了具有不同定制步骤数量以及不同结构粘附度水平的示例。我们观察到,定制提高了对角色风格和外观的保真度,因此,尽管使用了具有不同特征的人的驾驶视频,但结合更高的 \(\textcolor{blue}{t_s}\) 值,可以制作准确的动画。

图10:控制保真度:即获得对结构和外观保真度的控制。每个单元格显示生成的三个帧,结构保真度 ts(从左到右)递减,自定义训练步骤(从上到下)增加。底部显示了用于自定义的图像(红色边框)和输入图像(蓝色边框)的示例。与图 1 中的驾驶视频相同。

四、结论

  本文介绍了潜在视频扩散模型在给定结构和内容信息的情况下合成新视频(GEN-1)。通过对深度估计进行调节来确保结构的一致性,同时使用图像或自然语言控制内容。通过模型中的额外时间连接以及图像和视频的联合训练,可以实现时间稳定的结果。此外,受无分类器指导的启发,一种新的指导方法允许用户控制输出中的时间一致性。通过对不同保真度的深度图进行训练,揭示了调整结构保留水平的能力,这被证明对模型定制特别有用。定量评估和用户研究表明,GEN-1方法比相关方法更受欢迎。未来的工作可以研究其他条件数据,例如面部特征和姿势估计,以及额外的3D先验,以提高生成结果的稳定性。

  

CATALOG
  1. 1. 一、引言
  2. 2. 二、方法
    1. 2.1. 1.时空潜在扩散
    2. 2.2. 2.表示内容和结构
    3. 2.3. 3.优化
  3. 3. 三、结果
    1. 3.1. 1.定性结果
    2. 3.2. 2.用户研究
    3. 3.3. 3.定量评估
    4. 3.4. 4.自定义
  4. 4. 四、结论