EasyAnimate-v3 实测,阿里开源视频生成模型,5 分钟带你部署体验,支持高分辨率超长视频

news2024/9/20 21:59:47

自从 Sora 发布以来,AI 视频生成的热度不减,社区中涌现了大量类 Sora 的开源项目。

前不久,快手开放了可灵视频生成模型的内测,不过可灵是闭源的,相信很多小伙伴还没拿到内测名额。

今天给大家分享一款开源的视频生成模型,来自阿里云团队,4月刚开源,目前已迭代到 V3 版本。

我们先来感受一下效果:

EasyAnimate-v3-DemoShow

项目简介

🚀 一键直达:https://github.com/aigc-apps/EasyAnimate

市面上的 AI 视频生成模型大都基于 Diffusion Transformer 结构,也即采用 Transformer 结构取代了 UNet 作为扩散模型的基线。

EasyAnimate 也不例外,它通过扩展 DiT 框架引入了运动模块,增强了对时间动态的捕捉能力,确保生成视频的流畅性和一致性。

功能简介:单张图像 + 文本描述,生成高分辨率的超长视频。

使用限制:目前的视频生成模型必须得上 GPU,不同配置下能生成的分辨率和时长如下图所示,大家可以参照自己的机器配置进行生成:

其中,✅ 代表可以在low_gpu_memory_mode=False下运行,⭕️ 可以在low_gpu_memory_mode=True下运行,❌ 无法运行。当然,low_gpu_memory_mode=True会把部分参数放到 CPU,运行速度较慢。此外,确保显卡支持 bfloat16。

部署实战

Docker 部署

这里我们选择 Docker 部署,因为无需配置本地环境,且有效实现了环境隔离,方便快速测试,用完即删。主打一个高效~

拉取镜像

终端执行如下命令拉取镜像:

docker pull mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:easyanimate

注:该镜像有 19.8G,把项目所需环境都打包好了,下载得有一会儿。

进入容器

终端执行如下命令进入容器:

docker run -it -p 7860:7860 --network host --gpus all --security-opt seccomp:unconfined --shm-size 100g mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:easyanimate

部分参数解释如下:

  • –network host:使用宿主机的网络配置,使容器直接使用宿主机的网络,方便进行网络通信。
  • –gpus all:允许容器使用所有可用的 GPU,如果需要指定特定编号的 GPU,修改为’“device=0,1”'。
  • –security-opt seccomp:unconfined:禁用 seccomp 安全限制,允许容器执行更多系统调用,适用于需要较高权限的应用。
  • –shm-size 200g:设置共享内存大小为 200GB,适合需要大量内存的应用,需要根据你的机器配置适当调整。

切记:一定要指定 --shm-size,如果不指定,Docker 默认的共享内存大小只有 64MB,这种应用是玩不转的,会报错提示内存不足。

如何查看机器还剩多少内存(以 GB 为单位)?

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           125Gi       6.4Gi        15Gi        39Mi       104Gi       118Gi
Swap:          2.0Gi       325Mi       1.7Gi

其中的 available 是可用内存。

下载代码和模型

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

cd EasyAnimate
mkdir models/Diffusion_Transformer

wget https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/easyanimate/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512.tar -O models/Diffusion_Transformer/EasyAnimateV3-XL-2-InP-512x512.tar

cd models/Diffusion_Transformer/
tar -xvf EasyAnimateV3-XL-2-InP-512x512.tar
cd ../../

Gradio 应用展示

我们先在本地测试一下:

python predict_t2v.py

目前项目还在持续迭代中,如果遇到报错,需要查看一下代码和配置文件,并做相应修改,上述脚本采用的配置文件为:config/easyanimate_video_slicevae_motion_module_v3.yaml,需要在最后加上一行:enable_multi_text_encoder: false

跑 384x672 分辨率的模型,显存大约需要占用 11.5G:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.14              Driver Version: 550.54.14      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4080        On  |   00000000:18:00.0 Off |                  N/A |
| 66%   64C    P2            278W /  320W |   11503MiB /  16376MiB |    100%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

结果默认保存在 samples/easyanimate-videos 文件夹下。

root@ps:~/EasyAnimate# ls samples/easyanimate-videos/
00000001.mp4

因为我们是在容器中跑的代码, 如何把 docker 容器中的文件传到宿主机上查看呢?

需要使用 docker cp 命令,语法如下:

docker cp <container_id_or_name>:<path_in_container> <path_on_host>

# 举个例子
docker cp fea230d1bc40:/root/EasyAnimate/samples/easyanimate-videos/00000001.mp4 ./

最后,为了方便可视化展示,一键启动 Gradio WebUI 界面:

python app.py

浏览器中打开 127.0.0.1:7860,下方红色箭头处选择下载好的模型:

和 Stable Diffusion 的使用方式一致,填入正向和负向提示词,选择一张参考图,开始视频生成。

我的是 16G 的 4080 显卡,默认 24 FPS 共 144 帧,也就是 6S 的视频,大约需要 188s 能处理完成。

最终效果给大家展示下:

easyanimate_v3_test

目前来看,还不是特别稳定,期待官方的 V4 版本~

写在最后

不得不说,最近 AI 视频生成领域的进展也非常喜人,EasyAnimate 作为一款开源模型,在视频的流畅性和一致性方面,初步效果已经颇具潜力。

本文通过简单的Docker部署,带领大家快速上手体验。

对于探索 AI 视频生成的小伙伴来说,EasyAnimate 无疑是一个值得尝试的工具。

如果本文对你有帮助,欢迎点赞收藏备用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1940493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot 启动时Bean的创建与注入(一)-面试热点-springboot源码解读-xunznux

Springboot 启动时Bean的创建与注入&#xff0c;以及对应的源码解读 文章目录 Springboot 启动时Bean的创建与注入&#xff0c;以及对应的源码解读构建Web项目流程图&#xff1a;堆栈信息&#xff1a;堆栈信息简介堆栈信息源码详解1、main:10, DemoApplication (com.xun.demo)2…

currentTarget和target

*.wxml *.js 点击按钮 发现 currentTarget 获取的是事件绑定者的参数 target 获取的是事件触发者的参数

vue3前端开发-小兔鲜项目-一级页面产品列表渲染

vue3前端开发-小兔鲜项目-一级页面产品列表渲染&#xff01; 这一次做两件事。第一个是给导航栏增加一个动态标记的属性。第二件事是渲染一下一级页面内产品列表。 第一件事&#xff0c;很简单&#xff0c;路由器插件&#xff0c;自带了这种属性。 如图所示&#xff0c;有一个…

最新CSM客户成功 OKR 案例:以指导、激励和调整您的团队

客户是任何企业的命脉&#xff0c;而客户服务是与客户接触的第一站&#xff0c;是实现目标和扩大组织规模是以保留客户和追加销售为前提的。 客户成功CSM是一种商业方法&#xff0c;确保客户在使用你的产品/服务时达到他们想要的结果。客户成功是以关系为中心的客户管理&#…

昇思25天学习打卡营第22天|ResNet50图像分类

ResNet网络介绍 ResNet50网络是2015年由微软实验室的何恺明提出&#xff0c;获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前&#xff0c;传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的&#xff0c;但当网络堆叠到一定深度时&#xff0c;就会出现退化问…

Linux系统编程基础

Linux操作系统 Linux不是一个具体的操作系统&#xff0c;而是一类操作系统的总称&#xff0c;具体版本成为发行版。 Red Hat&#xff1a;目前被IBM收购&#xff0c;收费版&#xff0c;目前最大的Linux供应商CentOS&#xff1a; Red Hat退出的免费版Ubuntu&#xff1a;界面比较友…

公司技术栈用到了RocketMQ,我对此块知识进行了回顾(初始RocketMQ)

前言 作为24届的校招生&#xff0c;不知道大伙儿们是否都已经到了工作岗位上。为了以后更方便的接触到公司的业务&#xff0c;我司为我们安排了将近一个月的实操。虽然不用敲代码&#xff0c;但是… 了解到我司使用到的技术栈&#xff0c;在空闲时间正好对RocketMQ这块技术做个…

Redis集群部署Windows版本

Redis集群 之前因为数据量的原因&#xff0c;并没有进行Redis集群的配置需要&#xff0c;现在由于数据量大&#xff0c;需要进行集群部署。 最初在windows系统部署&#xff0c;需要Redis的windows版本&#xff0c;但官方没有windows版本&#xff0c;所以需要去gitHub上找由民…

git使用-命令行+VS Code结合使用

一、Git常用命令 // 显示当分支的状态。它会列出已修改、已暂存和未跟踪的文件 git status// 列出本地仓库中所有的分支&#xff0c;其中会特殊显示当前所在分支 git branch// 在当前分支的基础上创建一个新的分支&#xff0c;并切换到这个新的分支上 git checkout -b 新分支…

超声波清洗机洗眼镜好吗?一篇文章告诉你买超声波清洗机有必要吗

眼镜党们&#xff0c;你们是不是也有眼镜清洁的烦恼&#xff1f;日常生活中&#xff0c;我们佩戴的眼镜很容易就会沾上脏污&#xff0c;而经常擦拭又会损伤眼镜镜片&#xff0c;而且&#xff0c;长时间未清洁的尘埃、油脂乃至细菌&#xff0c;会影响我们的视觉健康&#xff0c;…

被问到MQ消息已丢失,该如何处理?

在分布式系统中&#xff0c;消息中间件&#xff08;如 RabbitMQ、RocketMQ、Kafka、Pulsar 等&#xff09;扮演着关键角色&#xff0c;用于解耦生产者和消费者&#xff0c;并确保数据传输的可靠性和顺序性。尽管我们通常会采取多种措施来防止消息丢失&#xff0c;如消息持久化、…

【C语言】动态内存管理(上)

文章目录 前言1.为什么要存在动态内存2. malloc和free2.1 malloc2.2 free2.3 使用实例&#xff08;malloc和free&#xff09; 3. calloc3.1 calloc例子 前言 本文开始将开始学习C语言中一个比较重要的知识点或者是操作——动态内存管理。由于本次的知识比较重要&#xff0c;为…

git 提交的进阶操作

cherry-pick cherry-pick 是 Git 中的一种操作,允许你从一个分支中选择特定的 commit,并将其应用到另一个分支。它的主要用途是将特定的更改引入到其他分支,而无需合并整个分支历史。这在修复 bug 或者移植某些功能时特别有用。 cherry-pick 的使用场景 Bug 修复: 例如,你…

WhisperX

文章目录 一、关于 WhisperX新闻 &#x1f6a8; 二、设置⚙️1、创建Python3.10环境2、安装PyTorch&#xff0c;例如Linux和Windows CUDA11.8&#xff1a;3、安装此repo4、Speaker Diarization 三、使用&#x1f4ac;&#xff08;命令行&#xff09;1、English2、他语言例如德语…

厦门会展可视化:展览全方位动态展示

通过图扑先进的可视化技术&#xff0c;实时呈现厦门会展中心的各类活动和展览布局&#xff0c;提供直观的导航和详细的展区信息&#xff0c;让参观者轻松完成数字化体验。

ELK日志管理与应用

目录 一.ELK收集nginx日志 二.收集tomcat日志 三.Filebeat 一.ELK收集nginx日志 1.搭建好ELKlogstashkibana架构 2.关闭防火墙和selinux systemctl stop firewalld setenforce 0 3.安装nginx [rootlocalhost ~]# yum install epel-release.noarch -y [rootlocalhost …

谷粒商城实战笔记-37-前端基础-Vue-基本语法插件安装

文章目录 一&#xff0c;v-model1&#xff0c;双向绑定2&#xff0c;vue的双向绑定2.1 html元素上使用指令v-model2.2 model中声明对应属性2.3&#xff0c;验证view绑定modelmodel绑定view 完整代码 二&#xff0c;v-on1&#xff0c;指令简介2&#xff0c;在button按钮中添加v-…

【机器学习】超参数选择:解锁机器学习模型潜力的关键

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 超参数选择&#xff1a;解锁机器学习模型潜力的关键引言什么是超参数&#xff1…

【云原生】Kubernetes中的DaemonSet介绍、原理、用法及实战应用案例分析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…