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

模型推理指导

一、模型简介

Z-Image-Turbo是一种文本到图像的扩散模型,能够在给定文本输入的情况下生成相符的图像。该模型是Z-Image的蒸馏版本,将推理速度提升至传统模型的300%,同时保持极高画面保真度。适用于实时交互、游戏素材生成、电商视觉设计等场景。

本模型使用的优化手段如下: 等价优化:FA 算法优化:FA

二、环境准备

表 1 版本配套表

配套版本环境准备指导
Python3.11.10-
torch2.8.0-

2.1 获取安装包

  • 支持设备:Atlas 800I A2
  • 支持卡数:支持的卡数为1
  • 环境准备指导

2.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

2.3 Torch_npu安装

2.3.1 安装pytorch框架 版本2.8.0

下载软件包

wget https://download.pytorch.org/whl/cpu/torch-2.8.0%2Bcpu-cp311-cp311-manylinux_2_28_aarch64.whl

安装命令

pip3 install torch-2.8.0+cpu-cp311-cp311-manylinux_2_28_aarch64.whl

2.3.2 安装torch_npu框架 版本2.8.0

下载软件包

wget https://gitcode.com/Ascend/pytorch/releases/download/v7.2.0-pytorch2.8.0/torch_npu-2.8.0-cp311-cp311-manylinux_2_28_aarch64.whl

安装命令

pip3 install torch_npu-2.8.0-cp311-cp311-manylinux_2_28_aarch64.whl

2.3.3 安装后验证

执行以下命令可检查PyTorch框架和torch_npu插件是否已成功安装。

python3 -c "import torch;import torch_npu; a = torch.randn(3, 4).npu(); print(a + a);"

输出如下类似信息说明安装成功。

tensor([[-0.6066,  6.3385,  0.0379,  3.3356],
        [ 2.9243,  3.3134, -1.5465,  0.1916],
        [-2.1807,  0.2008, -1.1431,  2.1523]], device='npu:0')

2.4 安装gcc、g++

# 若环境镜像中没有gcc、g++,请用户自行安装
yum install gcc
yum install g++

# 导入头文件路径
export CPLUS_INCLUDE_PATH=/usr/include/c++/12/:/usr/include/c++/12/aarch64-openEuler-linux/:$CPLUS_INCLUDE_PATH

2.5 下载本仓库

git clone https://modelers.cn/MindIE/Z-Image-Turbo.git

2.6 安装所需依赖

2.6.1 安装最新版本的diffusers

pip install git+https://github.com/huggingface/diffusers

2.6.2 安装其他所需依赖

pip install -r requirements.txt

2.6.3 源码编译安装mindiesd

更新torch_npu会导致与mindiesd版本不匹配的情况,需要重新源码编译安装mindiesd

git clone https://gitcode.com/Ascend/MindIE-SD.git && cd MindIE-SD	 
python setup.py bdist_wheel 

cd dist 
pip install mindiesd-*.whl 

三、模型权重

3.1 权重下载

Z-Image-Turbo权重下载地址-HF Z-Image-Turbo权重下载地址-ModelScope

3.2 配置文件说明

修改权重配置文件:

vi ${model_path}/model_index.json

做如下修改:

{
    "_class_name": "ZImagePipeline",
    "_diffusers_version": "0.36.0.dev0",
    "scheduler": [
        "diffusers",
        "FlowMatchEulerDiscreteScheduler"
    ],
    "text_encoder": [
        "transformers",
        "Qwen3Model"
    ],
    "tokenizer": [
        "transformers",
        "Qwen2Tokenizer"
    ],
    "transformer": [
        "zimage",
        "ZImageTransformer2DModel"
    ],
    "vae": [
        "diffusers",
        "AutoencoderKL"
    ]
}

四、模型推理

4.1 Atlas-800I-A2-64g单卡推理性能测试

  1. 设置权重路径:
export model_path="your local Z-Image-Turbo model path"
  1. 执行命令:

(1)原始模型单卡

# 在环境中导入以下环境变量提高推理性能
export CPU_AFFINITY_CONF=2
export TASK_QUEUE_ENABLE=2

python inference.py \
       --model_path ${model_path} \
       --output_path "./output" \
       --device_id 0 \
       --prompt "Young Chinese woman in red Hanfu, intricate embroidery. Impeccable makeup, red floral forehead pattern. Elaborate high bun, golden phoenix headdress, red flowers, beads. Holds round folding fan with lady, trees, bird. Neon lightning-bolt lamp (⚡️), bright yellow glow, above extended left palm. Soft-lit outdoor night background, silhouetted tiered pagoda (西安大雁塔), blurred colorful distant lights." \
       --width 1024 \
       --height 1024 \
       --infer_steps 9 \
       --guidance_scale 0.0 \
       --seed 42   

参数说明:

  • model_path: Z-Image-Turbo本地模型权重路径,必须填写的参数
  • output_path: 保存图像路径,默认当前文件夹下的output文件夹
  • device_id: 推理设备ID,默认值设置为0
  • prompt: 用于图像生成的文字描述提示
  • width: 图像生成的宽度,默认1024
  • height: 图像生成的高度,默认1024
  • infer_steps: Z-Image-Turbo图像推理步数,默认值为9
  • seed: 设置随机种子,默认值为42
  • guidance_scale: 用于控制图像生成的质量,默认值为0.0

(2)单卡+融合算子

# 在环境中导入以下环境变量提高推理性能
export CPU_AFFINITY_CONF=2
export TASK_QUEUE_ENABLE=2

# 置1开启LaserAttention融合算子
export FA_FUSE=1
# 置1开启AdaLn融合算子
export ADALN_FUSE=0
# 置1开启Rope融合算子
export ROPE_FUSE=0
# 置1将Matmul算子转换为NZ格式
export USE_NZ=0

python inference.py \
       --model_path ${model_path} \
       --output_path "./output" \
       --device_id 0 \
       --prompt "Young Chinese woman in red Hanfu, intricate embroidery. Impeccable makeup, red floral forehead pattern. Elaborate high bun, golden phoenix headdress, red flowers, beads. Holds round folding fan with lady, trees, bird. Neon lightning-bolt lamp (⚡️), bright yellow glow, above extended left palm. Soft-lit outdoor night background, silhouetted tiered pagoda (西安大雁塔), blurred colorful distant lights." \
       --width 1024 \
       --height 1024 \
       --infer_steps 9 \
       --guidance_scale 0.0 \
       --seed 42   

(3)Ulysses2+算子优化+通算掩盖

# 在环境中导入以下环境变量提高推理性能
export CPU_AFFINITY_CONF=2
export TASK_QUEUE_ENABLE=2

# 置1开启LaserAttention融合算子
export FA_FUSE=1
# 置1开启AdaLn融合算子
export ADALN_FUSE=0
# 置1开启Rope融合算子
export ROPE_FUSE=0
# 置1将Matmul算子转换为NZ格式
export USE_NZ=0
# 置1开启通算掩盖
export COMM_OVERLAP=1

ASCEND_RT_VISIBLE_DEVICES=1,2 torchrun --master_port=20095 --nproc_per_node=2 inference.py \
       --model_path ${model_path} \
       --output_path "./output" \
       --prompt "Young Chinese woman in red Hanfu, intricate embroidery. Impeccable makeup, red floral forehead pattern. Elaborate high bun, golden phoenix headdress, red flowers, beads. Holds round folding fan with lady, trees, bird. Neon lightning-bolt lamp (⚡️), bright yellow glow, above extended left palm. Soft-lit outdoor night background, silhouetted tiered pagoda (西安大雁塔), blurred colorful distant lights." \
       --width 1024 \
       --height 1024 \
       --infer_steps 9 \
       --guidance_scale 0.0 \
       --seed 42 \
       --sequence_parallel

五、推理结果参考

Z-Image-Turbo性能数据

硬件形态cpu规格batch size分辨率迭代次数性能采样器备注
Atlas 800I A2(8×64G)48核(arm)11024*102493.7sFlowMatchEulerDiscreteScheduler单卡运行
Atlas 800I A2(8×64G)48核(arm)11024*102493.1sFlowMatchEulerDiscreteScheduler单卡运行+融合算子
Atlas 800I A2(8×64G)48核(arm)11024*102492.4sFlowMatchEulerDiscreteSchedulerSP2+融合算子

声明

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