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

axin 2025-04-03 57人围观 ,发现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 云产品资讯