EasyAnimate-v3 版本支持 I2V 及超长视频生成
阿里云人工智能平台(PAI)自研开源的视频生成项目 EasyAnimate 正式发布 v3 版本:
支持 图片(可配合文字) 生成视频
支持 上传两张图片作为起止画面 生成视频
最大支持 720p(960*960 分辨率) 144 帧视频生成
最低支持 12G 显存使用(3060 12G 可用)
视频续写生成无限时长视频
项目主页:https://easyanimate.github.io
开源地址:https://github.com/aigc-apps/EasyAnimate
技术报告:https://arxiv.org/abs/2405.18991
PAI 平台上快速体验:https://pai.console.aliyun.com/?#/dsw-gallery/preview/deepLearning/cv/easyanimate
效果展示
上图展示图生视频和文生视频的输入参考图、Prompt(提示词)及生成结果。
项目提供基于 Gradio 搭建的 WebUI 界面,上手非常方便。
模型结构
EasyAnimate-v3 采用 Diffusion Transformer(DiT)结构,T5 作为 Text Encoder,整体框架如上图 a 所示。
图 b 是我们设计的混合运动模块(Hybrid Motion Module):
偶数层:时间序列上集成注意力机制,模型学习时序信息。
奇数层:全局序列(空间+时间)上进行全局注意力学习(Global Attention),提高模型全局感受野。
参考图 c 的 U-ViT,为了提高训练稳定性,我们引入跳连接结构(Skip Connection),引入的浅层特征进一步优化深层特征,并且在每个 Skip Connection 额外增加一个零初始化(Zero Initialize)的全连接层(Linear Layer),使其可以作为一个可插入模块应用到已经训练好的 DiT 结构中。
EasyAnimate-v3 中的 Slice VAE(Variational Auto Encoder)结构如上,不仅有 1/4 的时序压缩率,还支持对不同输入使用不同的处理策略:
输入视频帧时:在高宽与时间轴上进行压缩,例如当输入为 512512 分辨率 8 帧的视频帧时,将其压缩为 64642 的 Latent 向量。
输入图片时:则仅仅在高宽上进行压缩,列入当输入为 512512 分辨率的图片时,将其压缩为 6464*1 的 Latent 向量。
EasyAnimate-v3 版本新增的图生视频 Pipeline 如上图所示,我们提供视觉-文本双流的信息注入:
需要重建的部分和重建的参考图分别通过 Slice VAE 进行编码(上图黑色的部分代表需要重建的部分,白色的部分代表首图),然后和随机初始化的 Latent 进行 Concat 合并。假设我们期待生成一个 384672 分辨率 144 帧的视频,此时的初始 Latent 就是 4x36x48x84,需要重建的部分和重建的参考图编码后也是 4x36x48x84,三个向量 Concat 合并到一起后便是 12x36x48x84,传入 DiT 模型中进行噪声预测。
文本提示词这里,我们使用 CLIP Image Encoder 对输入图片编码后,使用一个 CLIP Projection 进行映射,然后将结果与 T5 编码后的文本进行 Concat 合并,二者在 DiT 中进行 Cross Attention。
评论