five

qwen-image-file

收藏
魔搭社区2025-12-15 更新2025-12-20 收录
下载链接:
https://modelscope.cn/datasets/zzxzzx93/qwen-image-file
下载链接
链接失效反馈
官方服务:
资源简介:
## 一、准备运行环境 **表 1** 版本配套表 | 配套 | 版本 | 环境准备指导 | | ----- | ----- |-----| | Python | 3.10 or 3.11 | - | | torch | 2.1.0 | - | ### 1.1 获取CANN&MindIE安装包&环境准备 - 设备支持 Atlas 800I/800T A2(8*64G)推理设备:支持的卡数最小为1 - [Atlas 800I/800T A2(8*64G)](https://www.hiascend.com/developer/download/community/result?module=pt+ie+cann&product=4&model=32) - [环境准备指导](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC2alpha002/softwareinst/instg/instg_0001.html) ### 1.2 CANN安装 ```shell # 增加软件包可执行权限,{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安装 ```shell # 增加软件包可执行权限,{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_v{pytorchversion}_py{pythonversion}.tar.gz ```shell tar -xzvf pytorch_v{pytorchversion}_py{pythonversion}.tar.gz # 解压后,会有whl包 pip install torch_npu-{pytorchversion}.xxxx.{arch}.whl ``` ## 二、下载权重 ### 2.1 权重及配置文件说明 1. Qwen-Image权重链接: ```shell https://huggingface.co/Qwen/Qwen-Image ``` ## 三、Qwen-Image使用 ### 3.1 推理前准备 ```shell # 1. 下载代码 git clone https://modelers.cn/MindIE/Qwen-Image.git && cd Qwen-Image # 2. python相关依赖安装 pip install diffusers==0.35.1 pip install transformers==4.52.4 pip install yunchang==0.6.0 # 3. 用 Python 获取 diffusers 的安装目录 DIFFUSERS_PATH=$(python -c "import diffusers; import os; print(os.path.dirname(diffusers.__file__))") # 4. 替换pipeline_qwenimage文件 cp -r pipeline_qwenimage.py "$DIFFUSERS_PATH/pipelines/qwenimage/pipeline_qwenimage.py" # 文生图场景 cp -r pipeline_qwenimage_img2img.py "$DIFFUSERS_PATH/pipelines/qwenimage/pipeline_qwenimage_img2img.py" # 图生图场景 cp -r pipeline_qwenimage_inpaint.py "$DIFFUSERS_PATH/pipelines/qwenimage/pipeline_qwenimage_inpaint.py" # inpainting场景 # 5. 替换transformer_qwenimage文件 cp -r transformer_qwenimage.py "$DIFFUSERS_PATH/models/transformers/transformer_qwenimage.py" ``` ### 3.2 Qwen-Image文生图推理 #### 3.2.1 单卡性能测试 ##### 3.2.1.1 等价优化 文生图执行命令: ```shell export ROPE_FUSE=1 export ADALN_FUSE=1 python run.py \ --model_path ./Qwen-Image \ --device_id 0 \ --aspect_ratio "16:9" \ --num_inference_steps 50 \ --prompt_file "prompts.txt" \ --prompt_lang "en" ``` 参数说明: - model_path: 权重路径 - device_id: 执行模型推理的芯片id - aspect_ratio: 宽高比,默认值为"16:9", 可选值为:{"1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"} - num_inference_steps: 迭代步数 - prompt_file: 文本提示词所在路径 - prompt_lang:设置提示词所使用的语言,"en"表示英文,"zh"表示中文 ##### 3.2.2.1 算法优化 文生图执行命令: ```shell export ROPE_FUSE=1 export ADALN_FUSE=1 export COND_CACHE=1 export UNCOND_CACHE=1 python run.py \ --model_path ./Qwen-Image \ --device_id 0 \ --aspect_ratio "16:9" \ --num_inference_steps 50 \ --prompt_file "prompts.txt" \ --prompt_lang "en" ``` 参数说明: - model_path: 权重路径 - device_id: 执行模型推理的芯片id - aspect_ratio: 宽高比,默认值为"16:9", 可选值为:{"1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"} - num_inference_steps: 迭代步数 - prompt_file: 文本提示词所在路径 - prompt_lang:设置提示词所使用的语言,"en"表示英文,"zh"表示中文 #### 3.2.2 多卡性能测试 ##### 3.2.2.1 8卡性能测试 执行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path=" /home/Qwen-Image/quant_w8a8_dynamic_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" export LCCL_DETERMINISTIC=true export HCCL_DETERMINISTIC=true export ATB_MATMUL_SHUFFLE_K_ENABLE=0 export ATB_LLM_LCOC_ENABLE=true export CLOSE_MATMUL_K_SHIFT=true # 等价优化 需要时开启 # export ROPE_FUSE=1 # export ADALN_FUSE=1 # cache算法优化 需要时开启 # export COND_CACHE=1 # export UNCOND_CACHE=1 # 8卡 cfg=2 ulysses=4 export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --nproc_per_node=8 --master-port 29508 run_cfg_usp.py \ --model_path ${model_path} \ --prompt_file prompts.txt \ --num_inference_steps 50 \ --seed 42 \ --output_dir "./base/baseline_cfg2_ulysses4_optimize_1+2" \ --ulysses_size 4 \ --cfg_size 2 \ # --quant_desc_path ${quant_desc_path} ``` 参数说明: - ASCEND_RT_VISIBLE_DEVICES: 选择的机器上的卡的编号,对于16卡机器,需要设定为连续的前8张或后8张 - model_path: 权重路径 - prompt_file: 文本提示词所在路径 - prompt_lang:设置提示词所使用的语言,"en"表示英文,"zh"表示中文 - aspect_ratio: 宽高比,默认值为"16:9", 可选值为:{"1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"} - num_inference_steps: 推理的步数 - seed: 设定种子 - output_dir: 保存推理结果的路径 - ulysses_size: ulysses并行数,使用时设定为24的因数 - cfg_size: cfg并行数,使用时只能设定为2 ##### 3.2.2.2 16卡性能测试 执行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path=" /home/Qwen-Image/quant_w8a8_dynamic_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" export LCCL_DETERMINISTIC=true export HCCL_DETERMINISTIC=true export ATB_MATMUL_SHUFFLE_K_ENABLE=0 export ATB_LLM_LCOC_ENABLE=true export CLOSE_MATMUL_K_SHIFT=true # 等价优化 需要时开启 # export ROPE_FUSE=1 # export ADALN_FUSE=1 # cache算法优化 需要时开启 # export COND_CACHE=1 # export UNCOND_CACHE=1 # 16卡 cfg=2 ulysses=8 export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 torchrun --nproc_per_node=8 --master-port 29508 run_cfg_usp.py \ --model_path ${model_path} \ --prompt_file prompts.txt \ --prompt_lang "en" \ --aspect_ratio "16:9" \ --num_inference_steps 50 \ --seed 42 \ --output_dir "./base/baseline_cfg2_ulysses8_optimize_1+2" \ --ulysses_size 8 \ --cfg_size 2 \ # --quant_desc_path ${quant_desc_path} ``` 参数说明: - ASCEND_RT_VISIBLE_DEVICES: 选择的机器上的卡的编号 - model_path: 权重路径 - prompt_file: 文本提示词所在路径 - prompt_lang:设置提示词所使用的语言,"en"表示英文,"zh"表示中文 - aspect_ratio: 宽高比,默认值为"16:9", 可选值为:{"1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"} - num_inference_steps: 推理的步数 - seed: 设定种子 - output_dir: 保存推理结果的路径 - ulysses_size: ulysses并行数,使用时设定为24的因数 - cfg_size: cfg并行数,使用时只能设定为2 ### 3.3 Qwen-Image图生图推理 #### 3.3.1 单卡性能测试 ##### 3.3.1.1 等价优化 执行命令: ```shell export ROPE_FUSE=1 export ADALN_FUSE=1 python run_img2img.py \ --model_path ./Qwen-Image \ --device_id 0 ``` 参数说明: - model_path: 权重路径 - device_id: 执行模型推理的芯片id ##### 3.3.2.1 算法优化 执行命令: ```shell export ROPE_FUSE=1 export ADALN_FUSE=1 export COND_CACHE=1 export UNCOND_CACHE=1 python run_img2img.py \ --model_path ./Qwen-Image \ --device_id 0 ``` 参数说明: - model_path: 权重路径 - device_id: 执行模型推理的芯片id #### 3.3.2 多卡性能测试 ##### 3.3.2.1 8卡性能测试 执行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path="/home/Qwen-Image/quant_w8a8_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" export LCCL_DETERMINISTIC=true export HCCL_DETERMINISTIC=true export ATB_MATMUL_SHUFFLE_K_ENABLE=0 export ATB_LLM_LCOC_ENABLE=true export CLOSE_MATMUL_K_SHIFT=true # 等价优化 需要时开启 # export ROPE_FUSE=1 # export ADALN_FUSE=1 # cache算法优化 需要时开启 # export COND_CACHE=1 # export UNCOND_CACHE=1 # 8卡 cfg=2 ulysses=4 # export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export ASCEND_RT_VISIBLE_DEVICES=8,9,10,11,12,13,14,15 torchrun --nproc_per_node=8 --master-port 29508 run_img2img_cfg_usp.py \ --model_path ${model_path} \ --img_path ./sketch-mountains-input.jpg \ --prompt_file ./img2img_prompts.txt \ --num_inference_steps 50 \ --seed 42 \ --output_dir "./img2img_baseline_cfg2_ulysses4_optimize_1+2" \ --ulysses_size 4 \ --cfg_size 2 \ # --quant_desc_path ${quant_desc_path} ``` 参数说明: - ASCEND_RT_VISIBLE_DEVICES: 选择的机器上的卡的编号,对于16卡机器,需要设定为连续的前8张或后8张 - model_path: 权重路径 - img_path: 输入图片路径 - prompt_file: 文本提示词所在路径 - num_inference_steps: 推理的步数 - seed: 设定种子 - output_dir: 保存推理结果的路径 - ulysses_size: ulysses并行数,使用时设定为24的因数 - cfg_size: cfg并行数,使用时只能设定为2 ##### 3.3.2.2 16卡性能测试 执行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path="/home/Qwen-Image/quant_w8a8_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" export LCCL_DETERMINISTIC=true export HCCL_DETERMINISTIC=true export ATB_MATMUL_SHUFFLE_K_ENABLE=0 export ATB_LLM_LCOC_ENABLE=true export CLOSE_MATMUL_K_SHIFT=true # 等价优化 需要时开启 # export ROPE_FUSE=1 # export ADALN_FUSE=1 # cache算法优化 需要时开启 # export COND_CACHE=1 # export UNCOND_CACHE=1 # 16卡 cfg=2 ulysses=8 export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 torchrun --nproc_per_node=8 --master-port 29508 run_img2img_cfg_usp.py \ --model_path ${model_path} \ --img_path ./sketch-mountains-input.jpg \ --prompt_file ./img2img_prompts.txt \ --num_inference_steps 50 \ --seed 42 \ --output_dir "./img2img_baseline_cfg2_ulysses8_optimize_1+2" \ --ulysses_size 8 \ --cfg_size 2 \ # --quant_desc_path ${quant_desc_path} ``` 参数说明: - ASCEND_RT_VISIBLE_DEVICES: 选择的机器上的卡的编号 - model_path: 权重路径 - img_path: 输入图片路径 - prompt_file: 文本提示词所在路径 - num_inference_steps: 推理的步数 - seed: 设定种子 - output_dir: 保存推理结果的路径 - ulysses_size: ulysses并行数,使用时设定为24的因数 - cfg_size: cfg并行数,使用时只能设定为2 ### 3.4 Qwen-Image inpainting推理 #### 3.4.1 单卡性能测试 ##### 3.4.1.1 等价优化 执行命令: ```shell export ROPE_FUSE=1 export ADALN_FUSE=1 python run_inpainting.py \ --model_name ./Qwen-Image \ --device_id 0 ``` 参数说明: - model_name: 权重路径 - device_id: 执行模型推理的芯片id ##### 3.4.1.2 算法优化 执行命令: ```shell export ROPE_FUSE=1 export ADALN_FUSE=1 export COND_CACHE=1 export UNCOND_CACHE=1 python run_inpainting.py \ --model_name ./Qwen-Image \ --device_id 0 ``` 参数说明: - model_name: 权重路径 - device_id: 执行模型推理的芯片id #### 3.4.2 多卡性能测试 ##### 3.4.2.1 8卡性能测试 执行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path="/home/Qwen-Image/quant_w8a8_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" export LCCL_DETERMINISTIC=true export HCCL_DETERMINISTIC=true export ATB_MATMUL_SHUFFLE_K_ENABLE=0 export ATB_LLM_LCOC_ENABLE=true export CLOSE_MATMUL_K_SHIFT=true # 算子优化 export ROPE_FUSE=1 export ADALN_FUSE=1 # 算法优化 export COND_CACHE=1 export UNCOND_CACHE=1 # 8卡 cfg=2 ulysses=4 export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 # export ASCEND_RT_VISIBLE_DEVICES=8,9,10,11,12,13,14,15 torchrun --nproc_per_node=8 --master-port 29508 run_inpainting_cfg_usp.py \ --model_path ${model_path} \ --source_img_path ./img_url.png \ --mask_img_path ./mask_url.png \ --prompt_file ./inpainting_prompts.txt \ --num_inference_steps 50 \ --seed 42 \ --output_dir "./inpainting_baseline_cfg2_ulysses4_optimize_1+2" \ --ulysses_size 4 \ --cfg_size 2 \ # --quant_desc_path ${quant_desc_path} ``` 参数说明: - ASCEND_RT_VISIBLE_DEVICES: 选择的机器上的卡的编号,对于16卡机器,需要设定为连续的前8张或后8张 - model_path: 权重路径 - source_img_path: 原始图片路径 - mask_img_path:mask图片路径 - prompt_file: 文本提示词所在路径 - num_inference_steps: 推理的步数 - seed: 设定种子 - output_dir: 保存推理结果的路径 - ulysses_size: ulysses并行数,使用时设定为24的因数 - cfg_size: cfg并行数,使用时只能设定为2 ##### 3.4.2.2 16卡性能测试 执行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path="/home/Qwen-Image/quant_w8a8_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" export LCCL_DETERMINISTIC=true export HCCL_DETERMINISTIC=true export ATB_MATMUL_SHUFFLE_K_ENABLE=0 export ATB_LLM_LCOC_ENABLE=true export CLOSE_MATMUL_K_SHIFT=true # 算子优化 export ROPE_FUSE=1 export ADALN_FUSE=1 # 算法优化 export COND_CACHE=1 export UNCOND_CACHE=1 # 16卡 cfg=2 ulysses=8 export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 torchrun --nproc_per_node=8 --master-port 29508 run_inpainting_cfg_usp.py \ --model_path ${model_path} \ --source_img_path ./img_url.png \ --mask_img_path ./mask_url.png \ --prompt_file ./inpainting_prompts.txt \ --num_inference_steps 50 \ --seed 42 \ --output_dir "./inpainting_baseline_cfg2_ulysses8_optimize_1+2" \ --ulysses_size 8 \ --cfg_size 2 \ # --quant_desc_path ${quant_desc_path} ``` 参数说明: - ASCEND_RT_VISIBLE_DEVICES: 选择的机器上的卡的编号 - model_path: 权重路径 - source_img_path: 原始图片路径 - mask_img_path:mask图片路径 - prompt_file: 文本提示词所在路径 - num_inference_steps: 推理的步数 - seed: 设定种子 - output_dir: 保存推理结果的路径 - ulysses_size: ulysses并行数,使用时设定为24的因数 - cfg_size: cfg并行数,使用时只能设定为2 ## 四、量化功能支持 本项目新增量化功能,支持权重 8 位(w8)与激活 8 位 / 16 位(a8/a16)的量化组合,可减少模型显存占用并保持推理性能 ### 4.1 安装量化工具msModelSlim 参考[官方README](https://gitcode.com/Ascend/msit/tree/master/msmodelslim) 1. git clone下载msit仓代码 2. 进入到msit/msmodelslim的目录: cd msit/msmodelslim;并在进入的msmodelslim目录下,运行安装脚本: bash install.sh ### 4.2 量化模型生成 通过`quantization/quant.py`脚本生成量化模型及描述文件,需基于原始模型权重进行量化。 ##### 4.2.1 量化脚本运行示例 ###### 4.2.1.1 生成8bit权重+8bit激活的动态量化模型(w8a8): 执行命令: ```shell export PYTHONPATH=".:$PYTHONPATH" # 添加当前目录到Python搜索路径 model_path="/mnt/weights/Qwen-Image" # w8a8量化 python quantization/quant.py \ --model_path ${model_path} \ --device_id 0 \ --quant_mode w8a8 \ --w_sym \ --is_dynamic \ --act_method 3 \ --quant_save_dir ./quant_w8a8_dynamic_withoutData_use_disable_quant_layers ``` 参数说明: - model_path: 原始模型权重路径 - device_id: 执行模型推理的芯片id - quant_mode: 量化模式(权重+激活位宽) - w_sym: 是否对权重使用对称量化(默认False,加此参数表示启用) - is_dynamic: 是否启用动态量化(默认False,加此参数表示启用) - act_method: 激活量化方法(1=min-max,2=histogram,3=auto-mixed,推荐3) - quant_save_dir: 量化模型保存路径 执行后,`quant_w8a8_dynamic_withoutData_use_disable_quant_layers`目录下会生成两个文件: - `quant_model_description_w8a8_dynamic.json`:量化配置描述文件(包含量化位宽、层映射等元信息) - `quant_model_weight_w8a8_dynamic.safetensors`:量化后的权重文件(采用safe tensor格式,兼容Hugging Face生态) ###### 4.2.1.2 生成8bit权重+16bit激活的量化模型(w8a16): 执行命令: ```shell export PYTHONPATH=".:$PYTHONPATH" # 添加当前目录到Python搜索路径 model_path="/mnt/weights/Qwen-Image" # w8a16量化 python quantization/quant.py \ --model_name ${model_path} \ --device_id 0 \ --quant_mode w8a16 \ --w_sym \ --act_method 3 \ --quant_save_dir ./quant_w8a16_withoutData_use_disable_quant_layers ``` 参数说明: - model_path: 原始模型权重路径 - device_id: 执行模型推理的芯片id - quant_mode: 量化模式(权重+激活位宽) - w_sym: 是否对权重使用对称量化(默认False,加此参数表示启用) - act_method: 激活量化方法(1=min-max,2=histogram,3=auto-mixed,推荐3) - quant_save_dir: 量化模型保存路径 执行后,`quant_w8a16_withoutData_use_disable_quant_layers`目录下会生成两个文件: - `quant_model_description_w8a16.json`:量化配置描述文件(包含量化位宽、层映射等元信息) - `quant_model_weight_w8a16.safetensors`:量化后的权重文件(采用safe tensor格式,兼容Hugging Face生态) ### 4.3 安装量化模型推理工具NNAL神经网络加速库和torch_atb #### 4.3.1 获取安装包 - 支持设备:[Atlas 800I A2](https://www.hiascend.com/developer/download/community/result?module=pt+ie+cann&product=4&model=32) - [环境准备指导](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/81RC1alpha001/softwareinst/instg/instg_0003.html) #### 4.3.2 安装 ```shell # 增加软件包可执行权限,{version}表示软件版本号,{arch}表示CPU架构。 chmod +x Ascend-cann-nnal_<version>_linux-<arch>.run # 默认路径安装: ./Ascend-cann-nnal_<version>_linux-<arch>.run --install --torch_atb # 配置环境变量: source ${HOME}/Ascend/nnal/atb/set_env.sh ``` ### 4.4 使用量化模型推理 使用量化模型进行推理时,需在原有命令中添加`--quant_desc_path`参数,指向量化描述文件(quant_model_description_*.json)路径,该路径需要是绝对路径,其余参数与原生模型推理一致。 #### 4.4.1 单卡量化推理示例 以w8a8量化为例子,运行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path=" /home/Qwen-Image/quant_w8a8_dynamic_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" # 算子优化 需要时开启 # export ROPE_FUSE=1 # export ADALN_FUSE=1 # cache 算法优化 需要时开启 # export COND_CACHE=1 # export UNCOND_CACHE=1 # 单卡 python run.py \ --device_id 0 \ --model_path ${model_path} \ --prompt_file "./prompts.txt" \ --prompt_lang "en" \ --aspect_ratio "16:9" \ --num_inference_steps 50 \ --seed 42 \ --output_dir "baseline" \ --quant_desc_path ${quant_desc_path} ``` #### 4.4.2 多卡量化推理示例 以w8a8量化为例子,运行命令: ```shell export model_path="/home/weight/Qwen-Image/" export quant_desc_path=" /home/Qwen-Image/quant_w8a8_dynamic_withoutData_use_disable_quant_layers/quant_model_description_w8a8_dynamic.json" export LCCL_DETERMINISTIC=true export HCCL_DETERMINISTIC=true export ATB_MATMUL_SHUFFLE_K_ENABLE=0 export ATB_LLM_LCOC_ENABLE=true export CLOSE_MATMUL_K_SHIFT=true # 算子优化 需要时开启 # export ROPE_FUSE=1 # export ADALN_FUSE=1 # cache 算法优化 需要时开启 # export COND_CACHE=1 # export UNCOND_CACHE=1 # 8卡 cfg=2 ulysses=4 export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 # export ASCEND_RT_VISIBLE_DEVICES=8,9,10,11,12,13,14,15 torchrun --nproc_per_node=8 --master-port 29508 run_cfg_usp.py \ --model_path ${model_path} \ --prompt_file prompts.txt \ --prompt_lang "en" \ --aspect_ratio "16:9" \ --num_inference_steps 50 \ --seed 42 \ --output_dir "./base/baseline_cfg2_ulysses4_optimize_1+2" \ --ulysses_size 4 \ --cfg_size 2 \ --quant_desc_path ${quant_desc_path} ``` #### 4.4.3 量化推理注意事项 - 路径要求:`--quant_desc_path`需指向完整的量化描述文件路径(即quant_model_description_*.json),且该路径要求填写绝对路径。量化权重文件(.safetensors)需与描述文件在同一目录下,否则会提示权重加载失败。 ## 五、推理结果参考 ### Atlas 800I A2(1*64G) 64核(arm)性能数据(文生图:不使用cache算法加速) | 模型 | 分辨率 | 迭代次数 | 卡数 | E2E耗时| | :-----: | :-----: | :-----: | :-----: | :-----: | | Qwen-Image | 1664×928 | 50 | 1 | 78s | ### Atlas 800I A2(1*64G) 64核(arm)性能数据(文生图:使用cache算法加速) | 模型 | 分辨率 | 迭代次数 | 卡数 | E2E耗时| | :-----: | :-----: | :-----: | :-----: | :-----: | | Qwen-Image | 1664×928 | 50 | 1 | 38s | ## 六、Q&A 若使用torch2.2以下版本时,需要注释掉"$DIFFUSERS_PATH/models/attention_dispatch.py"中481行和490行的torch.library接口的使用,否则会由于兼容性问题报错。修改后的代码如下所示: ```shell # @torch.library.custom_op("flash_attn_3::_flash_attn_forward", mutates_args=(), device_types="cuda") def _wrapped_flash_attn_3_original( query: torch.Tensor, key: torch.Tensor, value: torch.Tensor ) -> Tuple[torch.Tensor, torch.Tensor]: out, lse = flash_attn_3_func(query, key, value) lse = lse.permute(0, 2, 1) return out, lse # @torch.library.register_fake("flash_attn_3::_flash_attn_forward") def _(query: torch.Tensor, key: torch.Tensor, value: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]: batch_size, seq_len, num_heads, head_dim = query.shape lse_shape = (batch_size, seq_len, num_heads) return torch.empty_like(query), query.new_empty(lse_shape) ``` ## 声明 - 本代码仓提到的数据集和模型仅作为示例,这些数据集和模型仅供您用于非商业目的,如您使用这些数据集和模型来完成示例,请您特别注意应遵守对应数据集和模型的License,如您因使用数据集或模型而产生侵权纠纷,华为不承担任何责任。 - 如您在使用本代码仓的过程中,发现任何问题(包括但不限于功能问题、合规问题),请在本代码仓提交issue,我们将及时审视并解答。
提供机构:
maas
创建时间:
2025-12-04
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作