👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
功能特色
背景信息
IPEX
AnimateDiff-Lightning模型
epiCRealism模型
操作步骤
手动部署推理环境:
实例规格:本文选择通用型g3i(ecs.g3i.8xlarge)规格。
云盘:推荐云盘容量不低于80GiB。
镜像:本文选择Ubuntu 22.04 LTS 64位。
网络:需要绑定公网IP,操作详情可查看绑定公网IP。
步骤二:部署文生视频模型
将如下文件上传至运行模型的服务器。操作详情可查看本地数据上传。
登录目标实例。
(可选)执行如下命令,安装Unzip工具。若您的实例已安装,请跳过本步骤。
sudo apt-get install unzip -y
执行如下命令,解压上传的压缩包。
unzip animatediff_lightning.zip
install.sh:下载AnimateDiff-Lightning与epiCRealism模型,并安装运行模型所需的Python、PyTorch、Intel Extension等依赖。
pipeline_animatediff_ipex.py:本文件内容基于HuggingFace的pipeline_animatediff_ipex.py文件编写,您可以参考官方示例自行修改。
sd_pipe_animatediff_lightning.py:本实践使用Intel提交的diffusers库,详情可查看AnimateDiff on IPEX。
执行如下命令,进入animatediff_lightning目录。
cd animatediff_lightning/
执行如下命令,为脚本文件添加可执行权限。
chmod +x install.sh
执行如下命令,通过脚本下载模型并安装依赖。
./install.sh
步骤三:运行模型
登录目标实例。
执行如下命令,进入animatediff_lightning目录。
cd animatediff_lightning/
执行如下命令,通过脚本运行文生视频模型进行推理测试。
python sd_pipe_animatediff_lightning.py --step 8 --num_frames 16 --fps 8 --prompt "beautiful island of Bali, the shing sun, the beach with light wave" --height 512 --width 512 --bf16
参数名 | 说明 | 取值样例 |
--bf16 | 表示是否启用BF16精度模式。
| --bf16 |
--num_frames | int,表示生成视频的总帧数,此模型支持总帧数最大不超过32,默认值为16。 | 16 |
--fps | int,表示生成的视频每秒帧数,默认值为8即每秒8帧。 | 8 |
--height | int,表示视频高度,单位像素。
| 512 |
--width | int,表示视频宽度,单位像素。
| 512 |
--step | int,表示旋转循环的步长,默认值为4。 | 4 |
--prompt | String,表示生成视频的内容,默认值为beautiful island of Bali, the shining sun, the beach with light waves。 | beautiful island of Bali, the shing sun, the beach with light wave |
使用Docker部署推理环境:
步骤一:环境准备
创建搭载了第5代英特尔®至强®可扩展处理器(Emerald Rapids,EMR)的云服务器实例,详细操作请参见购买云服务器。
实例规格:本文选择通用型g3i(ecs.g3i.8xlarge)规格。
云盘:推荐云盘容量不低于80GiB。
镜像:本文选择Ubuntu 22.04 LTS 64位。
网络:需要绑定公网IP,操作详情可查看绑定公网IP。
为目标实例安装Docker,详细操作请参见搭建Docker。
步骤二:部署文生视频模型
将如下文件上传至运行模型的服务器。操作详情可查看本地数据上传。
登录目标实例。
(可选)执行如下命令,安装Unzip工具。若您的实例已安装,请跳过本步骤。
sudo apt-get install unzip -y
执行如下命令,解压上传的压缩包。
unzip animatediff_lightning_config.zip
Dockerfile:定义了如何自动构建文生视频的Docker镜像。
pipeline_animatediff_ipex.py:本文件内容基于HuggingFace的pipeline_animatediff_ipex.py文件编写,您可以参考官方示例自行修改。
sd_pipe_animatediff_lightning.py:本实践使用Intel提交的diffusers库,详情可查看AnimateDiff on IPEX。
执行如下命令,进入animatediff_lightning_config目录。
cd animatediff_lightning_config/
执行如下命令,修改Dockerfile文件名称。
mv Dockerfile.txt Dockerfile
在Dockerfile文件同级目录下,执行如下命令,构建名为animatediff的Docker镜像,并将其添加标签lightning。
docker build -t animatediff:lightning .
执行如下命令,编译文生视频模型。
docker run --name animatediff --privileged=true -it animatediff:lightning bash
步骤三:运行模型
登录目标实例。
进入animatediff容器,若您已在容器中,请跳过本步骤。
执行如下命令,查看Docker镜像animatediff的ID信息。
docker ps -a
执行如下命令,以交互模式进入animatediff容器。
docker exec -it <container_id> /bin/bash
执行如下命令,进入脚本目录。
cd animatediff_lightning/
执行如下命令,通过脚本运行文生视频模型进行推理测试。
python sd_pipe_animatediff_lightning.py --step 8 --num_frames 16 --fps 8 --prompt "beautiful island of Bali, the shing sun, the beach with light wave" --height 512 --width 512 --bf16
参数名 | 说明 | 取值样例 |
--bf16 | 表示是否启用BF16精度模式。
| --bf16 |
--num_frames | int,表示生成视频的总帧数,此模型支持总帧数最大不超过32,默认值为16。 | 16 |
--fps | int,表示生成的视频每秒帧数,默认值为8即每秒8帧。 | 8 |
--height | int,表示视频高度,单位像素。
| 512 |
--width | int,表示视频宽度,单位像素。
| 512 |
--step | int,表示旋转循环的步长,默认值为4。 | 4 |
--prompt | String,表示生成视频的内容,默认值为beautiful island of Bali, the shining sun, the beach with light waves。 | beautiful island of Bali, the shing sun, the beach with light wave |
生成视频说明:
推理生成的视频,将以animation_{model_type}_{step}_{num_frames}_{fps}.mp4格式命名,并存放在您执行推理命令的目录中。
参数名 | 说明 | 取值样例 |
--bf16 | 表示是否启用BF16精度模式。
| --bf16 |
--num_frames | int,表示生成视频的总帧数,此模型支持总帧数最大不超过32,默认值为16。 | 16 |
--fps | int,表示生成的视频每秒帧数,默认值为8即每秒8帧。 | 8 |
--height | int,表示视频高度,单位像素。
| 512 |
--width | int,表示视频宽度,单位像素。
| 512 |
--step | int,表示旋转循环的步长,默认值为4。 | 4 |
--prompt | String,表示生成视频的内容,默认值为beautiful island of Bali, the shining sun, the beach with light waves。 | beautiful island of Bali, the shing sun, the beach with light wave |