AIGC专栏17——EasyAnimate V5版本详解 应用MMDIT结构,拓展模型规模到12B ...

打印 上一主题 下一主题

主题 2043|帖子 2043|积分 6129

学习前言

前段时间开源了CogVideoX-Fun,学习了很多CogVideoX的代码与思想理念,发现EasyAnimate之前的版本存在非常多不合理的地方,比如说embedding的添加方式、模型规模等。在这个基础上我们开发了EasyAnimateV5,提升了EasyAnimate系列的模型天生本事。
别的,筛选了一大批不同控制条件的视频,训练了带有不同控制本事的EasyAnimateV5模型。

相干地址汇总

源码下载地址

https://github.com/aigc-apps/EasyAnimate
HF测试链接

https://huggingface.co/spaces/alibaba-pai/EasyAnimate
感谢各人的关注。
测试结果

Image to Video












Text to Video










EasyAnimate详解

技术储备

Diffusion Transformer (DiT)

DiT基于扩散模型,所以不免包罗不断去噪的过程,如果是图生图的话,还有不断加噪的过程,此时离不开DDPM那张老图,如下:

DiT相比于DDPM,利用了更快的采样器,也利用了更大的分辨率,与Stable Diffusion一样利用了隐空间的扩散,但大概更偏研究性质一些,没有利用非常大的数据集举行预训练,只利用了imagenet举行预训练。
与Stable Diffusion不同的是,DiT的网络结构完全由Transformer组成,没有Unet中大量的上下采样,结构更为简单清晰。
Stable Diffusion 3

在2024年3月,Stability AI发布了Stable Diffusion 3,Stable Diffusion 3一个模型系列,参数量从 800M 到 8B 不等。相比于过去的Stable Diffusion,Stable Diffusion 3的生图质量更高,且更符合人类偏好。
Stable Diffusion 3做了多改进,比如文本信息注入的方式,DiT模型在最初引入文本时,通常利用Cross Attention的方法联合文本信息,如Pixart-α、hunyuan DiT等。Stable Diffusion 3通过Self-Attention引入文本信息。相比于Cross Attention,利用Self-Attention引入文本信息不仅节省了Cross Attention的参数量,还节省了Cross Attention的盘算量。
Stable Diffusion 3还引入了RMS-Norm。,在每一个attention运算之前,对Q和K举行了RMS-Norm归一化,用于加强模型训练的稳固性。
同时利用了更大的VQGAN,VQGAN压缩得到的特性维度从原来的4维提升到16维等。

CogVideoX


2024年8月,智谱开源视频天生模型CogVideoX,先是2B模型,而后是5B模型,近期还开源了V1.5的模型,几个视频天生模型本事都非常强悍,极大的提高了视频开源模型的水准。
CogVideoX主要具有以下特点:


  • 自主研发了一套高效的三维变分自编码器结构(3D VAE)。低落了视频扩散天生模型的训练成本和难度。联合 3D RoPE 位置编码模块,该技术提升了在时间维度上对帧间关系的捕捉本事,从而建立了视频中的长期依赖关系。
  • 拓展视频模型规模到5B,提升了模型的理解本事,使得模型能够处理超长且复杂的 prompt 指令。
  • 模型与Stable Diffusion 3同等,将文本、时间、空间融合在一起,通过 Full Attention 机制优化模态间的交互结果。
算法细节

EasyAnimateV5特点

在EasyAnimateV5版本中,我们在大约10m SAM图片数据+26m 图片视频混合的预训练数据上举行了从0开始训练。与之前类似的是,EasyAnimateV5依然支持图片与视频预测与中文英文双语预测,同时支持文生视频、图生视频和视频生视频。
参考CogVideoX,我们收缩了视频的总帧数并减少了视频的FPS以加快训练速度,最大支持FPS为8,总长度为49的视频天生。我们支持像素值从512x512x49、768x768x49、1024x1024x49与不同纵横比的视频天生。
对比EasyAnimateV4,EasyAnimateV5还突出了以下特点:


  • 应用MMDIT结构,拓展模型规模到12B。
  • 支持不同控制输入的控制模型。
  • 参考图片添加Noise。
  • 更多数据和更好的多阶段训练。
应用MMDIT结构,拓展模型规模到12B

参考Stable Diffusion 3和CogVideoX,在我们的模型中,我们将文本和视频嵌入毗连起来以实现Self-Attention,从而更好地对齐视觉和语义信息。然而,这两种模态的特性空间之间存在显著差异,这大概导致它们的数值存在较大差异,这并不利于二者举行对齐。
为了解决这个问题,还是参考Stable Diffusion 3,我们采用MMDiT架构作为我们的基础模型,我们为每种模态实现了不同的to_k、to_q、to_v和前馈网络(FFN),并在一个Self-Attention中实现信息交互,以加强它们的对齐。
别的,为了提高模型的理解本事,我们将模型举行了放大,参考Flux,我们模型的总参数量扩展到了12B。
添加控制信号的EasyAnimateV5

在本来Inpaint模型的基础上,我们利用控制信号替代了本来的mask信号,将控制信号利用VAE编码后作为Guidance与latent一起进入patch流程。该方案已经在CogVideoX-FUN的实践中证实有用。
我们在26m的预训练数据中举行了筛选,选择出大约443k高质量视频,同时利用不同的处理方式包罗OpenPose、Scribble、Canny、Anime、MLSD、Hed和Depth举行控制条件的提取,作为condition控制信号举行训练。
在举行训练时,我们根据不同Token长度,对视频举行缩放后举行训练。整个训练过程分为两个阶段,每个阶段的13312(对应512x512x49的视频),53248(对应1024x1024x49的视频)。
以EasyAnimateV5-Control为例子,其中:


  • 13312阶段,Batch size为128,训练步数为5k
  • 53248阶段,Batch size为96,训练步数为2k。
工作原理图如下:

参考图片添加Noise

在CogVideoX-FUN的实践中我们已经发现,在视频天生中,在视频中添加噪声对视频的天生结果有非常大的影响。参考CogVideoX和SVD,在非0的参考图向上添加Noise以破环原图,追求更大的运动幅度。
我们在模型中为参考图片添加了Noise。与CogVideoX同等,在进入VAE前,我们在均值为-3.0、标准差为0.5的正态分布中采样天生噪声幅度,并对其取指数,以确保噪声的幅度在合理范围内。
函数天生与输入视频相同外形的随机噪声,并根据已盘算的噪声幅度举行缩放。噪声仅添加到有用值(不必要天生的像素帧上)上,随后与原图像叠加以得到加噪后的图像。
别的,提示词对天生结果影响较大,请只管描写动作以增加动态性。如果不知道怎么写正向提示词,可以利用smooth motion or in the wind来增加动态性。并且只管克制在负向提示词中出现motion等表示动态的词汇。
Pipeline结构如下:

基于Token长度的模型训练

EasyAnimateV5的训练分为多个阶段,除了图片Adapt VAE的阶段外,别的阶段均为视频训练,分别对应了不同的Token长度。
图片VAE的对齐

我们利用了10M的SAM举行模型从0开始的文本图片对齐的训练,统共训练约120K步。
在训练完成后,模型已经有本事根据提示词去天生对应的图片,并且图片中的目标根本符合提示词描述。
视频训练

视频训练则根据不同Token长度,对视频举行缩放后举行训练。
视频训练分为多个阶段,每个阶段的Token长度分别是3328(对应256x256x49的视频),13312(对应512x512x49的视频),53248(对应1024x1024x49的视频)。
其中:


  • 3328阶段

    • 利用了全部的数据(大约26.6M)训练文生视频模型,Batch size为1536,训练步数为66.5k。

  • 13312阶段

    • 利用了720P以上的视频训练(大约17.9M)训练文生视频模型,Batch size为768,训练步数为30k
    • 利用了最高质量的视频训练(大约0.5M)训练图生视频模型 ,Batch size为384,训练步数为5k

  • 53248阶段

    • 利用了最高质量的视频训练(大约0.5M)训练图生视频模型,Batch size为196,训练步数为5k。

训练时我们采用高低分辨率联合训练,因此模型支持从512到1280恣意分辨率的视频天生,以13312 token长度为例:


  • 在512x512分辨率下,视频帧数为49;
  • 在768x768分辨率下,视频帧数为21;
  • 在1024x1024分辨率下,视频帧数为9;
    这些分辨率与对应长度混合训练,模型可以完成不同巨细分辨率的视频天生。
项目利用

项目启动

推荐在docker中利用EasyAnimateV5:
  1. # pull image
  2. docker pull mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:easyanimate
  3. # enter image
  4. docker run -it -p 7860:7860 --network host --gpus all --security-opt seccomp:unconfined --shm-size 200g mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:easyanimate
  5. # clone code
  6. git clone https://github.com/aigc-apps/EasyAnimate.git
  7. # enter EasyAnimate's dir
  8. cd EasyAnimate
  9. # download weights
  10. mkdir models/Diffusion_Transformer
  11. mkdir models/Motion_Module
  12. mkdir models/Personalized_Model
  13. # Please use the hugginface link or modelscope link to download the EasyAnimateV5 model.
  14. # I2V models
  15. # https://huggingface.co/alibaba-pai/EasyAnimateV5-12b-zh-InP
  16. # https://modelscope.cn/models/PAI/EasyAnimateV5-12b-zh-InP
  17. # T2V models
  18. # https://huggingface.co/alibaba-pai/EasyAnimateV5-12b-zh
  19. # https://modelscope.cn/models/PAI/EasyAnimateV5-12b-zh
复制代码
到这里已经可以打开gradio网站了。
文生视频

首先进入gradio网站。选择对应的预训练模型,如"models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512"。然后在下方填写提示词。
然后调整视频高宽和天生帧数,最后举行天生;


图生视频


图生视频与文生视频有两个不同点:


  • 1、必要指定参考图;
  • 2、指定与参考图类似的高宽;
CogVideoX-Fun的ui已经提供了自适应的按钮Resize to the Start Image,打开后可以自动根据输入的首图调整高宽。

视频生视频

视频生视频与文生视频有两个不同点:


  • 1、必要指定参考视频;
  • 2、指定与参考视频类似的高宽;
CogVideoX-Fun的ui已经提供了自适应的按钮Resize to the Start Image,打开后可以自动根据输入的视频调整高宽。

控制生视频

首先调整model type到Control,然后选择模型。

可修改prompt如下:
  1. A person wearing a knee-length white sleeveless dress and white high-heeled sandals performs a dance in a well-lit room with wooden flooring. The room's background features a closed door, a shelf displaying clear glass bottles of alcoholic beverages, and a partially visible dark-colored sofa.
复制代码

然后修改为根据参考视频自动resize。

最后上传控制视频,举行天生。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表