【论文阅读】AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Modelswithout Specific Tuning

AnimateDiff: 个性化文本到图像扩散模型的动画化,无需特定调整

paper:https://arxiv.org/abs/2307.04725

code:GitHub - guoyww/AnimateDiff: Official implementation of AnimateDiff.

目录

1. 摘要

2. 引言

3. 算法

3.1 Preliminaries

3.2. Personalized Animation

3.3 Motion Modeling Module

4. 实验

5.限制

​6. 结论


1. 摘要

随着文生图模型Stable Diffusion及个性化fine-tune方法:DreamBooth、LoRA发展,人们可以用较低成本生成自己所需的高质量图像,导致对于图像动画的需求越来越多。本文作者提出一种框架,可将现有个性化文生图模型所生成图片运动起来。

AnimateDiff 在文生图模型中插入动作建模模块,并在视频数据上学习合理的动作先验。在训练过程中,首先对模型结构进行了扩展,使之可以接受视频格式数据;同时在参数更新时,保持原有文生图模型权重不变,使得训练后的网络权重可以即插即用地驱动不同版本的定制化微调模型,而无需针对相应模型做任何优化。在推理时,插入动作建模模块直接到相应定制化模型中,组合后的模型对采样的噪声序列去噪,生成相应的动画片段。

与现有方法相比,AnimateDiff 由于从大量视频中学习了合理的动作先验,生成的动画在连续性上表现更优。不同于现有大部分视频生成框架,由于锁定了文生图模型的权重,生成画面的质量相比原有模型并没有明显降低。


2. 引言

作者提出的AnimateDiff,可对于任意个性化文生图模型生成动图,收集每个个性化域对应视频进行finetune是不方便的,因此作者设计运动建模模块,在大规模视频上进行finetune,学习到运动先验。


3. 算法

图2. AnimateDiff的流程。给定一个基础的T2I模型,首先在视频数据集上训练一个运动建模模块,以提取运动先验知识。在这个阶段,只更新运动模块的参数,从而保留了基础T2I模型的特征空间。推理阶段,经过训练的运动模块可以将 在基础T2I模型上调优的个性化模型 转化为 动画生成器,然后通过迭代去噪过程产生多样化和个性化的动画图像。

3.1 Preliminaries

预备知识。作者使用通用文生图模型SD,对于个性化图像生成领域,如果采集目标域数据进行finetune模型,成本大,DreamBooth通过设置稀有字符串作为目标域标志,同时增加原始模型生成图像进行训练,减少信息丢失;LoRA训练模型参数差值∆W,为降低计算量,作者将∆W解耦为两个低秩矩阵,只有transformer block中映射矩阵参与finetune。


3.2. Personalized Animation

Personalized Animation定义为:给出个性化文生图模型,比如DreamBooth或LoRA,通过少量训练成本或不训练即可转换为一个动画生成器,保留原始域信息及质量。

为达到上述目的,常规方案是:扩展模型,增加一个关注时间的结构,通过大量视频数据,学习合理运动先验。但是个性化视频收集成本大,有限视频将导致源域信息丢失。

作者选择训练一个一般化的运动建模模块,推理时将其插入文生图模型。作者实验验证发现,该模块经过训练后,可用于任何基于同一基础模型的文生图模型,无需特定调整。因为几乎未改变基础模型特征空间,ControlNet也曾证明过。

图2:AnimateDiff的流程。给定一个基础的T2I模型(例如LDM)。首先在视频数据集上训练一个运动建模模块,以提取运动先验知识。在这个阶段,只有运动模块的参数被更新,从而保留了基础T2I模型的特征空间。推断阶段,经过训练的运动模块可以将任何基于基础T2I模型调优的个性化模型转化为动画生成器,然后通过迭代去噪的过程产生多样化和个性化的动画图像。


3.3 Motion Modeling Module

网络扩展:

原始SD仅能用于处理图像数据,若要处理5D视频张量(batch × channels × frames ×height × width),则需要扩展网络。作者将原模型中,每个2D卷积及attention层,转换到仅关注空间的伪3D层,将frame维度合并到batch维度。新引入的运动模块可在每个batch中跨帧执行,使得生成视频跨帧平滑,内容一致,细节如图3所示。

图3. 运动模块的细节。模块插入(左):我们的运动模块被插入在预训练图像层之间。当数据批次通过图像层和我们的运动模块时,其时间和空间轴分别被重新调整为批次轴。模块设计(右):我们的模块是一个带有零初始化输出投影层的普通时间变换器。


运动建模模块设计:

该模块主要用于高效交换跨帧信息,作者发现普通的时空transformer足够建模运动先验。其由几个self-attention在时空维执行,特征图z的空间维度height、width先被reshape到batch维度,得到长度frames的batch∗height∗width的序列,该映射特征经过几个self-attention block,如式4,

这个操作使得模块能够捕捉到在时间轴上同一位置的特征之间的时间依赖关系。为扩大感受野,将该模块插入到U型扩散网路每个分辨率层级。此外,self-attention中增加正弦位置编码,使得网络关注当前帧时空位置。

训练目标:

运动建模模块的训练过程与LDM类似。首先,通过预训练的自编码器,将采样的视频数据逐帧编码为隐向量。然后,使用定义好的前向扩散调度对潜在代码进行噪声处理:

加入了运动模块的扩散网络,将带有噪声的隐向量和相应的文本提示prompt作为输入,预测增加到隐向量上的噪声:

优化过程中,基础的T2I模型的预训练权重被冻结,以保持其特征空间不变。(参考controlnet)


4. 实验

图4. 定性结果。展示了注入了运动建模模块的模型生成的16个动画片段。每行的两个样本属于同一个个性化的T2I模型。从每个动画片段中采样了四帧。

图5,作者比较AnimateDiff(第2、4行)与Text2Video-Zero(第1、3行),帧与帧之间内容一致性,Text2Video-Zero内容缺少细粒度一致性。AnimateDiff保持了更好的时间平滑性。

消融实验:



表2作者比较3种不同扩散机制,可视化结果如图6,Schedule B达到两者均衡。

5.限制

作者发现,当个性化文生图模型数据域为非逼真图片时,更容易生成失败,如图7,有明显伪影,不能生成合理运动。归因于训练视频与个性化模型之间存在较大分布差异。可通过收集目标域视频finetune解决。



6. 结论

作者提出AnimateDiff,可将大多数个性化文生图模型进行视频生成,基于简单设计的运动建模模块,在大量视频数据学习运动先验,插入个性化文生图模型用于生成自然合理的目标域动图。

参考:AnimateDiff论文解读-基于Stable Diffusion文生图模型生成动画-CSDN博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值