Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation 阅读笔记

Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation 任何人皆可动画:用于角色动画的一致且可控的图像到视频

arXiv:2311.17117
项目及论文地址


摘要: 角色动画(Character Animation)旨在通过驱动信号(driving signals)从静止图像中生成角色视频。目前,扩散模型由于其强大的生成能力,已成为视觉生成的主流。然而,在图像到视频领域,尤其在角色动画领域,依然存在很多挑战,在该领域,时间上保持与角色细节信息的一致性仍是一个艰巨问题。在本文,我们利用扩散模型的优势,提出了一种适合角色动画的新框架。我们设计了ReferenceNet通过空间注意力合并细节特征 来保持参考图像中复杂外观特征的一致性。为了确保可控性和连续性,我们引入了一种高效的 Pose Guider来指导角色的运动,并采用了一种有效的时间建模方法来确保视频帧之间的平滑过渡。通过扩展训练数据,我们的方法可以为任意角色设置动画,与其他图像到视频的方法相比,本方法能在角色动画中产生更好的结果。此外,我们在时尚视频和人类舞蹈合成的基准上取得了 sota 结果。


1. Introduction

角色动画(Character Animation)是一项根据所需的姿态序列将源角色图像动画化为逼真视频的任务,具有许多潜在的应用,如在线零售、娱乐视频、艺术创作和虚拟角色。从GANs的出现开始,许多研究都深入到图像动画和姿态转换的领域。但生成的图像或视频仍存在局部失真、细节模糊、语义不一致和时间不稳定等问题,阻碍了这些方法的应用。
近年来,扩散模型在制作高质量图像和视频方面显现了其强大力量。研究人员已经开始利用扩散模型的架构及其预训练的强大生成能力,探索人体图像到视频的任务。DreamPose扩展了Stable Diffusion,专注于时尚图像到视频的合成,并提出了一个适配器模块来集成图像中的CLIP和VAE特征。但DreamPose需要微调输入样本来确保结果一致,导致低效率操作。DisCo也修改了Stable Diffusion来探索人体舞蹈的生成,通过CLIP整合角色特征,并通过ControlNet整合背景特征,但其在保留人物细节方面表现出不足,且存在帧间抖动问题。
此外,目前对角色动画的研究主要集中在特定任务和基准上,导致其泛化能力有限。最近,得益于文本到图像研究的进步,视频生成(例如,文本到视频、视频编辑)在视觉质量和多样性方面取得了显著进展。一些研究将文本到视频的方法扩展到图像到视频,但这些方法无法从图像中捕捉复杂的细节,虽然提供了多样性,但缺乏准确性,尤其应用于角色动画时,会导致角色外观的细粒度细节随时间产生变化。此外,在处理大量的人物动作时,这些方法难以产生一个持续稳定的过程。目前,还没有观察到可以同时实现可推广性和一致性的角色动画方法。
在本文,我们提出了“Animate Anyone”,一种能将角色图像转换成由期望的姿态序列控制的动画视频的方法。该方法继承了来自稳定扩散(Stable Diffusion SD)的网络设计和预训练权重,并修改 denoising UNet 来适应多帧输入。我们引入ReferenceNet来保持外观一致性,它被设计为对称的UNet结构,来捕捉参考图像的空间细节在 UNet block 的每个对应层,使用空间注意力将ReferenceNet的特征集成到 denoising UNet中,使模型能在一致的特征空间中全面学习其与参考图像的关系,极大提高外观细节的一致性。为确保姿态的可控性,我们设计了一种轻量级的姿态引导器 Pose Guider,将姿态控制信号有效集成到去噪过程中。为确保时间稳定性,我们引入时间层 Temporal Layer 来建模多帧间的关系,在模拟连续平滑时间运动过程的同时,保留了高分辨率细节。
本模型在5K个人物视频剪辑的内部数据集上训练,图1显示了各种角色的动画效果。
在这里插入图片描述

图1。在给定参考图像(每组中最左边的图像)的情况下,一致且可控的角色动画结果。我们的方法能够为任意角色设置动画,生成清晰且时间稳定的视频结果,同时与参考角色的外观细节保持一致。


与以前的方法相比,我们的方法具有几个显著的优势:
  1. 首先,它有效地保持了视频中角色外观的空间和时间一致性。
  2. 其次,它可以生成高清晰度视频,且不会出现时间抖动或闪烁等问题。
  3. 第三,它能够将任何角色图像动画化为视频,不受特定领域的限制。

我们在两个特定的人体视频合成基准(UBC fashion video dataset 和 TikTok dataset)上评估了我们的方法,仅使用每个基准的训练数据集,我们的方法取得了sota结果。我们还将我们的方法与在大规模数据上训练的一般图像到视频方法进行了比较,我们的方法在角色动画方面表现出卓越的性能。Animate Anyone 可以作为角色视频创作的基础解决方案,激发更多创造性应用程序的发展。

2. Related Works

2.1. Diffusion Model for Image Generation 图像生成的扩散模型

在文本到图像的研究中,基于扩散的方法取得了优越的生成结果,成为研究的主流。为降低计算复杂性,Latent Diffusion Model 在潜在空间中进行去噪,在有效性和效率间取得平衡。ControlNet和T2I Adapter通过结合额外的编码层,促进在例如pose、mask、edge和depth等各种条件下的受控生成,深入研究了视觉生成的可控性。一些工作进一步研究了在给定图像条件下的图像生成,IP-Adapter使扩散模型能够生成包含给定图像提示指定内容的图像结果。ObjectStitch 和 Paint-by-Example 利用CLIP,提出了在给定图像条件下基于扩散的图像编辑方法。TryonDiffusion将扩散模型应用于虚拟服装试穿任务,并引入了并行UNet结构。

2.2. Diffusion Model for Video Generation 视频生成的扩散模型

随着扩散模型在文本到图像应用中的成功,文本到视频的研究也从中汲取了灵感。许多研究探索在文本到图像(T2I)模型的基础上增强帧间注意力来实现视频生成。一些工作通过插入时间层将预训练的 T2I 模型转化为视频生成器。Video LDM 首次提出仅在图像上预训练模型,然后在视频上训练时间层。AnimateDiff 提出了一种在大规模视频数据上训练的运动模块,该模块可以在没有特定调整的情况下注入到大多数个性化 T2I 模型中。我们的方法从这种时间建模方法中获得了灵感。
一些研究将文本到视频的功能扩展到图像到视频。VideoComposer 在训练期间将图像作为条件控制合并到扩散输入中。AnimateDiff 在去噪过程中对图像潜在噪声和随机噪声进行加权混合。VideoCrafter 结合了 CLIP 的文本和视觉特征,作为 cross-attention 的输入。然而,这些方法在实现稳定的人体视频生成方面仍面临挑战,并且结合图像条件输入仍需要进一步研究探索。

2.3. Diffusion Model for Human Image Animation 人体图像动画的扩散模型

图像动画旨在基于一个或多个输入图像生成图像或视频。由于扩散模型具有优越的生成质量和稳定的可控性,因此很多研究将其集成到人体图像动画中。PIDM 提出了 texture diffusion blocks,以将所需的纹理模式注入到用于人体姿态转移的去噪中。LFDM合成潜在空间中的光流序列,基于给定条件扭曲输入图像。LEO 将运动表示为 flow maps 序列,并使用扩散模型来合成运动代码序列。DreamPose利用预训练的Stable Diffusion model,并提出了一种适配器来建模 CLIP和 VAE image embeddings。 DisCo 从 ControlNet 中汲取灵感,解耦姿态和背景的控制。尽管结合了扩散模型来提高生成质量,但这些方法仍然存在纹理不一致和时间不稳定等问题。此外,还没有方法来研究和展示角色动画中更泛化能力。

3. Methods

我们的目标在于 角色动画的 pose-guided image-to-video 合成。给定描述角色外观的参考图像和姿态序列,模型将生成角色的动画视频。方法的pipeline如图2所示。本节先在第3.1节中简要介绍了稳定扩散,为本方法奠定了基础框架和网络结构。然后在第3.2节中对设计细节进行详细解释。最后在第3.3节中介绍了训练过程。
在这里插入图片描述

图2:方法概述。先使用 Pose Guider 编码姿态序列,再融合多帧噪声,然后由 Denoising UNet 进行去噪。如右侧虚线框所示,Denoising UNet 的计算块由空间注意力(spatial-attention)、交叉注意力(cross-attention)和时间注意力(temporal-attention)组成。参考图像的整合涉及两方面:(1)通过ReferenceNet提取细节特征,并将其用于空间注意力。(2)通过CLIP图像编码器提取语义特征用于交叉注意力。时间注意力在时间维度上运作。最后,VAE解码器将结果解码为视频剪辑。

3.1. Preliminariy: Stable Diffusion

此方法是从 Latent diffusion model(LDM)发展而来的 Stable Diffusion(SD)的扩展。为了降低模型的计算复杂性,在潜在空间建模特征分布。SD开发了一个自动编码器来建立图像的隐式表示,该自动编码器由编码器 E \mathcal{E} E 和解码器 D \mathcal{D} D 组成,给定图像 x,编码器先将其映射为潜在表示: z = E ( x ) z=\mathcal{E}(x) z=E(x),然后解码器重建它: x r e c o n = D ( z ) x_{recon}=\mathcal{D}(z) xrecon=D(z)
SD学习将正态分布噪声 ϵ \epsilon{} ϵ去噪为真实的潜在 z。训练期间,image latent: z 在t个时间步长中扩散以产生 noise latent: z t z_t zt。并且训练去噪UNet来预测所应用的噪声。优化过程定义为以下目标函数:
L = E z t , c , ϵ , t ( ∣ ∣ ϵ − ϵ θ ( z t , c , t ) ∣ ∣ 2 ) L=\mathbb{E}_{z_{t}, c, \epsilon, t}(||\epsilon - \epsilon_\theta(z_t, c,t)||^2) L=Ezt,c,ϵ,t(∣∣ϵϵθ(zt,c,t)2)

ϵ θ \epsilon_\theta ϵθ 表示 denoising UNet 的函数,c 表示条件信息的 embeddings。原始SD用CLIP ViT-L/14 文本编码器将文本提示表示为用于生成文本到图像的 token embeddings。denoising UNet由四个下采样层、一个中间层和四个上采样层组成。一个层内的一个 typical block 包括三种类型的计算:2D卷积、self-attention 和 cross-attention(称为Res-Trans块)。Cross-attention 在 text embedding 和相应的网络特征之间进行。
推理阶段, z T z_T zT以初始时间步长 T 从随机高斯分布中采样,并通过确定性采样过程(例如DDPM、DDIM)逐渐去噪并恢复到 z 0 z_0 z0。在每次迭代中,denoising UNet 预测对应于每个时间步长 t 的潜在特征上的噪声。最后,解码器 D \mathcal{D} D 重构 z 0 z_0 z0 来获得生成的图像。

3.2. Network Architecture

Overview. 图2所示为方法概述,网络的初始输入由多帧噪声组成。denosing UNet基于SD的设计进行配置,采用与SD相同的框架和 block units,并继承SD的训练权重。此外,本方法包含了三个关键组件:1)ReferenceNet:从参考图像中编码人物角色的外观特征;2) Pose Guider: 编码动作控制信号,以实现角色的动作可控;3)Temporal layer:编码时间关系,保证人物运动的连续性。

ReferenceNet. 在 text-to-viedo 任务中,文本 prompts 阐明了 high-level 语义,只需要与生成的视觉内容具有语义相关性。但在 image-to-video 任务中,图像封装了更 low-level 的细节特征,要求生成结果的精确一致性。在之前专注于图像驱动生成的研究中,大多数方法在 cross-attention 中使用 CLIP image encoder 作为 text encoder 的替代品。但这种设计未能解决与细节一致性相关的问题,其中一个限制原因是CLIP图像编码器的输入包括低分辨率(224×224)图像,丢失了重要的细粒度细节信息。另一个原因是CLIP被训练为匹配文本的语义特征,强调高级特征匹配,导致特征编码中的细节特征不足。
因此,我们设计了一个名为ReferenceNet的参考图像特征提取网络。ReferenceNet 采用与 denoising UNet 除时间层外相同的框架。与 denoising UNet类似,ReferenceNet 继承原始SD的权重,并且独立更新每个权重。对于如何将ReferenceNet中的特征整合到 denoising UNet 中,具体而言,如图2所示,用空间注意力层代替self-attention层。给定来自 denoising UNet 的特征图 x 1 ∈ R t × h × w × c x_1∈R^{t×h×w×c} x1Rt×h×w×c 和来自ReferenceNet的特征图 x 2 ∈ R h × w × c x_2∈R^{h×w×c} x2Rh×w×c,先将 x 2 x_2 x2 复制 t 次,并沿 w 维度将其与 x 1 x_1 x1 进行 concatenate,然后进行 self-attention,并提取特征图的前半部分作为输出。这种设计具有两点优势:

  1. ReferenceNet可以利用原始SD中预训练的图像特征建模功能,提取初始化良好的特征。
  2. 其次,由于 ReferenceNet 和 denoising UNet 间具有基本相同的网络结构和共享的初始化权重,denoising UNet 可以选择性地从 ReferenceNet 中学习在相同特征空间中相关的特征。

此外,采用CLIP图像编码器来使用交叉注意力。利用与文本编码器共享的特征空间,该特征空间提供了参考图像的语义特征,能够有效加快整个网络训练过程的初始化。
一种可比较的设计是ControlNet,它使用 zero convolution (零卷积(Zero Convolution)是一种特殊类型的卷积操作,它在卷积核中所有元素都为零的情况下进行。在这种情况下,卷积操作实际上不会对输入数据进行任何变换,因为所有的权重都为零。因此,零卷积的结果与输入数据完全相同。在深度学习和计算机视觉领域,零卷积通常用于调整特征图的尺寸或通道数,而不会改变其内容。例如,通过将一个1x1的零卷积核应用于一个3x3的特征图,可以将特征图的尺寸从3x3变为1x1。同样,通过将多个1x1的零卷积核堆叠在一起,可以实现更复杂的通道数调整操作。)将额外的控制特征引入到denoising UNet中。然而,诸如深度和边缘的控制信息在空间上与目标图像对齐,而参考图像和目标图像在空间上相关但不对齐,因此,ControlNet不适合直接应用。
虽然 ReferenceNet 为 denoising UNet 引入了数量相当的参数,但在基于扩散的视频生成中,所有视频帧都要经过多次去噪,而 ReferenceNet 在整个过程中只需要提取一次特征,因此在推理过程中,ReferenceNet 不会导致计算开销的显著增加。

Pose Guider: ControlNet 展示了文本之外的高鲁棒性条件生成能力。不同于这些方法,由于denoising 需要 fine-tuned,为了防止增加计算复杂性,我们没有加入额外的控制网络,而是采用了一个轻量级的Pose Guider。Pose Guider 利用四个卷积层(4×4 kernel,2×2 stride,使用16,32,64,128 channels,类似于论文 [Adding conditional control to text-to-image diffusion models] 中的 condition encoder)以使姿态图像与 noise latent 具有相同的分辨率。随后,处理后的姿态图像添加noise latent 再输入到 denoising UNet中。使用高斯权重初始化 Pose Guider,在 final projection layer中使用零卷积。

Temporal Layer: 许多研究将补充的时间层结合到 T2I 模型中,以捕捉视频帧间的时间相关性,这种设计便于从基本T2I模型转移预训练的图像生成能力。遵循这一原则,我们的时间层在 Res-Trans block 内的 spatial-attention 和 cross-attention 分量后被整合。Temporal Layer 的设计灵感来自AnimateDiff,具体而言,对于特征图 x ∈ R b × t × h × w × c x∈R^{b×t×h×w×c} xRb×t×h×w×c ,我们先将其 reshape 为 x ∈ R ( b × h × w ) × t × c x∈R^{(b×h×w)×t×c} xR(b×h×w)×t×c,然后进行 temporal attention,即沿维度 t 的 self-attention。来自 Temporal Layer 的特征通过残差连接被合并到原始特征中。这种设计与我们将在下面的小节中描述的 two-stage 训练方法相一致。Temporal Layer 仅应用于denoising UNet 的 Res-Trans block内,ReferenceNet 仅计算单个参考图像的特征,且不参与时间建模。由于 Pose Guider 实现了连续角色运动的可控性,实验表明,Temporal Layer 确保了时间的平滑性和外观细节的连续性,从而无需复杂运动建模。

3.3. Training Strategy

two stage的训练策略:

  1. 第一阶段使用单独的视频帧进行训练。在 denoising UNet 中暂时去掉时间层,以 single-frame noise 作为模型输入。ReferenceNet 和 Pose Guider 也在此阶段进行训练。从整个视频剪辑中随机选择图像作为参考图像。基于来自SD的预训练权重来初始化 denoising UNet 和 ReferenceNet的模型。使用高斯权重初始化 Pose Guider,但 final projection layer 使用零卷积。VAE的编码器和解码器以及CLIP图像编码器的权重都保持不变。该阶段的优化目标是使模型能够在给定参考图像和目标姿态条件下生成高质量的动画图像。
  2. 第二阶段将时间层引入到先前训练的模型中并且使用来自 AnimateDiff 的预训练权重对其进行初始化。该模型的输入包括一个24帧的视频剪辑。此阶段只训练时间层,同时固定网络其余部分的权重。

4. Experiments

4.1. Implementations

为了证明此方法在制作各种角色动画方面的适用性,我们从互联网上收集了5K个角色视频片段(2-10秒长)来训练模型。我们使用 DWPose 来提取视频中角色的姿态序列,包括身体和手,并根据OpenPose 将其渲染为姿态骨架图像。在4个NVIDIA A100 GPU上进行了实验。在第一个训练阶段,对单个视频帧进行采样、resized ,center-cropped,使其分辨率达到768×768。训练共进行了30000 steps,batch size=64。第二个训练阶段用 24-frame 视频序列和 batch size=4 对时间层进行10000 steps 的训练。两阶段的 lr=1e-5。在推理过程中,rescale driving pose skeleton 的长度来近似参考图像中角色的骨架长度,并使用DDIM采样器进行20步去噪。采用了时间聚合方法,将不同 batch 的结果连接起来生成长视频。为了与其他图像动画方法进行公平比较,不使用额外数据,在两个特定的基准(UBC fashion video dataset 和 TikTok dataset)上训练模型,而不使用额外的数据。

4.2. Qualitative Results 定性结果

图3展示了本方法可以为任意角色设置动画,包括全身人物、半身肖像、卡通人物和人形人物。我们的方法能够生成高清晰度和逼真的角色细节。即使在大幅运动下,也能保持与参考图像的时间一致性,并在帧之间表现出时间连续性。
在这里插入图片描述

图3。定性结果。给定一个参考图像(最左边的图像),我们的方法展示了为不同角色设置动画的能力,包括全身人物、半身肖像、卡通人物和人形人物。该图以清晰、一致的细节和连续的动作展示了结果。


4.3. Comparisons

Fashion Video Synthesis 结果
在这里插入图片描述

表1。Fashion Video Synthesis的定量比较。 Dreampose* 表示没有样本微调的结果。


在这里插入图片描述

图4。Fashion Video Synthesis的定性比较。DreamPose和BDMM在保留服装精细纹理细节方面存在不足,而我们的方法在保留特殊细节特征方面表现出色。


Human Dance Generation结果
在这里插入图片描述

表2:Human Dance Generation的定量结果


在这里插入图片描述

图5。DisCo和我们方法间的定性比较结果。DisCo生成的结果显示了姿势控制错误、颜色不准确和细节不一致等问题。相比之下,我们的方法在解决这些问题方面有了显著的改进。


General Image-to-Video Methods 一般图像到视频方法。

在这里插入图片描述

图6。与 image-to-viedo 方法的定性比较结果。当前的 image-to-viedo 方法难以产生实质性的人物动作,且难以保持与人物图像特征的长期一致性。


4.4. Ablation study

在这里插入图片描述

图7:不同设计的消融实验。只有我们的ReferenceNet才能确保角色外观中的细节保持一致。


在这里插入图片描述

表3:消融实验的定量比较结果

5. Limitations

  1. 首先,与许多视觉生成模型类似,我们的模型难以为手部运动生成高度稳定的结果,有时会失真和运动模糊。
  2. 由于图像只能提供一个角度的信息,因此在角色移动过程对于不可见部分的生成结果回遇到潜在的不稳定性。
  3. 由于DDPM的使用,与基于非扩散模型的方法相比,我们模型的操作效率较低。

6. Conclusion

本文提出了一个角色动画框架: Animate Anyone,能够将角色照片转换为由所需姿态序列控制的动画视频,与此同时确保外观一致性和时间稳定性。我们提出了ReferenceNet,它保留了复杂的角色外观,并且实现了有效的姿态可控性和时间连续性。我们的方法不仅适用于一般的角色动画,且在特定的基准测试中也优于现有的方法。“Animate Anyone”是一种基础方法,在未来可能扩展到各种 image-to-viedo 应用程序中。

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值