• 作者:老汪软件技巧
  • 发表时间:2024-12-05 00:09
  • 浏览量:

在数字内容创作中,视频扮演的角色日益重要。然而,创作高质量视频通常耗时且昂贵。EasyAnimate 系列旨在利用人工智能技术简化这一过程。EasyAnimateV5 建立在其前代版本的基础之上,不仅在质量上有所提升,还在多模态数据处理和跨语言支持上有了进一步的增强。

EasyAnimate 是阿里云人工智能平台 PAI 自主研发的一款基于 DiT 的视频生成框架,能够生成高质量的长视频。它具备视频数据预处理、VAE 训练、DiT 训练、Lora训练、模型推理和模型评估等功能。此外,EasyAnimate 在预训练模型的基础上,通过少量图片进行 LoRA 微调,可实现视频风格的转变,大大增强了系统的扩展性和完整性,使其在众多方案中更具竞争优势。

EasyAnimate在人工智能平台PAI上进行了集成,供用户一键训练和部署,在之前EasyAnimate版本的基础上,EasyAnimateV5重点突出了以下特点:

用户可以使用EasyAnimate来进行任意风格视频模型的训练和推理。目前,EasyAnimate将持续优化来达到更好的生成效果,欢迎大家持续关注。

开源地址:/aigc-apps/E…

DSW测试地址:

技术报告:/abs/2405.18…

技术原理详解模型规模拓展与结构更新

在我们的模型中,我们借鉴了CogVideoX与Stable Diffusion 3的方法,将文本和视频的嵌入连接起来,进一步通过自注意力机制进行特征融合,相比于原来Pixart通过Cross Attention实现文本特征融合方法,该方法不仅节省了计算次数,提高了计算效率,还让模型可以根据输入的不同条件自适应地调整注意力权重,灵活地融合多模态信息。

不过,文本和视频两种模态的特征空间存在显著差异,这可能导致它们的数值相差较大,不利于对齐。为了解决这一问题,我们参考Stable Diffusion 3,采用MMDiT架构作为基础模型。我们为每种模态设计了不同的to_k、to_q、to_v和前馈网络,并在一个自注意力机制中实现信息交互,以增强模态间的对齐。

另外,为了提高模型的理解能力,我们将模型进行了放大。参考Flux,我们模型的总参数量扩展到了7B与12B。

视频控制

EasyAnimate系列模型早在V3时便通过inpaint的方式实现了图生视频的功能,现在我们将其拓展到视频控制上。

在原始的Inpaint模型基础上,我们引入了一个新的控制信号替代了原有的mask信号。具体而言,我们将控制信号经过VAE编码后,与latent变量一起输入到patch流程中作为Guidance。

我们从26M的预训练数据中筛选出了大约443K条高质量视频,并采用不同的方法来提取控制条件,包括OpenPose、Scribble、Canny、Anime、MLSD、Hed和Depth,这些被用作训练中的条件控制信号。在训练过程中,我们根据不同的Token长度对视频进行了缩放,整个训练分为两个阶段:第一个阶段为13312(对应512x512x49的视频),第二个阶段为53248(对应1024x1024x49的视频)。

以EasyAnimateV5-12b-Control模型为例:

在53248阶段

训练后的模型可以输入Control Condition对输出视频进行控制,可控生成。以下是工作原理图:

基于Token长度的模型训练

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

我们首先使用图片让VAE与Transformer快速对齐,我们使用了10M的SAM数据集,进行从0开始的文本图片对齐训练,总共训练约120K步。相比于使用视频对齐,使用图片对齐的速度更快且对目标的描述更清晰,在训练完成后,模型已经有能力根据提示词去生成对应的图片,并且图片中的目标基本符合提示词描述。

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

13312阶段53248阶段

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

这些分辨率与对应长度混合训练,模型可以完成不同大小分辨率的视频生成。

图生视频策略

模型视频怎么做__模型视频制作

我们采用inpaint的方式实现图生视频,需要重建的部分和重建的参考图分别通过VAE进行编码,上图黑色的部分代表需要重建的部分,白色的部分代表首图,然后和随机初始化的latent进行concat,传入网络当中进行预测。

假设我们期待生成一个384x672x49的视频,此时的初始latent就是16x13x48x84,需要重建的参考图编码后也是4x13x48x84,另外我们对mask信息进行Resize,Resize后是1x13x48x84,三个向量concat到一起后便是33x13x48x84,传入DiT模型中进行噪声预测。

由于我们mask信息可以根据需要传入,我们不仅可以指定首图,还可以指定尾图。另外,我们还可以通过指定区域的mask实现视频编辑。

在视频生成过程中,向视频中添加噪声会对生成结果产生显著影响。参考CogVideoX和SVD的做法,我们会在非背景的参考图上加入噪声,以打破原图并追求更大的运动幅度。与CogVideoX保持一致,我们从均值为-3.0、标准差为0.5的正态分布中采样得到噪声幅度,然后取其指数确保噪声幅度在合理范围内。我们通过函数会生成与输入视频形状相同的随机噪声,并根据已计算的噪声幅度进行缩放。这些噪声只添加到需要参考的帧上,得到加噪后的视频。

模型使用DSW实践

我们支持从DSW上快速拉起,DSW上的免费体验产品包含30GB内存,可以支持EasyAnimateV5-7b-zh与EasyAnimateV5-12b-zh使用qfloat8在512分辨率下的运行:

DLC中默认使用的是app.py拉起的gradio-ui,在选择对应模型后,我们就可以填入下方的prompt进行预测了。

本地拉起

我们同样支持通过本地拉起使用EasyAnimate。

以使用ComfyUI为例,在本机上可以通过执行如下的代码首先将EasyAnimate插件和ComfyUI-VideoHelperSuite安装。

cd ComfyUI/custom_nodes/
# Git clone the easyanimate itself
git clone https://github.com/aigc-apps/EasyAnimate.git
# Git clone the video outout node
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git
cd EasyAnimate/
python install.py

然后运行ComfyUI软件,根据需求将EasyAnimate的comfyui文件夹下的json文件拖入ComfyUI界面中,在如下页面中,进行视频生成。

联系我们

参考文档


上一条查看详情 +分享抖音获取商品数据的一些方法
下一条 查看详情 +没有了