EasyAnimate | 高分辨率长视频生成的端到端解决方案
? EasyAnimate是一个用于生成高分辨率和长视频的端到端解决方案。我们可以训练基于转换器的扩散生成器,训练用于处理长视频的VAE,以及预处理元数据。
? 我们基于类SORA结构与DIT,使用transformer进行作为扩散器进行视频与图片生成。我们基于motion module、u-vit和slice-vae构建了EasyAnimate,未来我们也会尝试更多的训练方案一提高效果。
? Welcome!
这里提供了EasyAnimate的512*512*144 大小的模型。我们在本页面简单显示模型的用法,您可以查看项目主页来获得更多用法。
目录
模型效果
这是我们的生成结果 GALLERY:
我们的UI界面如下:
如何使用
# 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
cd models/Diffusion_Transformer/
git lfs install
git clone clone https://www.modelscope.cn/PAI/EasyAnimateV2-XL-2-512x512.git
cd ../../
模型地址
EasyAnimateV2:
名称 | 种类 | 存储空间 | 下载地址 | Hugging Face | 描述 |
---|---|---|---|---|---|
EasyAnimateV2-XL-2-512x512.tar | EasyAnimateV2 | 16.2GB | Download | ?Link | 官方的512x512分辨率的重量。以144帧、每秒24帧进行训练 |
EasyAnimateV2-XL-2-768x768.tar | EasyAnimateV2 | 16.2GB | Download | ?Link | 官方的768x768分辨率的重量。以144帧、每秒24帧进行训练 |
easyanimatev2minimalismlora.safetensors | Lora of Pixart | 485.1MB | Download | - | 使用特定类型的图像进行lora训练的结果。图片可从这里下载. |
算法细节
1. 数据预处理
视频分割
对于较长的视频分割,EasyAnimate使用PySceneDetect以识别视频内的场景变化并基于这些转换,根据一定的门限值来执行场景剪切,以确保视频片段的主题一致性。切割后,我们只保留长度在3到10秒之间的片段用于模型训练。
视频清洗与描述
参考SVD的数据准备流程,EasyAnimate提供了一条简单但有效的数据处理链路来进行高质量的数据筛选与打标。并且支持了分布式处理来提升数据预处理的速度,其整体流程如下:
- 时长过滤: 统计视频基本信息,来过滤时间短/分辨率低的低质量视频
- 美学过滤: 通过计算视频均匀4帧的美学得分均值,来过滤内容较差的视频(模糊、昏暗等)
- 文本过滤: 通过easyocr计算中间帧的文本占比,来过滤文本占比过大的视频
- 运动过滤: 计算帧间光流差异来过滤运动过慢或过快的视频。
- 文本描述: 通过videochat2和vila对视频帧进行recaption。PAI也在自研质量更高的视频recaption模型,将在第一时间放出供大家使用。
2. 模型结构
我们使用了PixArt-alpha作为基础模型,并在此基础上修改了VAE和DiT的模型结构来更好地支持视频的生成。EasyAnimate的整体结构如下:
下图概述了EasyAnimate的管道。它包括Text Encoder、Video VAE(视频编码器和视频解码器)和Diffusion Transformer(DiT)。T5 Encoder用作文本编码器。其他组件将在以下部分中详细说明。
为了引入特征点在时间轴上的特征信息,EasyAnimate引入了运动模块(Motion Module),以实现从2D图像到3D视频的扩展。为了更好的生成效果,其联合图片和视频将Backbone连同Motion Module一起Finetune。在一个Pipeline中即实现了图片的生成,也实现了视频的生成。
另外,参考U-ViT,其将跳连接结构引入到EasyAnimate当中,通过引入浅层特征进一步优化深层特征,并且0初始化了一个全连接层给每一个跳连接结构,使其可以作为一个可插入模块应用到之前已经训练的还不错的DIT中。
同时,其提出了Slice VAE,用于解决MagViT在面对长、大视频时编解码上的显存困难,同时相比于MagViT在视频编解码阶段进行了时间维度更大的压缩。
更多细节可以看查看arxiv。
未来计划
- 支持更大分辨率的文视频生成模型。
- 支持视频inpaint模型。
联系我们
- 扫描下方二维码或搜索群号:77450006752 来加入钉钉群。
- 扫描下方二维码来加入微信群(如果二维码失效,可扫描最右边同学的微信,邀请您入群)
参考文献
- magvit: https://github.com/google-research/magvit
- PixArt: https://github.com/PixArt-alpha/PixArt-alpha
- Open-Sora-Plan: https://github.com/PKU-YuanGroup/Open-Sora-Plan
- Open-Sora: https://github.com/hpcaitech/Open-Sora
- Animatediff: https://github.com/guoyww/AnimateDiff
许可证
本项目采用 Apache License (Version 2.0).
评论