EasyAnimate-v3版本支持I2V及超长视频生成

news/2024/8/22 7:08:00 标签: AIGC, 视频生成, EasyAnimate

阿里云人工智能平台(PAI)自研开源的视频生成项目EasyAnimate正式发布v3版本:

  • 支持 图片(可配合文字) 生成视频

  • 支持 上传两张图片作为起止画面 生成视频

  • 最大支持720p(960*960分辨率) 144帧视频生成

  • 最低支持 12G 显存使用(3060 12G可用)

  • 视频续写生成无限时长视频

项目主页:https://easyanimate.github.io

开源地址:GitHub - aigc-apps/EasyAnimate: 📺 An End-to-End Solution for High-Resolution and Long Video Generation Based on Transformer Diffusion

技术报告:https://arxiv.org/abs/2405.18991

PAI平台上快速体验:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

效果展示

image.png

上图展示图生视频和文生视频的输入参考图、Prompt(提示词)及生成结果。

项目提供基于Gradio搭建的WebUI界面,上手非常方便。

模型结构

image.png

  • 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。


http://www.niftyadmin.cn/n/5556269.html

相关文章

MySQL8之mysql-community-icu-data-files的作用

MySQL8中的mysql-community-icu-data-files包主要提供国际组件(ICU,International Components for Unicode)的数据文件,这些文件对于MySQL数据库处理多语言数据和进行Unicode字符集转换至关重要。具体来说,mysql-commu…

vi 编辑器快捷生成 main 函数和基本框架

step1: 执行 sudo vi /etc/vim/vimrc &#xff08;修改vimrc需要管理员权限&#xff1a;sudo&#xff09; step2:输入用户密码&#xff0c;回车, 编辑vimrc文件 step3:在尾行输入以下代码&#xff08;可复制&#xff09; map mf i#include<stdio.h><ESC>o#includ…

Linux 环境下整体备份迁移 Docker 镜像及数据教程

1. 介绍 本教程将引导您如何在 Linux 环境下备份和迁移 Docker 镜像及其数据。我们将逐步介绍相关步骤&#xff0c;包括 Docker 镜像的导出和导入、数据卷的备份和恢复等。通过本教程&#xff0c;您将能够轻松掌握 Docker 容器的迁移操作。 2. 前置准备 在开始之前&#xff…

在 PostgreSQL 里如何实现数据的冷热数据分层存储的动态调整?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何实现数据的冷热数据分层存储的动态调整一、什么是冷热数据分层存储二、为什么需要…

Ubuntu上卸载Nginx步骤操作

停止Nginx服务&#xff1a; sudo systemctl stop nginx删除Nginx软件包&#xff1a; sudo apt-get remove --purge nginx nginx-common这条命令会删除Nginx及其配置文件。 清理依赖项&#xff1a; sudo apt-get autoremove这会删除Nginx安装时可能安装的依赖项&#xff0c;…

开源软件的浪潮:趋势、参与经验与共赢未来

在当今这个日新月异的全球经济与科技环境中&#xff0c;开源软件项目如同一股不可阻挡的洪流&#xff0c;正以前所未有的速度重塑着软件开发、技术创新与商业合作的格局。随着云计算、大数据、人工智能等技术的蓬勃发展&#xff0c;开源文化以其开放、协作、共享的核心价值&…

UI组件库(element 、antdesign 等)下拉组件值为id不回显的坑

1、你们是否也遇到过&#xff0c;我们常用下拉组件&#xff0c;然而平时用的好好的&#xff0c;万一哪天突然来了一个新小伙伴&#xff0c;把下拉的数据id定义为了number类型和以前的string不一样&#xff0c;这次同样的组件&#xff0c;却突然回显不生效&#xff0c;也不报错&…

基于高德地图实现Android定位功能实现(二)

基于高德地图实现Android定位功能实现&#xff08;二&#xff09; 在实现的高德地图的基本显示后&#xff0c;我们需要不断完善地图的功能 地图界面设计&#xff08;悬浮按钮等&#xff09; 首先就是地图页面的布局&#xff0c;这个根据大家的实际需求进行设计即可&#xff…