1.Introduction
本文旨在借助视频扩散模型的motion prior来解决开放领域图像动画问题,提出了一种可控扩散图像动画方法,能够在保留细节的同时对图像中的任意对象进行动画处理。为了增强用户对动画过程的控制能力,引入了motion area guidance和motion strength guidance,实现了对多个对象的运动速度的精确和交互式控制。
为了准确识别图像中可移动对象及其对应的可移动区域,引入了motion area mask,将mask沿video latent representation的通道维度添加,并将卷积权重初始化为0,使其能够在训练中逐步调整。
2.related work
2.1 Image Animation
图像动画涉及从静态图像创建视频序列。Make-it-move通过动作锚点捕捉动作模式,然后用于条件VQ-VAE,模型受限于训练数据中特定的运动-对象对的依赖。LFDM采用两阶段过程进行人为中心视频生成。
2.2 Video generation with diffusion models
VDM(3DUnet)、Imagen Video、Make-A-Video、Tune-A-Video、Text2Video-Zero、ControlVideo、VideoCraft、VideoComposer、DragNUMA
3.Method
3.1 Background
视频扩散模型在图像LDM的基础上,引入了3DUnet,3DUnet在每个空间卷积之后加入了额外的时间卷积,并在每个空间注意力之后加入了时间注意力块,为了集成来自图像数据的生成能力,3DUnet同时训练和视频数据。
3.2 Image Animation with video diffusion model
采用LDM VAE将参考图像编码成潜在表示Zref,以保留更多的外观细节,VAE被训练用于图像重建,因此抱恨了丰富的低层次图像特征,比CLIP,可能包含更少的语义信息,但扩散模型本身对语义的理解不错。如图2所示,训练流程采用参考图作为初始帧,并采用自回归策略来预测后续帧,实现图像动画而无需额外的模型参数,第一帧的内容通过temporal conv和temporal attention传播到后面帧,只有temporal layer被微调,空间层保持冻结,在每个时间步t,将干净的Zref和含有N帧噪声潜在Zt进行连接,得到一个具有N+1帧的输入潜在code,然后从去噪后的Zt中选出最后N帧。
稍微描述一下网络结构:
conv layer、temporal conv、temporal attention、cross attention中,conv对应ResBlock,接受各种embedding,本文中接受timestep和motion strength,spatialTransformer对应cross attention,这个其实比较复杂的,有self attention,也有cross attention,文本增加的是temporal layer层。
3.3 Motion area guidance
这块其实再说构造数据集时如何做的,如何生成运动区域motion area,通过多帧之间的灰度图的差异构建了mask,至于生成的图除了笔画区域之外的其他地方为什么会有抖动,和此处无关,训练时,只有像素变化大的区域才会成为mask,推理时纯粹是生成的不好。
为了准确识别图像中可移动对象及其对应的可移动区域,引入了motion area mask,为用户提供对输入图像的可移动区域的精准控制。通过在通道维度将运动mask与视频潜在code进行串联,借鉴controlnet,将mask通道的卷积核初始化为0,以保持原始的视频生成能力。
使用以下方法从真实视频中构建训练对,包括视频和相应的运动区域mask,首先,将给定的N帧视频样本转换为灰度图像,计算超过阈值Tm的帧差异,这些差异被合并为创建差异二值mask,
前一帧和后一帧中的灰度值差异,阈值Tm确定了可移动区域和不可移动区域中的运动强度,如果Tm设置的太高,非移动区域的物体可能出现运动,Tm设置的太低,不可移动的区域中的物体可能完全冻结,可能导致运动区域边界出现伪影,在d中识别这些差异区域的轮廓,并通过将标签1分配给这些轮廓内包含的像素,构建运动区域mask,表示可移动区域m。对视频潜在表示Z0进行后处理,将非移动区域的像素充值为第一帧的值。
Zti表示视频在时间步t中的第i帧,为了处理人眼无法察觉的微小运动,这些运动不应被标记为可移动区域,显式指示模型保持这些像素不变,运动阈值Tm被调整以确保重建视频Z0‘与Z0之间的视觉差异保持相对较小。
3.4 Motion strength guidance
在训练中,采样帧速率会影响生成视频中移动物体的运动速度,然后,仅使用帧速率作为视频生成中运动速度的指导是不够的,因为相同帧速率的视频可能会基于其内容表现出不同的运动速度,提出了motion strength s指标,用户丁强测量目标运动区域的运动速度。
运动强度s量化了潜在空间中帧之间的差异,和timesteps类似,将motion strength投射到positional embedding中,并将其添加到每个残差块中的每个帧中,以确保运动强度均匀的应用于每个帧。
不好收敛,新增了一个loss,直接监督帧间差异。
3.5 Guidance composition
图像动画模型融合了来自参考图像、文本、motion area和motion strength,在训练是,会变化文本提示和运动区域,如果文本指示与参考图像的内容不一致,模型会优先保证对图像的忠实性,通过对motion area guidance,运动区域之外的对象完全被冻结。
3.6 Shared noise inference
在训练中,通过在视频潜变量上添加噪声来构建输入潜变量,在推理中,从随机高斯噪声中进行采样而没有任何真实数据信号时,扩散模型无法在测试生成忠实的图像动画,通过使用DDPM的前向过程在Zref上添加噪声来获取基础噪声,将基本噪声和Zref结合起来,保留参考图像信息的同时引入帧特定的多样性。
4.Experiments
4.1 Experimental setup
数据集 模型从VideoComposer中初始化,在webvid10M中预训练,在HD-VILA-100M中随机抽取了20000个视频进行微调,以取出水印,在MSR-VTT上评测,MSR-VTT是一个开放检索的视频检索数据集,其中每个视频片段都有20个自然语言语句作为描述,通常,其测试集中的2990个视频片段对应的文本描述被用作生成视频的提示。
评测指标,FVD
实现细节,AdamW,lr为5x10-5,一块A10GPU,训练20G显存,推理6G显存,训练中进行了多帧率采样获得384x384分辨率的8帧训练片段,bs为2,10k迭代,耗时1天,Tm为5.