前言:Dreambooth、LoRA、Adapter是图像扩散模型微调的三剑客,在之前的博客中详细解读过原理和代码。现在来到了视频生成的时代,本篇博客介绍微调视频扩散模型的利器,对标DreamBooth的MotionBooth。
目录
贡献概述
根据定制主题生成视频的研究在近期备受关注。这种定制生成领域源于文本到图像(T2I)生成方法,从几张图像中学习主体的外观,并生成该主体的各种图像。主题驱动的文本到视频(T2V)生成方法越来越受到关注,并在个人短片或电影制作中得到了广泛应用,然而这是一项极具挑战性的任务。
任务通常涉及主体学习和运动注入,同时还要保持生成能力,以生成不同的场景。VideoBooth 训练图像编码器将主体的外观嵌入模型,生成主体的短片,然而生成的视频通常运动强度过低或运动缺失,没有充分利用预训练 T2V 模型的运动先验。另一种方法对定制模型在特定的视频上进行了微调,需要对每个特定的相机或主体的运动类型学习。他们的管道限制了运动类型,需要为每种运动类型训练一个 adapter。
问题的关键在于定制化学习和视频运动保护之间的冲突。在主体定制化学习过程中,对特定主体的有限图像进行训练会显著改变基础 T2V 模型的分布,从而导致明显的质量下降(如背景模糊和静态视频)。因此,现有方法往往需要额外的运动学习来实现特定的运动控制。在本文中,认为基础 T2V 模型已经具有多样化的运动先验,关键在于在主体学习过程中保持视频生成能力,并在推理过程中实现运动控制。
为了确保主体驱动的视频生成具有普遍和精确的运动控制,本文提出了 MotionBooth,可以实现运动感知的定制视频生成。本文的贡献总结如下:
-
提出了一个统一的框架MotionBooth,用于运动感知的定制视频生成。据我们所知,这是第一个能够通过结合定制主题、主体运动和相机运动作为输入来生成各种视频的框架。
-
提出了一种新的主题学习损失增强训练体系结构。这包括主体区域损失、视频保护损失和主体 token 交叉注意损失,显著提高主体保真度和视频质量。
-
提出了无需训练的方法来控制主体和相机运动。
大量的实验表明,MotionBooth 优于现有的最先进的视频生成模型。
方法
概述
任务定义
本文的目标是生成以定制化主题的的运动感知视频。为了定制视频主题,我们对特定主题的 T2V 模型进行了微调。这一过程只需几张(通常是 3-5 张)同一主题的图像即可完成。在推理过程中,微调后的模型会生成主体的运动感知视频。运动包括摄像机和被摄体的运动,由用户自由定义。
对于摄像机运动,用户输入水平和垂直摄像机运动比率,表示为 ,。对于主体的运动,用户提供一个边界框序列 来表示主体的位置,其中 代表视频长度。每个框指定了每个帧的左上角和右下角点的 x-y 坐标。通过这些条件输入,MotionBooth 能够生成包含定制化主体的视频,并且符合预定义的摄像机运动和主体运动。
整体框架
在训练阶段,MotionBooth 通过微调 T2V 模型来学习给定主体的外观。为了防止过拟合,我们引入了视频保护损失和主体区域损失。此外,我们还提出了主体 token 交叉注意损失(STCA),将 token 与主体在交叉注意力图上的位置显式地联系起来,便于控制主体运动。
摄像机和主体运动控制在推理阶段进行。我们通过放大主体 token 及其相应区域,同时抑制其他 token 来处理交叉注意图。这样可以确保生成的主体出现在所需的位置上。通过在交叉注意力图上进行训练,STCA 增强了运动控制能力。在相机运动方面,我们引入了一个新颖的 latent 转换模块来直接移动噪声 latent,从而实现生成视频中相机的平滑移动。
定制化概念学习
以往的研究表明,如果给定几张主体图像,在这些图像上对扩散模型进行微调,就能有效地学习主体的外观。然而,仍然存在两个重大挑战。
首先,由于数据集的规模有限,模型在几步之内就会迅速过拟合输入图像,包括其背景,这种对背景的过拟合阻碍了具有不同场景的视频的生成。其次,使用图像对 T2V 模型进行微调会损害模型生成视频的固有能力,导致生成的视频背景严重退化。为了说明这些问题,我们进行了一个演示实验。
如图 3 所示,在不做任何修改的情况下,模型会将背景与主体图像过度拟合。为了解决这个问题,我们建议只在主体区域内计算扩散重建损失。然而,即使进行了这样的调整,生成视频中的背景仍然过度平滑。这种退化可能是由于只用图像来微调 T2V 模型,从而破坏了模型生成视频的原始权重。为了缓解这一问题,我们建议在训练过程中使用视频数据以保护视频生成的原始权重。虽然使用视频数据进行训练但没有主体区域损失,仍然会出现过度拟合的问题,但 MotionBooth 可以生成背景详细且多样化的视频。
主体区域损失
为了解决训练图像中背景过拟合的难题,我们提出了一种主体区域损失法。其核心思想是只在主体区域内计算扩散重建损失,从而防止模型学习背景。具体来说,我们首先提取每张图像的主体 mask。这可以通过手动或自动方法(如分割模型)完成。在实践中,我们使用 SAM 来收集所有 mask。主体区域损失的计算方法如下:
其中 代表训练图像的二进制 mask。 是格式为 "a [V] [class name]" 的句子,其中"[V]"是 token,"[class name]"是主体的类别名称。通过加入主体区域损失,训练后的模型可以有效避免背景过拟合问题。
视频保护损失
类似 DreamBooth 和 CustomDiffusion 这样的图像定制数据集为同一主题的多幅图像提供了很好的范例。然而,在定制视频生成任务中,直接在图像上微调视频扩散模型会导致明显的背景退化,这种基于图像的训练过程可能会损害视频扩散模型中原始的先验。
为了解决这个问题,我们引入了一种视频保护损失,旨在通过与视频数据联合训练来保持视频生成知识。损失函数的计算公式如下;
主体 token 交叉注意损失
为了控制主体的运动,我们在推理过程中直接操作交叉注意图。由于我们在训练阶段引入了一个特殊token "[V]",并将其与主体相关联,因此需要将这个特殊 token 与主体在交叉注意图中的位置联系起来。我们提出了主体 token 交叉注意损失(STCA)来显式地指导这一过程。首先,我们提取标记"[V] [class name]"处的交叉注意图 。然后,使用二元交叉熵损失,以确保相应的注意力图在主体区域位置处较大,而在该区域外较小。这一过程包含主体 mask,可表示为:
物体运动控制
我们选择边界框作为主体的运动控制条件,是因为边界框易于绘制和操作。我们采用了一种无需训练的方法,在推理过程中直接编辑交叉注意图。在交叉注意力图层中,特征 从视频 latent 中提取,代表视觉特征。特征 K 和 V 来自输入语言 token。编辑后的交叉注意层的计算过程可表述如下:
其中, 是 的特征维度,作为归一化项。 是 和 之间的归一化乘积,代表视觉特征和语言特征之间的注意力分数。
我们通过添加 来控制生成,其中 在边界框提供的主题区域内为正值,而在所需位置之外为负值。 是超参数,用于控制编辑强度。编辑矩阵 设置如下:
其中, 分别表示视觉 token、语言 token 和帧索引。 表示文本提示中主体 token 的索引。我们选择"[V]"和"[class name]"作为主体 token。 是去噪时间戳, 是定义时间阈值的超参数。由于扩散模型倾向于在较早的去噪步骤中形成布局,并在较晚的步骤中完善细节。因此我们在较早的时间步骤中采用较强的注意力增强,而在较晚的时间步骤中则不采用增强。
相机运动控制
只需编辑交叉注意图就可以有效地控制主体的运动。这表明 latents 可以被看作“缩小的图像”,它与生成图像保持相同的视觉位置分布。对于摄像机运动控制,一种直观的方法是基于摄像机运动信号 直接平移推理过程中的噪声 latents。这个想法的关键挑战是填补由于 latent 移动导致的图像缺失部分。
为了解决这个问题,我们提出从原始的噪声 latents 中采样 tokens,并用它们来填补缺失区域。基于先验知识,当摄像机在视频中移动时,它捕获的新场景在语义上与之前的场景接近。另一个假设是在一个正常的视频中,视觉元素更有可能在语义上与沿同一 轴或 轴的元素接近,而不是其他元素。时间步骤 处 latent 的平移过程可表示为:
其中, 和 分别是沿 轴和 轴采样的 token。为了避免在一次移动中 latent 发生剧烈变化,我们将平移分散到多个时间步骤中,每一步只移动少量 token。需要注意的是,需要在主体的大致布局固定之后、视频细节完成之前应用latents 平移。latent 平移仅用于时间步骤范围 。
图5 相机运动控制
实验
对比实验
定量评价
MotionBooth 在 Zeroscope 和 LaVie 模型上的表现优于所有baseline 模型,这表明我们提出的技术可以扩展到不同的 T2V 模型。由于主体和摄像机运动控制方法的免训练架构。值得注意的是,DreamVideo 在 T-Cons 和 flow error 方面取得了第二好的分数,这与我们的观察结果一致,即把视频数据作为辅助训练数据可提高视频生成性能。
表 1
在相机运动控制方面,将MotionBooth与 AnimateDiff 和 CameraCtrl 这两种基于训练的方法进行了比较。MotionBooth 利用latent 平移模块取得了优于两种 baseline 方法的结果。
表 2
定性评价
MotionBooth 在主体运动对齐、文本提示对齐和整体视频质量方面表现出色。相比之下,DreamBooth 和 CustomVideo 生成的视频背景模糊不清,这说明在没有视频数据的情况下进行训练时,生成的背景会出现退化。此外,CustomVideo 和 DreamVideo 很难捕捉到主体的外观特征,这可能是因为它们的方法只调整了扩散模型的一部分,导致学习过程无法完全收敛。
图6 定制化主题及运动控制
我们还针对摄像机运动控制进行了定性实验。AnimateDiff 仅限于基本动作,不支持用户自定义摄像机方向。虽然 CameraCtrl 方法可以接受用户输入,但它生成的视频不够美观,而且主体会出现闪烁。相比之下, MotionBooth 模型优于 Zeroscope 和 Lavie 模型,既符合用户定义的摄像机运动,又能保持时间一致性和较高的视频质量。
消融性实验
这些结果表明,所提出的主体区域损失、主体 token 交叉注意损失和视频保护损失有利于主体学习和生成运动感知定制视频。具体来说,在没有主体区域损失的情况下,R-DINO 指标显著下降了 0.256,这突出了主体区域损失在训练过程中过滤图像背景的核心贡献。
此外,"w/o class video" 实验使用了特定 class 的视频,而不是随机抽样的普通视频,这种方法限制了特定类别视频中的场景和背景,阻碍了模型有效泛化的能力。