AIGC专栏11——EasyAnimateV2布局详解与Lora练习 最大支持768x768 144帧视频天生

[复制链接]
发表于 2026-2-20 08:20:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
学习前言

研究了好长时间的文生视频,EasyAnimate到了V2版本,我们将vae修改成了magvit,同时支持图片和视频的练习与猜测,别的还引入了U-vit进步练习的稳固性并加快收敛。
如今EasyAnimate最大支持768x768 144帧的视频天生,FPS为24,最长6秒。本文告急举行EasyAnimateV2的算法详解,而且先容一下怎样通过EasyAnimate练习本身的Lora。

源码下载所在

https://github.com/aigc-apps/EasyAnimate
感谢各人的关注。
EasyAnimate V2简介

技能储备

Diffusion Transformer (DiT)

DiT基于扩散模子,以是难免包罗不绝去噪的过程,假如是图生图的话,尚有不绝加噪的过程,此时离不开DDPM那张老图,如下:

DiT相比于DDPM,利用了更快的采样器,也利用了更大的分辨率,与Stable Diffusion一样利用了隐空间的扩散,但大概更偏研究性子一些,没有利用非常大的数据集举行预练习,只利用了imagenet举行预练习。
与Stable Diffusion差异的是,DiT的网络布局完全由Transformer构成,没有Unet中大量的上下采样,布局更为简单清楚。
在EasyAnimate中,我们将Motion Module网格化后引入到DIT中,借助DIT的强盛天生本事,天生视频结果也还不错。
Motion Module


AnimateDiff是一个可以对文生图模子举行法画处置惩罚的实用框架,其内部操持的Motion Module无需举行特定模子调解,即可一次性为大多数现有的个性化文本转图像模子提供动画化本事。
EasyAnimate参考AnimateDiff利用Motion Module包管视频的一连性。
Motion Module只关注特性点在时间轴上的特性信息,以提炼出公道的运动先验,在AnimateDiff中只更新了运动模块的参数,以是Motion Module是一个可插入的布局,可以用在差异的微调backbone中。
在EasyAnimate中,为了更好的天生结果,我们将backbone连同motion module一起finetune,同时连合图片和视频一起finetune。在一个pipeline中即实现了图片的天生,也实现了视频的天生。
U-VIT


在练习过程中,我们发现纯DIT布局在练习视频时不算稳固,经常存在丧失忽然上升的环境,而且由于视频的特性层较大,拟合速率较慢。
参考U-vit,我们将跳毗连布局引入到EasyAnimate当中,通过引入浅层特性进一步优化深层特性,而且我们0初始化了一个全毗连层给每一个跳毗连布局,使其可以作为一个可插入模块应用到之前已经练习的还不错的DIT中。
Lora

由《LoRA: Low-Rank Adaptation of Large Language Models》 提出的一种基于低秩矩阵的对大参数模子举行少量参数微调练习的方法,广泛引用在各种大模子的鄙俚利用中。
EasyAnimate有良好的拓展性,我们可以对文生图模子练习Lora后应用到文生视频模子中。
算法细节

算法构成

我们利用了PixArt-alpha作为底子模子,并在此底子上引入额外的运动模块(motion module)来将DiT模子从2D图像天生扩展到3D视频天生上来。其框架图如下:
下图概述了EasyAnimate的管道。它包罗Text Encoder、Video VAE(视频编码器和视频解码器)和Diffusion Transformer(DiT)。T5 Encoder用作文本编码器。其他组件将在以下部门中具体分析。

视频VAE

在早期的研究中,基于图像的VAE已被广泛用于视频帧的编码息争码,如AnimateDiff、ModelScope2V和OpenSora。在Stable Dif fusion利用VAE实现将每个视频帧编码为单独的匿伏特性,从而将帧的空间维度明显缩小到宽度和高度的八分之一。但这种编码技能忽略了时间信息,将视频降级为静态图像表现。
传统的基于图像的VAE的一个明显题目是它无法在时间维度上举行压缩,这不光无法关注到渺小的帧间信息,而且导致匿伏的latent的shape很大,进一步导致GPU VRAM的激增。这些寻衅严肃拦阻了这种方法在长视频创作中的实用性。因此,视频VAE的寻衅在于怎样有效地压缩时间维度。
别的,我们的同时须要利用图像和视频对VAE举行练习。先前的研究表明,将图像集成到视频练习Pipeline中可以更有效地优化模子架构,从而改进其文本对齐并进步输出质量。
视频VAE的一个著名例子是MagViT,各人均以为其被用于Sora框架。我们最初在EasyAnimate中采取MagViT。它采取Casual 3D Conv。在利用平凡3D Conv之前,该块在时间轴前引入添补,从而确保每一帧可以利用它先前的信息来增强因果关系,同时不思量到后帧的影响。别的MagViT还允许模子同时处置惩罚图像和视频。只管它在视频编码息争码方面很优雅,但在超长视频序列上举行练习时,它仍面临寻衅,这告急是GPU VRAM的限定。当视频增大时,MagViT所需的内存通常以致高出A100 GPU的可用内存,这使得对大视频(比方1024x1024x40)举行一步解码变得不可行。这个寻衅突出了分批处置惩罚的须要性,它有助于增量解码,而不是试图一步解码整个序列。
对于分批处置惩罚,我们起首在空间维度上(宽度和高度上)试验切片机制。然而,这大概导致一个视频差异块上有不同等的光照。随后,我们转向沿时间维度(时间上)举行切片。通过这种方法,一组视频帧被分为几个部门,每个部门都被单独编码息争码,如图所示。但由于MagViT的独特机制,3D Conv前须要举行前向添补,对应的匿伏latent中,每个部门的第一个latent由于添补特性仅包罗较少的信息。这种不匀称的信息分布是一个大概拦阻模子优化的方面。别的,MagViT利用这种批处置惩罚战略还影响处置惩罚过程中视频的压缩率。

在这个底子上,我们提出了Slice VAE,该VAE在面临差异输入时利用差异的处置惩罚战略,当输入的是视频帧时,则在高宽与时间轴上举行压缩,当输入为512x512x8的视频帧时,将其压缩为64x64x2的匿伏latent;当输入的是图片时,则仅仅在高宽上举行压缩,当输入为512x512的图片时,将其压缩为64x64x1的匿伏latent。
为了进一步进步解码的性能,我们在差异的时间轴批次之间实现特性共享,如图(b)所示。在解码过程中,特性与它们的前一个和后一个特性相连,从而产生更同等的特性并实现比MagViT更高的压缩率。通过这种方式,编码的特性封装了时间信息,这反过来又节省了盘算资源,同时进步了天生结果的质量。
视频DIT


参考AnimateDiff,我们操持了Motion Module运动模块,运动模块专门操持用于嵌入时间信息。通过在时间维度上集成留意力机制,该模子得到了时间轴上的先验知识,这对天生视频运动至关告急。
别的,我们在EasyAnimateV2中引入了U-VIT,在练习过程中,我们观察到深层DIT的练习经常是不稳固的,模子的丧失偶然候会从0.05急剧增长到0.2,终极增长到1.0。为了增强模子优化过程,克制DIT层反向传播过程中的梯度坍塌,我们在相应的Transform Block之间利用了跳毗连,这种基于UNet的框架对于Stable Diffusion模子来说是有效的。为了将这种修改无缝集成到现有的扩散变更器架构中,而无需举行全面的再练习,我们初始化了几个具有零添补权重的完全毗连层,如上图(c)中的灰色块。
数据处置惩罚

对于大模子而言,数据预备许多时间比模子本身更加告急,EasyAnimate的练习包罗图像数据和视频数据。下文具体先容了视频数据处置惩罚方法,包罗三个告急阶段:视频分割、视频过滤和视频形貌。
这些步调对于挑选具有具体形貌的高质量视频数据至关告急。
视频分割

对于较长的视频分割,我们利用PySceneDetect以辨认视频内的场景变革并基于这些转换,根据肯定的门限值来实行场景剪切,以确保视频片断的主题同等性。切割后,我们只保存长度在3到10秒之间的片断用于模子练习。
视频筛选

我们从三个方面临视频数据举行过滤,即运动过滤、文本过滤和美学过滤。
运动过滤:在视频天生模子的练习过程中,确保视频表现运动感,将其与静态图像区分开来,这一点至关告急。同时,保持动作的同等性至关告急,由于过于不稳固的动作会削弱视频的团体稳固性。为此,我们利用RAFT以指定的每秒帧数(FPS)盘算帧之间的运动分数,并用符合的运动分数对视频举行滤波,以微变更态。
文本过滤:视频数据通常包罗特定的文本信息(如字幕),这倒霉于视频模子的学习过程。为了办理这个题目,我们利用光学字符辨认(OCR)来确定视频中文当地区的比例面积。对采样的帧举行OCR以表现视频的文天职数。然后,我们过滤掉文本所占地区高出视频帧1%的任何视频片断,确保剩余视频对模子练习保持最佳状态。
美学过滤:别的,互联网上有许多低质量的视频。这些视频大概缺乏主题核心,大概过于含糊。为了进步我们练习数据集的质量,我们基于improved-aesthetic-predictor盘算了美学分数并生存高分视频,为我们的视频天生得到视觉吸引力的练习集。
视频形貌

视频字幕的质量直接影响天生视频的结果。我们对几种大型多式联运模子举行了全面比力,权衡了它们的性能和运营服从。颠末细致思量和评估,我们选择VideoChat2和VILA作为视频数据字幕的任务,由于它们在我们的评估中表现出了杰出的性能,表明它们在实现具有细节和时间信息的视频字幕方面特别有远景。
模子练习

统共,我们利用约莫1200万个图像和视频数据来练习视频VAE模子和DiT模子。我们起首练习视频VAE,然后利用三阶段粗到细练习战略将DiT模子顺应于新的VAE。
视频VAE

MagViT:我们利用了β=(0.5,0.9)、学习率为1e-4的Adam优化器举行练习,统共练习了350k个步调。我们的总批量是128。
Slice VAE:我们根据上述MagViT初始化Slice VAE的权重。然后分两个阶段练习切片VAE。起首,我们在200k步内利用Adam优化器,β=(0.5,0.9),批量巨细=96,学习率为1e-4练习整个VAE。接下来,参考Stable Diffusion的步伐,我们只在100k步的第二阶段练习解码器,以更好地进步解码视频的保真度。

视频DIT


如图所示,dit模子的练习分为三个阶段。
最初,在引入新的视频VAE时,我们开始将DiT参数与该VAE对齐,此时仅利用图像数据。
随后,我们利用大规模视频数据集和图像数据来预练习运动模块(Motion Module),从而引入DiT的视频天生本事。在此处,我们引入了数据集分桶战略用于以差异的视频分辨率举行练习。现在,固然该模子可以大概天生具有根本运动的视频,但输出的质量通常不太抱负。
末了,我们利用高质量的视频数据来完满整个DiT模子,以增强其天生性能。
该模子是从较低分辨率到较高分辨率徐徐练习的,这是节省GPU内存和淘汰盘算时间的有效战略。
EasyAnimate V2的Lora练习

数据集预备

我们提供了一个可供EasyAnimate V2举行Lora练习的图文数据集。
这是一个人像的Minimalism极简风数据集,共包罗约20张图片,此中demo如下所示:

数据会集已经提供了标注信息。我们可以将其放置在datasets目次下,如下图所示。

在这里我们即可利用相对路径也可以利用绝对路径,为了差异呆板的利用方便,这里我利用了相对路径。
假如同砚们期待利用本身的数据集举行练习,练习预备数据集json文件,数据集json文件的格式如下:
  1. [
  2.     {
  3.       "file_path": "videos/00000001.mp4",
  4.       "text": "A group of young men in suits and sunglasses are walking down a city street.",
  5.       "type": "video"
  6.     },
  7.     {
  8.       "file_path": "train/00000001.jpg",
  9.       "text": "A group of young men in suits and sunglasses are walking down a city street.",
  10.       "type": "image"
  11.     },
  12.     .....
  13. ]
复制代码
此中,file_path指的是文件的路径,type指的是文件的种类,有video和image两种,text指的是视频对应的形貌。
练习sh文件修改

练习Lora权重须要利用到scripts/train_t2iv_lora.sh文件,我们告急修改此中的DATASET_NAME和DATASET_META_NAME。
DATASET_NAME指向了数据集相对路径的根目次,以本文的摆放路径为例,直接指定EasyAnimate的根目次即可,即"./"
DATASET_META_NAME指向了数据集对应的json文件,指向Minimalism下的json文件,即"datasets/Minimalism/metadata_add_width_height.json"即可。
为满足更低的显卡需求,在这里我们开启low_vram淘汰显存需求,当前最低显存要求为24G,对应A10、3090、4090、4090D显卡。

开始练习

开始练习的流程较为简单,在设置好的环境下直接sh scripts/train_t2iv_lora.sh即可。

开始练习后如下所示:

练习结果猜测

我们起首将练习好的Lora移动到指定的文件夹。

然后python app.py启动webui,在页面上举行选择。


点击下方的天生即可得到结果。
天生结果
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表