大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍ByteDance的视频生成模型PixelDance,论文于2023年11月发布,模型上线于2024年9月,同时期上线的模型还有Seaweed(论文未发布)。
🌺优质专栏回顾🌺:
文章目录
论文
论文:https://arxiv.org/pdf/2311.10982
项目:https://makepixelsdance.github.io/
摘要
目前的视频生成方法主要侧重于文本到视频的生成 ,这样生成的视频片段往往动作极少。作者认为,仅依赖文本指令进行视频生成是不够且并非最优的。
在本文中,作者介绍了PixelDance,这是一种基于扩散模型 的新颖方法,它将视频生成的第一帧和最后一帧的图像指令与文本指令相结合。
这并不是首例提出依赖文本指令进行视频生成是不够的论文,在Meta的Emu Video中也提到了,但是两者的生成策略略有不同:
- Emu Video根据输入文本提示生成图像;之后再基于图像和文本的强条件生成视频。
- 输入的内容包括,文本,作为视频第一帧的图像,作为视频最后一帧的图像。
Emu Video模型的实现参考历史文章:AIGC视频生成明星------Emu Video模型
引言
输入
作者提出了一种新颖的视频生成输入
,其输入包括三部分:
- 文本指令;
- 视频片段的第一帧引入图像指令。第一帧的图像指令描绘了视频片段的主要场景。
- 视频片段的最后一帧引入图像指令。最后一帧的图像指令(在训练和推理中可选使用)描绘了片段的结尾,并为生成提供了额外的控制。
这种方法还可以创建更长的视频
,在这种情况下,模型会被多次应用,前一个片段的最后一帧将作为后续片段的第一帧指令。
训练和推理时的数据处理
相比于其他模型提出使用高度描述性的文本注释以更好地遵循文本指令。图像指令使用真实视频帧,更加直接和易于获取。
PixelDance是一种基于潜在扩散模型 的视频生成方法,以 <文本,第一帧,最后帧>指令为条件。
文本指令 由预训练的文本编码器编码,并通过交叉注意力机制 集成到扩散模型中。
图像指令 由预训练的VAE编码器编码 ,并与扰动后的视频潜在表示或高斯噪声连接,作为扩散模型的输入,如下所示:【在下节"方法"中会详细介绍】。
-
第一帧
- 在训练中,使用(真实)第一帧来强制模型严格遵循指令,保持连续视频片段之间的连续性。
- 在推理中,这个指令可以来源:
- 从文本到图像(T2I)模型中获得;
- 由用户提供。
-
最后一帧
- 在训练中,我们有意避免鼓励模型完全复制最后一帧指令 ,因为在推理中很难提供完美的最后一帧 ,在最后一帧的处理上,作者开发了三种技术:
- 第一,在训练中,最后一帧指令是从视频片段的最后三帧(真实帧)中随机选择的。
- 第二,我们向指令中引入噪声,以减少对指令的依赖并提高模型的鲁棒性。
- 第三,在训练中,我们以一定的概率(例如25%)随机丢弃最后一帧指令。
- 在推理中,用户可以使用基本的图像编辑工具 创建这种指令。模型能够适应用户提供的粗略草图作为指导,而不需要提供完美的最后一帧。简单而有效的推理采样策略如下(最后一帧指令的影响可以通过T来调整。):
- 在前T步去噪步骤中,利用最后一帧指令引导视频生成朝着期望的结束状态发展。
- 在剩余的步骤中,丢弃该指令,使模型能够生成更具时间连贯性的视频。
- 在训练中,我们有意避免鼓励模型完全复制最后一帧指令 ,因为在推理中很难提供完美的最后一帧 ,在最后一帧的处理上,作者开发了三种技术:
总结
作者在文中说明了其主要贡献可以总结如下:
- 提出了一种基于扩散模型的新颖视频生成方法PixelDance,它将第一帧和最后一帧的图像指令与文本指令相结合(还可以生成长视频,这一点是最重要的)。
- 为PixelDance开发了训练和推理技术,这不仅有效地提高了生成视频的质量,而且为用户提供了对视频生成过程更多的控制。
- 在公开数据上训练的模型在生成具有复杂场景和动作的高动态视频方面表现出色,为视频生成设定了新的标准。
相关工作
视频生成
扩散模型在逼真的文本到图像生成方面取得了显著进展,其表现出比GAN更强的鲁棒性,并且与基于Transformer的模型相比需要更少的参数。潜在扩散模型被提出通过在压缩的低维潜在空间中训练扩散模型来减轻计算负担。
对于视频生成,以往的研究 通常在预训练的文本到图像扩散模型的2D UNet 中添加时间卷积层和时间注意力层【如Gen-1和Emu Video等】。尽管这些进展通过集成超分辨率模块为高分辨率视频的生成铺平了道路,但生成的视频具有简单、动作极少的特点。
最近,视频编辑领域取得了显著进展,特别是在保持视频原始结构和运动的同时进行内容修改方面,但存在下面的问题:
- 寻找合适的参考视频进行编辑非常耗时。
- 限制了创作的范围,因为它排除了合成全新内容(例如,一只北极熊走在长城上)的可能性。
长视频生成
长视频生成是一项更具挑战性的任务,它要求连续的视频片段之间无缝过渡,并且场景和角色具有长期一致性。通常有两种方法:
- 自回归方法采用滑动窗口,以前一个片段为条件生成新的片段。自回归方法由于时间上的误差累积容易导致质量下降。
- 分层方法首先生成稀疏帧,然后插值中间帧。需要长视频进行训练,由于在线视频中频繁的镜头变化,这些长视频很难获得。
在本文中,PixelDance以自回归的方式生成连续的视频片段 ,并且在合成长期一致的帧方面比现有模型表现更优。同时,我们提倡用户积极参与生成过程,就像电影导演一样,以确保生成的内容与用户的期望紧密一致。
方法
本文试图让模型专注于学习视频内容的动态变化 ,以生成具有丰富动作的视频。将第一帧和最后一帧的图像指令与文本指令相结合 用于视频生成,并且我们有效地利用公开视频数据 进行训练。我们将在本节详细阐述模型架构 和量身定制的训练和推理技术。
模型架构
潜在扩散架构
论文中使用变分自动编码器(VAE)在潜在空间中进行去噪训练,以减轻计算负担。同时采用广泛使用的2D UNet作为扩散模型 ,它由一系列空间下采样层 和一系列带有跳跃连接 的空间上采样层构成。它由两个基本块组成:
- 2D卷积块
- 2D注意力块。
通过插入时间层将2D UNet扩展为3D变体,实现如下:
- 在2D卷积层之后添加沿时间维度的1D卷积层;
- 在2D注意力层之后添加沿时间维度的1D注意力层(
双向自注意力机制
)。
Runway的Gen-1和Meta的Emu Video也是如此实现的。
该模型进行图像和视频联合训练,以在空间维度上保持高保真的生成能力。对于图像输入,1D时间操作被禁用。
图像输入主要涉及两类:训练时的图像指令输入 以及联合训练时的普通图像输入。
我们使用预训练的CLIP文本编码器对文本指令进行编码 ,并通过UNet中的交叉注意力层 将嵌入文本注入,其中隐藏状态作为查询 ,文本作为键和值。
图像指令注入
将第一帧 和最后一帧 的图像指令 与文本指令相结合。在训练中,使用真实视频帧作为指令,这很容易获得。图像指令首先使用VAE将它们编码 到扩散模型的输入空间中,得到 f f i r s t f^{first} ffirst和 f l a s t f^{last} flast 。最终的图像条件构建 为: c i m a g e = [ f f i r s t , P A D s , f l a s t ] ∈ R F × C × H × W c^{image }=\left[f^{first }, PADs, f^{last }\right] \in \mathbb{R}^{F × C × H × W} cimage=[ffirst,PADs,flast]∈RF×C×H×W
其中 P A D s ∈ R ( F − 2 ) × C × H × W PADs \in \mathbb{R}^{(F-2) ×C ×H ×W} PADs∈R(F−2)×C×H×W 。然后,条件 c i m a g e c^{image} cimage与噪声潜在表示 z t z_t zt沿通道维度连接,作为扩散模型的输入。
训练和推理
图3:展示了PixelDance的训练过程 。原始视频片段和图像指令(位于红色和绿色框中)被编码为 z z z和 c i m a g e c^{image} cimage ,然后在添加不同噪声进行扰动 后,沿着通道维度进行拼接。
训练过程如上图所示。
第一帧指令:训练中使用真实的第一帧 ,使模型在推理中严格遵循第一帧指令。
最后一帧指令:有意避免鼓励模型完全复制最后一帧指令 。因为在推理时,预先无法获得真实的最后一帧,模型需要适应用户提供的粗略草图作为指导,以生成时间连贯的视频。为此,引入了三种技术来选择最后一帧指令:
- 第一,我们从视频片段的最后三帧真实帧中随机选择一帧作为训练的最后一帧指令。
- 第二,为了提高鲁棒性,我们用噪声扰动图像指令的编码潜在表示 c i m a g e c^{image} cimage 。
- 第三,在训练中,我们以概率 η \eta η随机丢弃最后一帧指令,将相应的潜在表示替换为零。
在第三种技术中,作者还提出了一种简单而有效的推理技术。在推理过程中,在总共T步去噪步骤的前 τ \tau τ步中 ,应用最后一帧指令 来引导视频生成朝着期望的结束状态发展,在后续步骤中丢弃该指令 ,以生成更合理且时间连贯的视频:
x ~ θ = { x ^ θ ( z t , f f i r s t , f l a s t , c t e x t ) , i f t < τ x ^ θ ( z t , f f i r s t , c t e x t ) , i f τ ≤ t ≤ T \tilde{x}{\theta}=\left\{\begin{array}{ll} \hat{x}{\theta}\left(z_{t}, f^{first }, f^{last }, c^{text }\right), & if t<\tau \\ \hat{x}{\theta}\left(z{t}, f^{first }, c^{text }\right), & if \tau \leq t \leq T \end{array} \right. x~θ={x^θ(zt,ffirst,flast,ctext),x^θ(zt,ffirst,ctext),ift<τifτ≤t≤T
τ \tau τ决定了模型对最后一帧指令的依赖程度,调整 τ \tau τ将实现各种应用。例如,我们的模型可以在没有最后一帧指令的情况下(即 τ = 0 \tau = 0 τ=0)生成高动态视频。此外,我们在推理中应用无分类器引导 ,它混合了模型在有文本提示和无文本提示条件下的分数估计。
实验
参照论文原文
两种生成模式
第一种是基础模式(Basic Mode)【和Emu Video 一样】,用户只需要提供一张指导图片+文本描述,PixelDance 就可以生成有高度一致性且有丰富动态性的视频,其中指导图片可以是真实图片,也可以利用现有的文生图模型生成,如下所示:
第二种是高级魔法模式(Magic Mode),给了用户更多发挥想象力和创造力的空间。在这种模式下,用户需要提供两张指导图片+文本描述,可以更好地生成更有难度的各种炫酷特效镜头,如下所示:
更多应用
草图指令
我们提出的方法可以扩展到其他类型的图像指令,如语义图、图像草图、人体姿态和边界框。为了证明这一点,我们以图像草图为例,使用图像草图作为最后一帧指令对PixelDance进行微调。结果如图10的前两行所示,表明一个简单的草图图像能够指导视频生成过程。
零样本视频编辑
PixelDance无需任何训练即可执行视频编辑,这通过将视频编辑任务转化为图像编辑任务来实现。如图10的最后一个示例所示,通过编辑给定视频的第一帧和最后一帧,PixelDance生成了与用户视频编辑期望一致的时间连贯视频。
结论
在本文中,作者提出了一种基于扩散模型的新颖视频生成方法PixelDance,它将第一帧和最后一帧的图像指令与文本指令相结合。作者还为该方法开发了专门的训练和推理技术。主要在WebVid - 10M上训练的PixelDance在合成具有复杂场景和动作的视频方面表现出卓越的熟练度,为视频生成设定了新的标准。
尽管我们的方法取得了显著成果,但仍有进一步改进的空间:
- 首先,模型可以从高质量的开放域视频数据训练中受益。
- 其次,在特定领域对模型进行微调可以进一步增强其能力。
- 第三,结合概述视频关键元素和动作的注释文本可以提高与用户指令的匹配度。
- 最后,PixelDance目前仅包含15亿参数,为未来的扩展提供了机会。未来的工作将对这些方面进行进一步研究。