一、介绍
在当前的视觉生成模型当中,尤其是扩散模型,在自动化内容创建方面取得了显着的进步,它能使设计人员能够根据文本提示作为输入生成逼真的图像或视频。这些方法通常在大规模视频文本和图像文本数据集上训练一个以文本为条件的强大扩散模型,达到前所未有的保真度和多样性水平。然而,尽管取得了如此令人瞩目的进展,但合成系统的有限可控性仍然存在重大挑战。
大多数现有方法主要通过引入新条件来实现可控生成,例如文本,分割图、修复掩模或草图等等。Composer的思想就是以组合性概念为中心的新生成范式,它能够在各种输入条件下合成图像,从而具有显着的灵活性。
Composer主要侧重于考虑空间维度内的多层次条件,目前扩散模型的视频生成会遇到一些挑战。这一挑战源于视频复杂的时间结构,它表现出时间动态的巨大变化,同时保持不同帧之间的时间连续性。因此,将合适的时间条件与空间线索结合起来以促进可控视频合成变得非常重要。
由此,作者提出了VideoComposer,它为视频合成提供了空间和时间上的可控性。作者将视频分解为三种代表性因素,即文本条件、空间条件和关键时间条件,然后以它们为条件去训练潜在扩散模型来重构输入的视频。特别是,可以引入视频特定的运动向量作为视频合成期间的一种时间指导,以明确捕获帧间动态,从而提供对内部运动的直接控制。为了确保时间一致性,作者还提出了一个联合STC-encoder,利用跨帧注意机制捕获顺序输入中的时空关系,从而增强输出视频的跨帧一致性。
VideoComposer能够灵活地合成具有不同条件的视频,同时保持合成质量,如图 1 所示。通过这个方法,甚至可以通过简单的手工动作来控制运动模式,例如指示月亮轨迹的箭头图 1d,作者表明这是目前方法几乎不可能实现的壮举。
下面将介绍VideoComposer,展示它如何增强视频合成的可控性,实现高度定制化的视频创作。
二、VideoComposer
1. VLDM
首先,简要介绍 VideoComposer 设计的视频潜在扩散模型 (VLDM)。由于与图像相比,处理视频需要大量的计算资源。直观地说,将像素空间中处理图像的扩散模型调整到视频域会阻碍 VideoComposer 扩展到网络规模数据。因此,作者采用了一种在潜在空间中运行的 LDM 变体,可以保持局部保真度以保留视觉流形。
🔹感知视频压缩:首先,引入预训练编码器,将给定视频\(\textcolor{blue}{x \in R^{F\times H\times W\times 3}}\)投影为潜在表示\(\textcolor{blue}{z = E(x)}\),其中\(\textcolor{blue}{z \in R^{F\times h\times w\times c}}\),随后,采用解码器将潜在表示映射回像素空间 \(\textcolor{blue}{\bar{x} = D(z)}\)。设置\(\textcolor{blue}{H/h = W/w =8}\)。
🔹潜在空间中的扩散模型:为了学习实际的视频分布\(\textcolor{blue}{p(x)}\),扩散模型学习对正态分布的噪声进行去噪,旨在恢复真实的视觉内容。该过程模拟了长度为\(\textcolor{blue}{T}\)的马尔可夫链的逆过程。 \(\textcolor{blue}{T}\)默认设置为\(\textcolor{blue}{1000}\)。为了对潜在的执行相反的过程,它向\(\textcolor{blue}{z}\)注入噪声获得被噪声破坏的潜在表示\(\textcolor{blue}{z_t}\)。随后,在\(\textcolor{blue}{z_t}\)和选定条件\(\textcolor{blue}{c}\)上应用去噪函数\(\textcolor{blue}{\varepsilon_\theta(·,·, t)}\),其中\(\textcolor{blue}{t ∈ {1, ..., T }}\)。优化目标可以表述为:
2. VideoComposer
🔶可组合条件:将视频分解为三种不同类型的条件,即文本条件、空间条件和关键的时间条件,它们可以共同确定视频中的空间和时间模式。值得注意的是,VideoComposer是一个通用的合成框架。因此,可以根据下游应用将更多定制条件合并到 VideoComposer中,并且不限于上面列出的分解。
1️⃣文本条件:在粗粒度的视觉内容和动作方面,文本描述为视频提供了直观指示。作者采用 OpenCLIP2 ViT-H/14 中广泛使用的预训练文本编码器来获取文本描述的语义嵌入。
2️⃣空间条件:为了实现细粒度的空间控制和多样化的风格,可以应用三种空间条件来提供结构和风格指导:
1)单个图像:视频由连续的图像组成,单个图像通常揭示该视频的内容和结构。作者选择给定视频的第一帧作为空间条件来执行图像到视频的生成。
2)单个草图。作者使用 PiDiNet作为第二个空间条件提取第一个视频帧的草图,并鼓励 VideoComposer 根据单个草图内的结构和纹理合成时间一致的视频。
3)style:为了进一步将一张图像的风格在转移到合成视频当中,选择图像嵌入作为风格指导,应用 OpenCLIP ViT-H/14 中的预训练图像编码器来提取风格表示。
3️⃣时间条件:为了沿着时间维度实现更精细的控制,我们引入了四个时间条件:
1)运动向量:作为视频特定元素的运动矢量被表示为二维矢量,即水平和垂直方向。它显式地编码两个相邻帧之间的像素级运动,如图 3 中的红色箭头所示。由于运动矢量的自然属性,我们将此条件视为用于时间平滑合成的运动控制信号。遵循一些论文的方法,可以从压缩视频中提取标准 MPEG-4 格式的运动向量。
2)深度序列:为了引入深度信息,可以通过一些预训练模型来提取视频帧的深度图所获取。
3)掩码序列:为了方便视频区域编辑和修复,手动添加masks。我们引入(tube masks)来遮盖视频,并强制模型根据可观察信息预测遮盖区域。
4)草图序列:与单个草图相比,草图序列可以提供更多的控制细节,从而实现精确的定制合成
🔶STC-encoder:
序列条件包含丰富而复杂的时空依赖性,对可控引导提出了挑战。为了增强对输入条件的时间感知,我们设计了一个时空条件编码器(STC-encoder)来合并时空关系,如图2所示。
具体来说,首先将由两个二维卷积和平均池层组成的轻量级空间架构应用于输入序列,旨在提取局部空间信息。随后,将得到的条件序列输入时间 Transformer 层以进行时间建模。通过这种方式,STC 编码器有助于时间线索的显式嵌入,为不同的输入提供统一的条件接口,从而增强帧间一致性。注意,我们是要沿着时间维度重复单个图像和单个草图的空间条件,以确保它们与时间条件的一致性,从而促进条件融合过程。
经过STC-encoder处理的条件序列都与\(\textcolor{blue}{z_t}\)具有相同的空间形状,然后通过逐元素加法进行合并。最后,将合并的条件序列与\(\textcolor{blue}{z_t}\)沿通道维度连接起来作为控制信号。对于一系列嵌入序列的文本和风格条件,利用交叉注意机制来注入文本和风格指导。
3. 训练和推理
🔶两阶段训练策略:尽管VideoComposer可以通过LDM的预训练进行初始化,这在一定程度上减轻了训练难度,但该模型仍然难以学习同时处理时间动态并合成来自多个合成的视频内容。为了解决这个问题,我们利用两阶段训练策略来优化 VideoComposer。具体来说,第一阶段的目标是预训练模型,通过文本到视频生成专门进行时间建模。在第二阶段,优化了 VideoComposer,通过合成训练在不同条件下,使得 VideoComposer控制视频合成方面表现出色。
🔶推理:在推理过程中,采用DDIM来增强样本质量并提高推理效率。并采用无分类器指导,以确保生成结果符合指定条件。生成过程可以形式化为:
其中\(\textcolor{blue}{\omega}\)是指导尺度; \(\textcolor{blue}{c_1}\)和\(\textcolor{blue}{c_2}\)是两组条件。该指导机制在两个条件集之间进行推断,重点关注(\(\textcolor{blue}{c_2}\)或\(\textcolor{blue}{c_1}\))中的元素,并赋予灵活应用的能力。例如,在文本驱动的视频修复中,\(\textcolor{blue}{c_2}\)表示预期的字幕和屏蔽视频,而\(\textcolor{blue}{c_1}\)是空字幕和相同的屏蔽视频。
三、实验
1. 实验设置
数据集:为了优化 VideoComposer,作者利用两个广泛认可且可公开访问的数据集:WebVid10M和LAION-400M。 WebVid10M 是一个从网络上废弃的大型基准测试,包含 1030 万个视频字幕对。 LAION-400M是一个图像字幕配对数据集,使用 CLIP进行过滤。
评估指标:作者利用两个指标来评估 VideoComposer:1️⃣为了评估视频连续性,我们按照 Gen-1计算两个连续帧的平均 CLIP 余弦相似度,作为帧一致性指标(frame consistency metric); 2️⃣为了评估运动可控性,我们采用端点误差作为运动控制度量(motion control metric),它测量每个像素的预测视觉流和真实视觉流之间的欧几里德距离。
2. 具有多种条件的可组合视频生成
在本节中,将展示 VideoComposer 利用其固有的组合性,以可控且通用的方式处理各种任务的能力。
2.1 图像到视频的生成
单张图像的合成训练赋予 VideoComposer 静态图像动画的能力。在图 4 中,我们提供了六个示例来演示这种能力。 VideoComposer能够生成符合文本和初始帧的视频。为了进一步增强对结构的控制,我们可以结合额外的时间条件。我们观察到生成的视频始终符合给定的条件。
2.2 视频修复
与masked video联合训练使模型具有用规定内容填充mask区域的能力,如图5所示。VideoComposer可以根据文本描述补充mask损坏的区域。通过进一步结合时间条件,即深度图和草图,我们获得了对结构的更高级的控制。
2.3 草图到视频的生成
单个草图的合成训练使 VideoComposer 具有对静态草图进行动画处理的能力,如图 6 所示。我们观察到 VideoComposer 合成了符合文本和初始草图的视频。此外,我们观察到包含掩模和风格指导可以促进结构和风格控制。
3. 运动控制实验结果
3.1 定量评价
为了验证运动可控性,作者随机选择 1000 个字幕-视频对去合成相应的视频。结果显示在表1中。我们观察到,包含运动矢量作为条件减少了运动控制误差,表明运动可控性的增强。 STC-encoder的结合进一步提高了运动可控性。
3.2 移动视觉线索
由于运动矢量对帧间变化进行编码的性质,图像内的静态区域本质上被忽略。移动区域的这种优先顺序有利于合成期间的运动控制。在图 7 中,展示了视频到视频翻译的结果来证实这种优越性。我们观察到运动矢量排除了静态背景,即人的腿,这是其他时间条件(例如深度图和草图)无法完成的壮举。这一优势为更广泛的应用奠定了基础。
3.3 具有运动矢量的多功能运动控制。
运动矢量可以轻松地从手工绘制的笔画中提取,从而实现更通用的运动控制。在图 8 中,展示了 CogVideo 和 VideoComposer 的比较可视化。虽然 CogVideo 仅限于文本引导运动控制不足,但 VideoComposer 通过额外利用源自手工笔画的运动矢量来扩展此功能,以促进更灵活和精确的运动控制。
4. 消融实验
在本节中,对 VideoComposer 进行定性和定量分析,旨在证明合并 STC 编码器的有效性。
4.1 定量评价
在表2 中,提出了在 1000 个测试视频上计算的帧一致性度量。我们观察到,合并 STC 编码器增强了帧一致性,我们将其归因于其时间建模能力。该观察结果适用于各种时间条件,例如草图、深度图和运动矢量。
4.2 定性评价
在图 9 中,举例说明了 STC 编码器的有用性。观察到,在第一个示例中,没有 STCencoder 的 VideoComposer 生成的视频通常遵循草图,但省略了某些详细信息,例如一些圆形成分。对于左侧两个示例,没有 STCencoder 的 VideoComposer 生成的视频在结构上与条件不一致。我们还可以发现人脸和姿势方面的明显缺陷。因此,以上例子都可以验证STC编码器的有效性。
四、总结
在本文中,介绍了VideoComposer,旨在探索视频合成领域的组合性,力求获得灵活可控的合成系统。特别是在探索使用视频的时间条件,特别是运动向量,作为强大的控制信号来提供时间动态方面的指导。 STC 编码器进一步设计为统一接口,用于聚合顺序输入的空间和时间依赖性,以实现帧间一致性。作者的实验涉及各种条件的组合以增强可控性,强调了我们设计选择的关键作用,并揭示了所提议的 VideoComposer 令人印象深刻的创造力。