AIGC专栏18——EasyAnimateV5.1版本详解 应用Qwen2 VL作为文本编码器,支持轨迹控制与相机镜头控制
- 学习前言
- 相关地址汇总
- 源码下载地址
- HF测试链接
- MS测试链接
- 测试效果
- Image to Video
- Text to Video
- 轨迹控制
- 镜头控制
- EasyAnimate详解
- 技术储备
- Qwen2 VL
- Stable Diffusion 3
- CogVideoX
- 算法细节
- 应用Qwen2 VL作为文本编码器
- 支持轨迹控制,相机控制等新控制方式
- 使用奖励算法最终优化性能
- 使用Flow matching作为采样方式
- 项目使用
- ComfyUI启动
- 安装
- 将模型下载到`ComfyUI/models/EasyAnimate/`
- 文本到视频生成
- 图像到视频生成
- 视频到视频生成
- 镜头控制视频生成
- 轨迹控制视频生成
- 控制视频生成
- WebUI启动
- 文生视频
- 图生视频
- 视频生视频
- 控制生视频
学习前言
在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是两个视频合起来看的样子。
使用奖励算法最终优化性能
为了进一步优化生成视频的质量以更好地对齐人类偏好,我们采用奖励反向传播(DRaFT 和 DRTune)对 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.gitcd 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:
# 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如下:
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。
最后上传控制视频,进行生成。