基于 EasyAnimate 模型的视频生成最佳实践
EasyAnimate 是阿里云 PAI 平台自主研发的 DiT 的视频生成框架,它提供了完整的高清长视频生成解决方案,包括视频数据预处理、VAE 训练、DiT 训练、模型推理和模型评测等。本文为您介绍如何在 PAI 平台集成 EasyAnimate 并一键完成模型推理、微调及部署的实践流程。
背景信息
本文为您介绍以下两种视频生成的方式:
DSW 是为算法开发者量身打造的一站式 AI 开发平台,集成了 JupyterLab、WebIDE、Terminal 多种云端开发环境,其中,Gallery 提供了丰富的案例和解决方案,帮助您快速熟悉研发流程。您可以打开 DSW Gallery 中的案例教程,实现一键式运行 Notebook,完成基于 EasyAnimate 的视频生成模型的推理和训练任务,也可以进行模型推理和微调等二次开发操作。
快速开始集成了众多 AI 开源社区中优质的预训练模型,并且基于开源模型支持零代码实现从训练到部署再到推理的全部过程,您可以通过快速开始一键部署 EasyAnimate 模型并生成视频,享受更快、更高效、更便捷的 AI 应用体验。
费用说明
如果您的账号为 DSW 或 EAS 的新用户,可以免费试用相应产品。关于免费试用的额度、领取方式及注意事项等详细信息,请参见新用户免费试用。
说明:在本教程中,仅支持使用 DSW 免费资源类型 ecs.gn7i-c8g1.2xlarge。
如果您的账号非新用户,使用 DSW 和 EAS 会产生相应费用。更多计费详情,请参见交互式建模(DSW)计费说明、模型在线服务(EAS)计费说明、快速开始(QuickStart)计费说明。
前提条件
创建 PAI 工作空间。具体操作,请参见开通PAI并创建默认工作空间。
方式一:使用 DSW
步骤一:创建 DSW 实例
进入 DSW 页面。
登录PAI控制台。
在概览页面选择目标地域。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击目标工作空间名称,进入对应工作空间内。
在工作空间页面的左侧导航栏选择模型开发与训练>交互式建模(DSW),进入 DSW 页面。
单击创建实例。
在配置实例向导页面,配置以下关键参数,其他参数保持默认即可。
单击确定。
步骤二:安装 EasyAnimate 模型
打开 DSW 实例。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击目标工作空间,进入对应工作空间。
在页面左上方,选择使用服务的地域。
在左侧导航栏,选择模型开发与训练>交互式建模(DSW)。
单击目标 DSW 实例操作列下的打开,进入 DSW 实例的开发环境。
在 Notebook 页签的 Launcher 页面,单击快速开始区域 Tool 下的 DSW Gallery,打开 DSW Gallery 页面。
在 DSW Gallery 页面中,搜索 EasyPhoto: 基于 EasyAnimate 的 AI 视频生成示例,单击在 DSW 中打开,即可自动将本教程所需的资源和教程文件下载至 DSW 实例中,并在下载完成后自动打开教程文件。
![](https://static001.geekbang.org/infoq/0b/0ba0bd47db2e2dc9dfbdf016e6402449.png)
下载 EasyAnimate 相关代码和模型并进行安装。
在教程文件 easyanimate.ipynb 中,单击开始按钮运行环境安装节点命令,包括定义函数、下载代码和下载模型。当成功运行一个步骤命令后,再顺次运行下个步骤的命令。
步骤三:推理模型
方式一:使用代码进行推理
单击开始按钮运行模型推理>使用代码进行推理节点的命令进行模型推理。您可在**/mnt/workspace/demos/easyanimate/EasyAnimate/samples/easyanimate-videos**目录中查看生成结果。您可以修改不同的参数来达到不同的效果,参数说明:
![](https://static001.geekbang.org/infoq/dd/dd659c0be730bbbe79cfe0e6c491c09f.png)
方式二:使用 WebUI 进行推理
单击开始按钮运行模型推理>UI 启动节点的命令,进行模型推理。
单击生成的链接,进入 WebUI 界面。
![](https://static001.geekbang.org/infoq/df/df43664dac6d620fa51c50a95b5a4550.png)
在 WebUI 界面选择预训练的模型路径、微调后的基模型和 LoRA 模型,设置 LoRA 权重,其它参数按需配置即可。
![](https://static001.geekbang.org/infoq/34/34fe38bda47d98624afa0e5fe224ee03.png)
单击 Generate(生成),等待一段时间后,即可在右侧查看或下载生成的视频。
![](https://static001.geekbang.org/infoq/c0/c04d769f71863d8b50bd62e2f0040108.png)
步骤四:微调 LoRA
EasyAnimate 提供了丰富的模型训练方式,包括 DiT 模型的训练(LoRA 微调和基模型的全量微调)和 VAE 的训练。关于 Gallery 中内置的 LoRA 微调部分,更多信息,请参见EasyAnimate。
准备数据
单击开始按钮执行模型训练>数据准备节点的命令,即可下载示例数据,用于模型训练。您也可以按照如下格式要求自行准备数据文件。文件数据格式如下。
其中,JSON 文件数据格式和参数说明如下。
![](https://static001.geekbang.org/infoq/7e/7ea8e385138b34bef85342c780c81e65.png)
训练模型
将对应的训练脚本中的 DATASET_NAME 及 DATASET_META_NAME 设置为训练数据所在目录及训练文件地址。
单击开始按钮执行启动训练>LoRA 训练节点的命令。
训练完成后,将生成的模型移动至 models/Personalized_model 文件夹,即可在 UI 界面中选择,或单击开始按钮执行 LoRA 模型推理节点的命令,指定 lora_path 进行视频生成。
方式二:使用快速开始
步骤一:部署模型
进入快速开始页面。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面单击目标工作空间名称,进入对应工作空间内。
在左侧导航栏单击快速开始,进入快速开始页面。
在快速开始页面,搜索 EasyAnimate 高清长视频生成,然后单击部署,配置相关参数。
EasyAnimate 目前仅支持使用 bf16 进行推理,请选择 A10 及其以上的显卡。
![](https://static001.geekbang.org/infoq/c4/c43762e72766b4b24c7c4bd3d5bcfebc.png)
单击部署,在弹出的计费提醒对话框中,单击确定,页面将自动跳转到服务详情页面。
当状态变为运行中时,即表示模型部署成功。
步骤二:使用模型
模型部署完成后,您可以使用 WebUI 及 API 两种方式调用服务来生成视频。
WebUI 方式
在服务详情页面,单击查看 WEB 应用。
![](https://static001.geekbang.org/infoq/40/401a8007c7663f1cb26426ffd056421f.png)
在 WebUI 界面选择预训练的模型路径,其它参数按需配置即可。
![](https://static001.geekbang.org/infoq/1e/1e54048dbb5c37dabe679f94603a4ed5.png)
单击 Generate(生成),等待一段时间后,即可在右侧查看或下载生成的视频。
![](https://static001.geekbang.org/infoq/32/32b4a6d494896d2a48e695645108a7d4.png)
API 方式
在服务详情页面的资源详情区域,单击查看调用信息,获取调用服务所需的信息。
![](https://static001.geekbang.org/infoq/9d/9d483742b69f082d46c32d18e80264d7.png)
通过接口更新 Transformer 模型,可在 DSW 实例或本地 Python 环境中执行。
如果已经在 WebUI 中选择模型,则无需发送请求重复调用。如遇请求超时,请在 EAS 日志中确认模型已加载完毕。加载完成,日志中将提示 Update diffusion transformer done。Python 请求示例如下。
其中:
调用服务,生成视频或图片。
服务输入参数说明
![](https://static001.geekbang.org/infoq/58/58471cb32c910703fe6e3bfbab387dcb.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
Python 请求示例
服务返回 base64_encoding,为 base64 结果。您可以在**/mnt/workspace/demos/easyanimate/**目录中查看生成结果。
其中:
评论