火山引擎云服务器实践教程-搭建AnimateDiff-Lightning模型进行文生视频推理

axin 2025-04-03 6人围观 ,发现0个评论 火山引擎云服务器云服务器云服务器教程

👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>

本文主要介绍在云服务器实例中部署AnimateDiff-Lightning模型,搭配追求真实感风格化的基础模型epiCRealism,实现快速、高质量的文生视频推理。

功能特色

本实践使用了火山引擎第3代云服务器通用型g3i,该规格实例采用火山引擎自研最新DPU架构并搭载了第5代英特尔®至强®可扩展处理器(Emerald Rapids,EMR),结合新一代硬件AI加速指令AMX-BF16(Intel Advanced Matrix Extensions)以及基于其上的IPEX框架优化,实现了系统级优化方案来加速AnimateDiff-Lightning模型的文生视频推理速度。

背景信息

IPEX

Intel® Extension for PyTorch(IPEX)是由Intel开源并维护的一个PyTorch扩展库,大幅度提升了使用PyTorch在Intel处理器上运行AI应用,尤其是深度学习应用的性能。Intel正不断为PyTorch贡献IPEX的优化性能,为PyTorch社区提供最新的Intel硬件和软件改进。了解更多。

AnimateDiff-Lightning模型

ByteDance/AnimateDiff-Lightning是字节跳动基于AnimateDiff SD1.5 v2,通过渐进式对抗扩散蒸馏技术提炼出的轻量级文生视频大模型,其速度比原始AnimateDiff模型要快10倍以上。同时,该模型还提供了1step、2step、4step、8step四种类型的模型版本,并提供了开源的预训练模型(Demo)供大家直接使用,主要分为写实模型与卡通模型。了解更多。

epiCRealism模型

emilianJR/epiCRealism是一个专注于生成高度真实图像的Stable Diffusion模型。AnimateDiff-Lightning与该风格化的基础模型一起使用时,可以生成更高质量的现实风格视频。了解更多。

操作步骤

手动部署推理环境:

步骤一:环境准备
创建搭载了第5代英特尔®至强®可扩展处理器(Emerald Rapids,EMR)的云服务器实例,详细操作请参见购买云服务器。
创建实例时,请注意以下配置:
  • 实例规格:本文选择通用型g3i(ecs.g3i.8xlarge)规格。

  • 云盘:推荐云盘容量不低于80GiB。

  • 镜像:本文选择Ubuntu 22.04 LTS 64位。

  • 网络:需要绑定公网IP,操作详情可查看绑定公网IP。

步骤二:部署文生视频模型

  1. 将如下文件上传至运行模型的服务器。操作详情可查看本地数据上传。

  1. 登录目标实例。

  1. (可选)执行如下命令,安装Unzip工具。若您的实例已安装,请跳过本步骤。

sudo apt-get install unzip -y
  1. 执行如下命令,解压上传的压缩包。

unzip animatediff_lightning.zip
说明
解压后您将获得如下文件:

  • install.sh:下载AnimateDiff-Lightning与epiCRealism模型,并安装运行模型所需的Python、PyTorch、Intel Extension等依赖。

本实践模型均通过HuggingFace Mirror镜像站下载(详情可查看本脚本中如下内容),您也可以前往HuggingFace官网获取相应模型。
export HF_ENDPOINT=https://hf-mirror.com
mkdir -p /home/models/epiCRealism
huggingface-cli download --resume-download --local-dir-use-symlinks False emilianJR/epiCRealism --local-dir /home/models/epiCRealism
mkdir -p /home/models/AnimateDiff-Lightning
huggingface-cli download --resume-download --local-dir-use-symlinks False ByteDance/AnimateDiff-Lightning --local-dir /home/models/AnimateDiff-Lightning
  • pipeline_animatediff_ipex.py:本文件内容基于HuggingFace的pipeline_animatediff_ipex.py文件编写,您可以参考官方示例自行修改。

  • sd_pipe_animatediff_lightning.py:本实践使用Intel提交的diffusers库,详情可查看AnimateDiff on IPEX。

  1. 执行如下命令,进入animatediff_lightning目录。

cd animatediff_lightning/
  1. 执行如下命令,为脚本文件添加可执行权限。

chmod +x install.sh
  1. 执行如下命令,通过脚本下载模型并安装依赖。

./install.sh

步骤三:运行模型

  1. 登录目标实例。

  1. 执行如下命令,进入animatediff_lightning目录。

cd animatediff_lightning/
  1. 执行如下命令,通过脚本运行文生视频模型进行推理测试。

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精度模式。启用后,可使用AMX指令集加速文生视频推理,否则不会使用AMX指令集进行推理加速。

    • 传递本参数表示启用BF16精度模式,不传递表示不启用。

--bf16
--num_frames
int,表示生成视频的总帧数,此模型支持总帧数最大不超过32,默认值为16。
16
--fps
int,表示生成的视频每秒帧数,默认值为8即每秒8帧。
8
--height
int,表示视频高度,单位像素。
    • 默认值:512(推荐)。

    • 最大值:1024。

512
--width
int,表示视频宽度,单位像素。
    • 默认值:512(推荐)。

    • 最大值:1024。

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格式命名,并存放在您执行推理命令的目录中。

使用Docker部署推理环境:

步骤一:环境准备

  1. 创建搭载了第5代英特尔®至强®可扩展处理器(Emerald Rapids,EMR)的云服务器实例,详细操作请参见购买云服务器。

创建实例时,请注意以下配置:
    • 实例规格:本文选择通用型g3i(ecs.g3i.8xlarge)规格。

    • 云盘:推荐云盘容量不低于80GiB。

    • 镜像:本文选择Ubuntu 22.04 LTS 64位。

    • 网络:需要绑定公网IP,操作详情可查看绑定公网IP。

  1. 为目标实例安装Docker,详细操作请参见搭建Docker。

说明
请确保Docker版本不低于19.03,且DOCKER_BUILDKIT=1。

步骤二:部署文生视频模型

  1. 将如下文件上传至运行模型的服务器。操作详情可查看本地数据上传。

  1. 登录目标实例。

  1. (可选)执行如下命令,安装Unzip工具。若您的实例已安装,请跳过本步骤。

sudo apt-get install unzip -y
  1. 执行如下命令,解压上传的压缩包。

unzip animatediff_lightning_config.zip
说明
解压后您将获得如下文件:

  • Dockerfile:定义了如何自动构建文生视频的Docker镜像。

本实践模型均通过HuggingFace Mirror镜像站下载(详情可查看本文件中如下内容),您也可以前往HuggingFace官网获取相应模型。
# Set the environment variable
ARG HF_ENDPOINT=https://hf-mirror.com
ENV HF_ENDPOINT=$HF_ENDPOINT
# Download base model epiCRealism
RUN mkdir -p /home/models/epiCRealism
RUN huggingface-cli download --resume-download --local-dir-use-symlinks False emilianJR/epiCRealism --local-dir /home/models/epiCRealism
# Download animatediff-lightning
RUN mkdir -p /home/models/AnimateDiff-Lightning
RUN huggingface-cli download --resume-download --local-dir-use-symlinks False ByteDance/AnimateDiff-Lightning --local-dir /home/models/AnimateDiff-Lightning
  • pipeline_animatediff_ipex.py:本文件内容基于HuggingFace的pipeline_animatediff_ipex.py文件编写,您可以参考官方示例自行修改。

  • sd_pipe_animatediff_lightning.py:本实践使用Intel提交的diffusers库,详情可查看AnimateDiff on IPEX。

  1. 执行如下命令,进入animatediff_lightning_config目录。

cd animatediff_lightning_config/
  1. 执行如下命令,修改Dockerfile文件名称。

mv Dockerfile.txt Dockerfile
  1. 在Dockerfile文件同级目录下,执行如下命令,构建名为animatediff的Docker镜像,并将其添加标签lightning。

docker build -t animatediff:lightning .

  1. 执行如下命令,编译文生视频模型。

docker run --name animatediff --privileged=true -it animatediff:lightning bash

步骤三:运行模型

  1. 登录目标实例。

  1. 进入animatediff容器,若您已在容器中,请跳过本步骤。

    1. 执行如下命令,查看Docker镜像animatediff的ID信息。

docker ps -a

    1. 执行如下命令,以交互模式进入animatediff容器。

docker exec -it <container_id> /bin/bash
说明
请将<container_id>替换为实际Docker镜像ID。
  1. 执行如下命令,进入脚本目录。

cd animatediff_lightning/
  1. 执行如下命令,通过脚本运行文生视频模型进行推理测试。

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精度模式。启用后,可使用AMX指令集加速文生视频推理,否则不会使用AMX指令集进行推理加速。

    • 传递本参数表示启用BF16精度模式,不传递表示不启用。

--bf16
--num_frames
int,表示生成视频的总帧数,此模型支持总帧数最大不超过32,默认值为16。
16
--fps
int,表示生成的视频每秒帧数,默认值为8即每秒8帧。
8
--height
int,表示视频高度,单位像素。
    • 默认值:512(推荐)。

    • 最大值:1024。

512
--width
int,表示视频宽度,单位像素。
    • 默认值:512(推荐)。

    • 最大值:1024。

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精度模式。启用后,可使用AMX指令集加速文生视频推理,否则不会使用AMX指令集进行推理加速。

    • 传递本参数表示启用BF16精度模式,不传递表示不启用。

--bf16
--num_frames
int,表示生成视频的总帧数,此模型支持总帧数最大不超过32,默认值为16。
16
--fps
int,表示生成的视频每秒帧数,默认值为8即每秒8帧。
8
--height
int,表示视频高度,单位像素。
    • 默认值:512(推荐)。

    • 最大值:1024。

512
--width
int,表示视频宽度,单位像素。
    • 默认值:512(推荐)。

    • 最大值:1024。

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


请关注微信公众号
微信二维码
不容错过
Powered By TOPYUN 云产品资讯