HuggingFace镜像/FramePack
模型介绍文件和版本分析
下载使用量0

一、准备运行环境

表 1 版本配套表

配套版本环境准备指导
Python3.10.2-
torch2.1.0-

1.1 获取CANN&MindIE安装包&环境准备

  • 设备支持: Atlas 800I A2/Atlas 800T A2设备:FramePack支持1、2、4、8卡推理
  • Atlas 800I A2/Atlas 800T A2
  • 环境准备指导

1.2 CANN安装

# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构,{soc}表示昇腾AI处理器的版本。
chmod +x ./Ascend-cann-toolkit_{version}_linux-{arch}.run
chmod +x ./Ascend-cann-kernels-{soc}_{version}_linux.run
# 校验软件包安装文件的一致性和完整性
./Ascend-cann-toolkit_{version}_linux-{arch}.run --check
./Ascend-cann-kernels-{soc}_{version}_linux.run --check
# 安装
./Ascend-cann-toolkit_{version}_linux-{arch}.run --install
./Ascend-cann-kernels-{soc}_{version}_linux.run --install

# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh

1.3 MindIE安装

# 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构。
chmod +x ./Ascend-mindie_${version}_linux-${arch}.run
./Ascend-mindie_${version}_linux-${arch}.run --check

# 方式一:默认路径安装
./Ascend-mindie_${version}_linux-${arch}.run --install
# 设置环境变量
cd /usr/local/Ascend/mindie && source set_env.sh

# 方式二:指定路径安装
./Ascend-mindie_${version}_linux-${arch}.run --install-path=${AieInstallPath}
# 设置环境变量
cd ${AieInstallPath}/mindie && source set_env.sh

1.4 Torch_npu安装

安装pytorch框架 版本2.1.0 安装包下载

使用pip安装

# {version}表示软件版本号,{arch}表示CPU架构。
pip install torch-${version}-cp310-cp310-linux_${arch}.whl

下载 pytorch_v{pytorchversion}_py{pythonversion}.tar.gz

tar -xzvf pytorch_v{pytorchversion}_py{pythonversion}.tar.gz
# 解压后,会有whl包
pip install torch_npu-{pytorchversion}.xxxx.{arch}.whl

1.5 安装所需依赖。

pip3 install -r requirements.txt

二、下载本仓库

2.1 下载到本地

   git clone https://modelers.cn/MindIE/FramePack.git

三、FramePack使用

3.1 权重及配置文件说明

  1. 下载FramePack权重,共包含三部分模型的配置文件及权重: HunyuanVideo
   git clone https://huggingface.co/hunyuanvideo-community/HunyuanVideo

flux_redux_bfl

   git clone https://huggingface.co/lllyasviel/flux_redux_bfl

FramePackI2V_HY / FramePack_F1_I2V_HY_20250503(模型版本不同)

   git clone https://huggingface.co/lllyasviel/FramePackI2V_HY
   git clone https://huggingface.co/lllyasviel/FramePack_F1_I2V_HY_20250503
  1. 各模型的配置文件、权重文件的层级样例如下所示。
|----FramePack
|    |---- HunyuanVideo
|    |    |---- text_encoder
|    |    |    |---- config.json
|    |    |    |---- 模型权重
|    |    |---- text_encoder_2
|    |    |    |---- config.json
|    |    |    |---- 模型权重
|    |    |---- tokenizer
|    |    |    |---- config.json
|    |    |    |---- 模型权重
|    |    |---- tokenizer_2
|    |    |    |---- config.json
|    |    |    |---- 模型权重
|    |    |---- vae
|    |    |    |---- config.json
|    |    |    |---- 模型权重
|    |---- flux_redux_bfl
|    |    |---- model_index.json
|    |    |---- feature_extractor
|    |    |    |---- config.json
|    |    |    |---- 模型权重
|    |    |---- image_encoder
|    |    |    |---- config.json
|    |    |    |---- 模型权重
|    |---- FramePackI2V_HY / FramePack_F1_I2V_HY_20250503
|    |    |---- config.json
|    |    |---- 模型权重

3.2 单卡推理

  1. 设置FramePack权重路径:
model_path='/data/FramePack'
  1. 执行命令:(FramePackI2V_HY模型推理执行demo_gradio_inference.py;FramePack_F1_I2V_HY模型推理执行demo_gradio_inference_f1.py)
export CPU_AFFINITY_CONF=1
export HCCL_OP_EXPANSION_MODE="AIV"
TASK_QUEUE_ENABLE=2 ASCEND_RT_VISIBLE_DEVICES=0 torchrun --master_port=2002 --nproc_per_node=1 demo_gradio_inference_f1.py \
        --model_path ${model_path} \
        --height 640 \
        --width 480 \
        --steps 30 \
        --frame_num 60 \
        --frame_window_size 60 \
        --fps 30 \
        --use_teacache True

参数说明:

  • CPU_AFFINITY_CONF=1:环境变量,绑核。
  • HCCL_OP_EXPANSION_MODE="AIV":环境变量,通信算子编排。
  • TASK_QUEUE_ENABLE=2:开启二级流水。
  • ASCEND_RT_VISIBLE_DEVICES=0:device id,可设置其他卡数。
  • nproc_per_node:数值需要与卡数保持一致。
  • model_path:权重路径。
  • height:生成视频的分辨率,高,默认值为640。
  • width:生成视频的分辨率,宽,默认值为480。
  • steps:推理迭代步数,默认值为30。
  • frame_num:生成视频的帧数,默认值为60。
  • frame_window_size:每轮推理迭代生成视频的帧数,默认值为60,即一轮迭代生成所有帧。
  • fps:生成视频的帧率,默认值为30。
  • use_teacache:可选择算法优化teacache,推荐设置为True,注意是有损的加速算法。

推理结束后会在outputs路径下保存视频。

3.3 多卡推理(FramePack支持1、2、4、8卡推理)

  1. 设置FramePack权重路径:
model_path='/data/FramePack'
  1. 执行命令:(FramePackI2V_HY模型推理执行demo_gradio_inference.py;FramePack_F1_I2V_HY模型推理执行demo_gradio_inference_f1.py)
export CPU_AFFINITY_CONF=1
export HCCL_OP_EXPANSION_MODE="AIV"
TASK_QUEUE_ENABLE=2 ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --master_port=2002 --nproc_per_node=8 demo_gradio_inference_f1.py \
        --model_path ${model_path} \
        --height 640 \
        --width 480 \
        --steps 30 \
        --frame_num 60 \
        --frame_window_size 60 \
        --fps 30 \
        --use_teacache True

参数说明:

  • CPU_AFFINITY_CONF=1:环境变量,绑核。
  • HCCL_OP_EXPANSION_MODE="AIV":环境变量,通信算子编排。
  • TASK_QUEUE_ENABLE=2:开启二级流水。
  • ASCEND_RT_VISIBLE_DEVICES:device id,可设置其他卡数。ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7代表占用0-7卡进行8卡推理。
  • nproc_per_node:数值需要与卡数保持一致。
  • model_path:权重路径。
  • height:生成视频的分辨率,高,默认值为640。
  • width:生成视频的分辨率,宽,默认值为480。
  • steps:推理迭代步数,默认值为30。
  • frame_num:生成视频的帧数,默认值为60。
  • frame_window_size:每轮推理迭代生成视频的帧数,默认值为60,即一轮迭代生成所有帧。
  • fps:生成视频的帧率,默认值为30。
  • use_teacache:可选择算法优化teacache,推荐设置为True,注意是有损的加速算法。

推理结束后会在outputs路径下保存视频。

四、推理性能结果参考

FramePack

硬件形态cpu规格batch size迭代次数卡数是否使用teacache平均耗时
Atlas 800I A2(8*64G)64核(arm)1301True60s
Atlas 800I A2(8*64G)64核(arm)1301False124s
Atlas 800I A2(8*64G)64核(arm)1308True14s
Atlas 800I A2(8*64G)64核(arm)1308False24s

性能测试需要独占npu和cpu

五、优化指南

本模型使用的优化手段如下:

  • 等价优化:FA、RoPE、RMSNorm、SP并行
  • 算法优化:FA、RoPE、RMSNorm、SP并行、teacache

声明

  • 本代码仓提到的数据集和模型仅作为示例,这些数据集和模型仅供您用于非商业目的,如您使用这些数据集和模型来完成示例,请您特别注意应遵守对应数据集和模型的License,如您因使用数据集或模型而产生侵权纠纷,华为不承担任何责任。
  • 如您在使用本代码仓的过程中,发现任何问题(包括但不限于功能问题、合规问题),请在本代码仓提交issue,我们将及时审视并解答。