AIGC专栏18——EasyAnimateV5.1版本详解 应用Qwen2 VL作为文本编码器,支持轨迹控制与相机镜头控制

AIGC专栏18------EasyAnimateV5.1版本详解 应用Qwen2 VL作为文本编码器,支持轨迹控制与相机镜头控制

学习前言

在EasyAnimateV5中,我们将模型规模扩大到了12B,并使用了MMDiT结构。

参考最新的一些文生图与文生视频算法,我发现我们还有很多比较重要的tricks还没有使用,比如Flow采样器,比如使用大语言模型作为文本编码器,比如使用奖励模型等,我们将这些技巧都进行了应用,实现了EasyAnimateV5.1,性能相比之前也有比较大幅度的提升。

相关地址汇总

源码下载地址

https://github.com/aigc-apps/EasyAnimate

HF测试链接

https://huggingface.co/spaces/alibaba-pai/EasyAnimate

MS测试链接

https://modelscope.cn/studios/PAI/EasyAnimate

感谢大家的关注。

测试效果

Image to Video








Text to Video






轨迹控制

镜头控制

Pan Up

Pan Down

Pan Up + Pan Right

Pan Up + Pan Left

EasyAnimate详解

技术储备

Qwen2 VL

自2024年8月开源以来,Qwen2-VL模型在处理各种分辨率和长宽比的视觉理解任务上展现了顶尖性能。它在文档问答、信息问答、真实场景问答、多任务视觉问答,以及数学视觉理解等多项基准测试中取得了优异的成绩。Qwen2-VL模型引入了naive dynamic resolution技术,支持灵活处理不同分辨率的输入图像和视频,确保了在各种视觉理解任务中的卓越表现。它创新性地提出了多模态旋转位置编码(M-RoPE),这有助于实现更高效的跨模态信息融合,从而增强了模型对于文本和视觉数据的理解能力。

此外,Qwen2-VL构建了一个统一的图像和视频理解框架,其中图像被视作两个相同的帧来处理,以维持与视频处理逻辑的一致性,并采用3D tubes替代传统的2D patches方法,进一步提升了对长时间序列视觉内容的理解深度。这些改进显著提高了视频问答、对话系统以及内容创作等应用的质量。

在EasyAnimateV5.1中,我们使用Qwen2-VL作为Text encoder进行文本的编码。

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.1版本中,我们将原来的双text encoders替换成alibaba近期发布的Qwen2 VL,由于Qwen2 VL是一个多语言模型,EasyAnimateV5.1支持多语言预测,语言支持范围与Qwen2 VL挂钩,综合体验下来是中文英文最佳,同时还支持日语、韩语等语言的预测。

另外在文生视频、图生视频、视频生视频和通用控制的基础上,我们支持了轨迹控制与相机镜头控制,通过轨迹控制可以实现控制某一物体的具体的运动方向,通过相机镜头控制可以控制视频镜头的运动方向,组合多个镜头运动后,还可以往左上、左下等方向进行偏转。

对比EasyAnimateV5,EasyAnimateV5.1主要突出了以下特点:

  • 应用Qwen2 VL作为文本编码器,支持多语言预测;
  • 支持轨迹控制,相机控制等新控制方式;
  • 使用奖励算法最终优化性能;
  • 使用Flow作为采样方式;
  • 使用更多数据训练。

应用Qwen2 VL作为文本编码器

在MMDiT结构的基础上,我们将EasyAnimateV5的双text encoders替换成alibaba近期发布的Qwen2 VL;相比于CLIP与T5这样的传统编码模型,使用LLM作为Text Encoder慢慢在生成的圈子里流行起来,比如最近大火的HunyuanVideo模型。

尽管LLM的主力工作是生成,但对文本的编码与理解能力依然优秀,Qwen2 VL是多模态LLM中性能的佼佼者优越,对语义理解更加精准。而相比于Qwen2本身,Qwen2 VL由于和图像做过对齐,对图像内容的理解更为精确。

我们取出Qwen2 VL hidden_states的倒数第二个特征输入到MMDiT中,与视频Embedding一起做Self-Attention。在做Self-Attention前,由于大语言模型深层特征值一般较大(可以达到几万),我们为其做了一个RMSNorm进行数值的矫正再进行全链接,这样有利于网络的收敛。

支持轨迹控制,相机控制等新控制方式

参考Drag Anything,我们使用了2D的轨迹控制,在Conv in前添加轨迹控制点,通过轨迹控制点控制物体的运动方向。通过白色高斯图的方式,指定物体的运动方向。

参考CameraCtrl,我们在Conv in前输入了相机镜头的控制轨迹,该轨迹规定的镜头的运动方向,实现了视频镜头的控制。

如下图三个GIF,第一个GIF为控制的白色高斯图,第二个GIF为控制后狗狗的运动情况,第三个GIF是两个视频合起来看的样子。


使用奖励算法最终优化性能

为了进一步优化生成视频的质量以更好地对齐人类偏好,我们采用奖励反向传播(DRaFTDRTune)对 EasyAnimateV5.1 基础模型进行后训练,使用奖励提升模型的文本一致性与画面的精细程度。

我们在EasyAnimate ComfyUI中详细说明了奖励反向传播的使用方案。我们实际使用了HPS v2.1和MPS两个模型对EasyAnimateV5.1进行奖励反向,两个模型都是人类偏好模型,作为反馈,调整后的EasyAnimateV5.1具有更好的文视频一致性,且画面更加精细。

如下三个视频,首个视频是没有使用奖励模型的生成效果,第二个视频是使用HPS作为奖励模型的生成效果,第三个视频是使用MPS作为奖励模型的生成效果。可以看到后面两个模型明显更为讨人喜欢。

使用Flow matching作为采样方式

除了上述的架构变化之外,EasyAnimateV5.1还应用Flow-matching的方案来训练模型。在这种方法中,前向噪声过程被定义为在直线上连接数据和噪声分布的整流。

修正流匹配采样过程更简单,在减少采样步骤数时表现良好。与Stable Diffusion 3一致,我们新的调度程序(FlowMatchEulerDiscreteScheduler)作为调度器,其中包含修正流匹配公式和欧拉方法步骤。

项目使用

ComfyUI启动

安装

选项1:通过ComfyUI管理器安装

选项2:手动安装

EasyAnimate存储库需要放置在ComfyUI/custom_nodes/EasyAnimate/

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
git clone https://github.com/kijai/ComfyUI-KJNodes.git

cd EasyAnimate/
pip install -r comfyui/requirements.txt

将模型下载到ComfyUI/models/EasyAnimate/

EasyAnimateV5.1:

12B:

名称 类型 存储空间 拥抱面 型号范围 描述
EasyAnimateV5.1-12b-zh-InP EasyAnimateV5.1 39 GB 🤗链接 😄链接 官方图像到视频权重。支持多种分辨率(512 768 1024)的视频预测,以每秒8帧的速度训练49帧,支持多语言预测
EasyAnimateV5.1-12b-zh-控件 EasyAnimateV5.1 39 GB 🤗链接 😄链接 官方视频控制权重,支持Canny、Depth、Pose、MLSD和轨迹控制等各种控制条件。支持多种分辨率(512 768 1024)的视频预测,以每秒8帧的速度训练49帧,支持多语言预测
EasyAnimateV5.1-12b-zh-控制摄像头 EasyAnimateV5.1 39 GB 🤗链接 😄链接 官方摄像机控制权重,支持通过输入摄像机运动轨迹进行方向生成控制。支持多种分辨率(512 768 1024)的视频预测,以每秒8帧的速度训练49帧,支持多语言预测
EasyAnimateV5.1-12b-zh EasyAnimateV5.1 39 GB 🤗链接 😄链接 官方文本到视频权重。支持多种分辨率(512 768 1024)的视频预测,以每秒8帧的速度训练49帧,支持多语言预测

文本到视频生成

我们的用户界面显示如下,这是json

图像到视频生成

我们的用户界面显示如下,这是json

您可以使用以下照片运行演示:

视频到视频生成

我们的用户界面显示如下,这是json

您可以使用以下视频运行演示:

演示视频

镜头控制视频生成

我们的用户界面显示如下,这是json

您可以使用以下照片运行演示:

轨迹控制视频生成

我们的用户界面显示如下,这是json

您可以使用以下照片运行演示:

控制视频生成

我们的用户界面显示如下,这是json

您可以使用以下视频运行演示:

演示视频

WebUI启动

推荐在docker中使用EasyAnimateV5.1:

sh 复制代码
# pull image
docker pull mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:easyanimate

# enter image
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

# clone code
git clone https://github.com/aigc-apps/EasyAnimate.git

# enter EasyAnimate's dir
cd EasyAnimate

# download weights
mkdir models/Diffusion_Transformer
mkdir models/Motion_Module
mkdir models/Personalized_Model

# Please use the hugginface link or modelscope link to download the EasyAnimateV5 model.
# I2V models
# https://huggingface.co/alibaba-pai/EasyAnimateV5.1-12b-zh-InP
# https://modelscope.cn/models/PAI/EasyAnimateV5.1-12b-zh-InP
# T2V models
# https://huggingface.co/alibaba-pai/EasyAnimateV5.1-12b-zh
# https://modelscope.cn/models/PAI/EasyAnimateV5.1-12b-zh

文生视频

首先进入gradio网站。选择对应的预训练模型,如"models/Diffusion_Transformer/EasyAnimateV5.1-12b-zh-InP"。然后在下方填写提示词。

然后调整视频高宽和生成帧数,最后进行生成;

图生视频

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

  • 1、需要指定参考图;
  • 2、指定与参考图类似的高宽;

CogVideoX-Fun的ui已经提供了自适应的按钮Resize to the Start Image,打开后可以自动根据输入的首图调整高宽。

视频生视频

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

  • 1、需要指定参考视频;
  • 2、指定与参考视频类似的高宽;

ui已经提供了自适应的按钮Resize to the Start Image,打开后可以自动根据输入的视频调整高宽。

控制生视频

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

可修改prompt如下:

python 复制代码
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。

最后上传控制视频,进行生成。

相关推荐
春末的南方城市6 小时前
阿里发布新开源视频生成模型Wan-Video,支持文生图和图生图,最低6G就能跑,ComFyUI可用!
人工智能·计算机视觉·自然语言处理·开源·aigc·音视频
AIGC龙哥8 小时前
Stable Diffusion教程|快速入门SD绘画原理与安装
stable diffusion·aigc·ai绘画·sd·安装包·本地部署·炼丹师
anyup8 小时前
最终!我还是抛弃了 VSCode 这个开发工具
前端·aigc·visual studio code
张晋涛9 小时前
KCD 北京站丨云原生与AI的双向奔赴,超强Speakers阵容公开
云原生·aigc·线下活动
LucianaiB12 小时前
Trae编程:用腾讯云 HAI 快速开发一个智能客服助手,白嫖党的福利到底有多香?
后端·aigc
九歌AI大模型14 小时前
Dify 搭建私有数据可视化智能体,效果直逼 ChatGPT
aigc
离线请留言14 小时前
OpenManus+DeepSeek体验
aigc·deepseek
AntonCook15 小时前
AI工作流平台Dify本地部署
aigc·workflow
精灵vector15 小时前
【Agent的革命之路——LangGraph】如何使用config
人工智能·python·aigc
AntonCook15 小时前
Dify搭建私有化RAG应用
aigc·workflow