VideoComposer——阿里最新运动可控的视频生成框架(详解)
在图像生成领域,自从Stable diffusion提出以来,国内也有很多框架产生,像百度的文心一格、阿里的Composer。其中阿里的Composer来自论文:Composer
它支持多重引导条件的图像生成,包括文字描述、语义信息、风格、色彩、草图、深度图、掩膜、灰度图等。能输入一种或几种条件,改变其他条件生成不同的图像。
在此基础上,阿里在6月3日开放了他们新的视频生成框架VideoComposer
论文地址:https://arxiv.org/abs/2306.02018
项目地址:https://videocomposer.github.io/
由于Composer框架中,证明了多种条件的组合对于图像生成的可控性有极大的帮助,所以VideoComposer采用了同样的思想,将视频合成分解成多个条件,提高视频生成的质量。具体来说,论文将视频分解成三种条件,即文本条件、空间条件和时间条件,然后训练VideoLDM,增强视频合成的可控性。
方法介绍
总体框架
三种生成条件:文本、风格输入CLIP模型得到特征表示,其他时空条件经过STC时空编码器得到特征表示,融合之后输入VideoLDM模型,最后解码得到输出结果。
三种条件
- 文本条件:文字描述,例如“A moving golden moon”
- 空间条件
- 风格特征(Style):例如一张梵高画风的图。注意风格条件和文本条件会经过CLIP模型得到相应的特征表示
- 单张图(Single Image):使用视频的第一帧,表达视频主要的内容和空间结构
- 单张草图(Single Sketch):使用 PiDiNet 提取第一个视频帧的草图,即图像的边缘提取图,能进一步增强细节信息
- 时间条件
- 运动矢量(Motion vector):即先后两帧逐像素的移动,表现形式为每一个像素的水平和竖直方向的位移,可以近似光流,计算量小,可 以从MPEG-4视频格式中直接提取。
- 深度序列(Depth Sequence):直接使用TPAMI的一篇论文的预训练模型
- 掩膜序列(Mask Sequence):引入掩膜来屏蔽局部时空内容,并强制模型根据可观察到的信息预测被屏蔽的区域
- 草图序列(Sketch Sequnce):草图序列可以提供更多的控制细节,从而实现精确的定制合成
- 运动矢量(Motion vector):即先后两帧逐像素的移动,表现形式为每一个像素的水平和竖直方向的位移,可以近似光流,计算量小,可 以从MPEG-4视频格式中直接提取。
STC-encoder
为了增强帧间一致性,设计了一个时空条件编码器(STC-encoder)来捕获时空中的相关信息。具体而言,首先利用二维卷积、池化、激活函数等提取局部空间信息,然后输入到一个时序 Transformer 层进行时间建模。
Video Latent Diffusion Model
简单说一下LDM,潜在扩散模型导致了Stable Diffusion的出现,它首先将图像通过一个编码器(如VAE)映射到潜变量空间z,可以降低内容和减少计算量。扩散模型中第一行是扩散过程,是将潜变量逐步加噪变为高斯噪声,第二行为逆扩散过程是学习去噪的过程,每一个Denosing Unet会学习加的噪声,然后去掉这个噪声,并利用一些条件特征(如文本、语义等)通过交叉注意力机制作为控制条件。
同LDM模型一样,首先使用一个图像的编码器将视频映射到潜变量空间,然后再Diffusion模型中使用3D-Unet作为编码解码的基本单元,损失函数采用与LDM相同的损失函数
实验结果
利用VideoComposer框架在多个数据集上进行了验证,证明这个框架有着很好的应用前景
应用任务
- 可控图像生成
- 单张图到视频的生成(可加入文本、运动、深度图、草图等)
- 视频修复
- 草图到视频的生成(这一项功能比较牛,适合新手创作)
- 使用手工控制的运动控制
- 运动迁移
- 视频迁移(对视频中的物体直接一步换脸)
- 视频风格迁移
- 草图序列到视频的生成
- 深度序列到视频的生成