2023年论文 《AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning》
1 摘要
这篇论文介绍了一种新的框架,名为AnimateDiff,它旨在解决将运动动态添加到高质量的个性化文本到图像(T2I)模型中,并使这些模型能够生成动画的问题。
-
背景:随着文本到图像扩散模型(如Stable Diffusion)和个人化技术(如DreamBooth和LoRA)的发展,人们现在可以以较低的成本将想象转化为高质量的图像。
-
问题:然而,给现有的高质量个性化T2I模型加入运动动态,并让它们生成动画仍然是一个开放性的挑战。
-
解决方案 - AnimateDiff框架:
- 核心组件:该框架的核心是一个可插拔的运动模块,这个模块只需训练一次就可以无缝集成到任何来自相同基础T2I模型的个性化T2I模型中。
- 学习过程:通过提出的训练策略,运动模块能从真实世界的视频中有效地学习可迁移的运动先验知识。
- 应用:一旦训练完成,运动模块可以被插入到一个个性化的T2I模型中,形成一个个性化的动画生成器。
-
改进 - MotionLoRA:此外,还提出了MotionLoRA,一种轻量级微调技术,允许预训练的运动模块适应新的运动模式,例如不同的镜头类型,同时保持低的训练和数据收集成本。
-
评估:研究者在从社区收集的几个公开的代表性个性化T2I模型上评估了AnimateDiff和MotionLoRA。结果表明,他们的方法帮助这些模型生成时间上平滑的动画片段,同时保持视觉质量和运动多样性。
2 实现思路
作者提出的AnimateDiff,可对于任意个性化文生图模型生成动图,收集每个个性化域对应视频进行finetune是不方便的,因此作者设计运动建模模块,在大规模视频上进行finetune,学习到运动先验。
它的特点是可以把个性化的文生图(T2I)模型拓展成一个动画生成器,而无需对文生图模型微调。这得益于作者从大型视频数据集中学习到运动先验,这些运动先验保存在运动模块(motion module)中,使用时只需要把运动模块插入到个性化T2I模型中,T2I模型可以是用户训练的,也可以是从CivitAI或Huggedface等平台下载,个性化T2I模型就是在T2I模型的基础上融合或替换LoRA或dreambooth的权重。个性化T2I模型+运动模块(motion module)最终生成具有适当运动的动画片段。如下图所示:
Animated的训练流程就是在冻结的文生图模型中附加一个新初始化的运动建模模块,然后用视频片段数据集对运动建模模块进行训练,以提炼出合理的运动先验。训练完成后,只需往文生图模型中插入该运动建模模块,文生图模型就能轻松成为文本驱动的视频生成模型,生成多样化和个性化的动画图像。如下图所示
其中,所有帧的latent tensor是一起初始化、一起去噪的,不是一帧接着一帧生成的,所以我们后面要讲的运动模块就是在计算这些帧与帧之间的注意力,同时,这个特点也造就了视频长度是固定的、且不能太长。
3 技术细节
技术细节对应论文的3.3. Motion Modeling Module及其后面章节。
3.1 张量的形状变化
因为视频比图片多了时间这一个维度,所以原始输入张量是5维的,分别是 [ b a t c h , c h a n n e l s , f r a m e s , h e i g h t , w i d t h ] [batch,channels,frames,height,width] [batch,channels,frames,height,width],而为了与生成2D图像的T2I模型兼容,作者将frame轴变形到batch轴,也就是形状变成 [ b a t c h × f r a m e s , c h a n n e l s , h e i g h t , w i d t h ] [batch \times frames,channels,height,width] [batch×f