Qwen-Image、Qwen-Image-Edit基于Lite Server适配NPU推理指导(6.5.908)
本文档主要介绍如何在ModelArts Lite Server环境中部署模型Qwen-Image、Qwen-Image-Edit对应Diffusers、ComfyUI框架,使用NPU卡进行推理。
方案概览
本方案介绍了在Server上使用NPU计算资源部署Diffusers、ComfyUI框架用于推理的详细过程。完成本方案的部署,需要先联系您所在企业的华为方技术支持购买Server资源。
本方案目前仅适用于企业客户。
资源规格要求
推荐使用ModelArts Lite Server的Snt9b资源。
获取软件和镜像
|
分类 |
名 |
获取路径 |
|---|---|---|
|
插件代码包 |
AscendCloud-AIGC-6.5.908-xxx.zip 文件名中的xxx表示具体的时间戳,以包名发布的实际时间为准。 |
获取路径:Support-E,在此路径中查找下载ModelArts 6.5.908.5版本。
说明:
如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。 |
|
基础镜像 |
Snt9b:西南-贵阳一: swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_ascend:pytorch_2.5.1-cann_8.2.rc1-py_3.11-hce_2.0.2503-aarch64-snt9b-20250729103313-3a25129 Snt9b:中国-香港: swr.ap-southeast-1.myhuaweicloud.com/atelier/pytorch_ascend:pytorch_2.5.1-cann_8.2.rc1-py_3.11-hce_2.0.2503-aarch64-snt9b-20250729103313-3a25129 |
从SWR拉取。 |
支持特性
|
套件类型 |
模型名称 |
|---|---|
|
Diffusers |
Qwen-Image Qwen-Image-Edit Qwen-Image-Lightning |
|
ComfyUI |
Qwen-Image Qwen-Image-Edit |
步骤一:准备环境
- 请参考Lite Server资源开通,购买Server资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。
购买Server资源时如果无可选资源规格,需要联系华为云技术支持申请开通。
当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。
- 检查环境。
- SSH登录机器后,检查NPU设备状态。运行如下命令,返回NPU设备信息。
npu-smi info
如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。
- 检查docker是否安装。
docker -v #检查docker是否安装
如尚未安装,运行以下命令安装docker。
yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64
- 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。
sysctl -p | grep net.ipv4.ip_forward
如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
- SSH登录机器后,检查NPU设备状态。运行如下命令,返回NPU设备信息。
- 获取基础镜像。建议使用官方提供的镜像部署推理服务。镜像地址{image_url}参见表1。
docker pull {image_url}
步骤二:启动容器镜像
docker run -itd \ --name ${container_name} \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -p 8183:8183 \ -v /etc/localtime:/etc/localtime \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ --shm-size 60g \ --device=/dev/davinci_manager \ --device=/dev/hisi_hdc \ --device=/dev/devmm_svm \ --device=/dev/davinci3 \ --network=host \ ${image_name} bash
参数说明:
- --name ${container_name} 容器名称,进入容器时会用到,此处可以自己定义一个容器名称,例如comfyui。
- --device=/dev/davinci3:挂载主机的/dev/davinci3到容器的/dev/davinci3。可以使用npu-smi info查看空闲卡号,修改davinci后数字可以更改挂载卡。
- 若需要启动多卡推理服务,则需要挂载多卡,例如再添加一个--device=/dev/davinci2
- ${image_name} 代表镜像名称。
- -p 8183:8183 开启一个端口,可以通过 http://宿主机IP:8183 访问容器服务(如冲突,可自行更换其他端口)。
docker exec -it ${container_name} bash
步骤三:Diffusers部署
安装依赖和模型包
- 下载模型权重,上传到容器的/home/ma-user目录下,官网下载地址。
- 安装python依赖包。
pip install diffusers pip install peft==0.17.0 pip install transformers==4.54.1 pip install urllib3==1.26.7
启动服务
- Qwen-Image执行python脚本
- 新建一个python文件qwen-image.py,将Qwen-Image链接中的代码内容复制到文件中
- 修改qwen-image.py文件,model_name请修改为自己的权重路径
import torch_npu from torch_npu.contrib import transfer_to_npu model_name = "/home/ma-user/Qwen-Image" torch.npu.config.allow_internal_format = False
如下图:

将pipe.vae.enable_tiling()插入到pipe = pipe.to(device)之后,如下图:

- 执行python qwen-image.py进行推理,生成图片是当前目录下的example.png
- Qwen-Image-Edit执行python脚本
- 新建一个python文件qwen-image-edit.py,将Qwen-Image-Edit链接中的代码复制到文件中
- 修改qwen-image-edit.py文件,model_name请修改为自己的权重路径
将如下代码添加或替换掉对应内容
import torch_npu from torch_npu.contrib import transfer_to_npu torch.npu.config.allow_internal_format = False from diffusers import QwenImageEditPipeline model_name = "/home/ma-user/Qwen-Image-Edit" pipeline = QwenImageEditPipeline.from_pretrained(model_name)
pipeline.vae.enable_tiling()
如下图:

- 执行python qwen-image-edit.py进行推理。
- Qwen-Image-Lightning执行python脚本
- 新建一个python文件qwen-image-lightning.py,将Qwen-Image-Lightning链接中的代码复制到文件中
- 修改Qwen-Image-Lightning.py文件
将如下代码添加或替换掉对应内容, image_name, lightning_name请修改为自己的权重路径
import torch_npu from torch_npu.contrib import transfer_to_npu torch.npu.config.allow_internal_format = False
image_name = "./Qwen-Image" lightning_name = "./Qwen-Image-Lightning" weight_name = "Qwen-Image-Lightning-4steps-V2.0-bf16.safetensors" pipe = DiffusionPipeline.from_pretrained(image_name, scheduler=scheduler, torch_dtype=torch.bfloat16 ).to("cuda") pipe.load_lora_weights(lightning_name, weight_name=weight_name) pipe.vae.enable_tiling()
如下图:


- 执行python qwen-image-lightning.py进行推理。
步骤四:ComfyUI部署
安装依赖和模型包
- 下载ComfyUI软件包。
- 安装依赖,将requirements.txt中的torch修改为torch==2.5.1。
pip install -r requirements.txt
- 下载模型权重。
- 下载workflow文件,启动服务时需要在ComfyUI里导入。
image_qwen_image.json,下载地址:Workflow for Qwen-Image Official Model
image_qwen_image_edit.json,下载地址:Workflow for Qwen-Image-Edit Official Model
- 下载以下模型文件,并放到ComfyUI/models/下的对应文件夹下。
- qwen_image_edit_bf16.safetensors
loras
- Qwen-Image-Lightning-4steps-V2.0.safetensors
text_encoders
vae
- 下载workflow文件,启动服务时需要在ComfyUI里导入。
开启高性能模式
export TASK_QUEUE_ENABLE=2
启动服务
- 进入目录。
cd /home/ma-user/ComfyUI - 启动服务命令如下。
python main.py --port 8183 --listen 172.17.0.xx --force-fp16 --bf16-unet
端口号:设置为无进程使用的端口。
IP地址:使用宿主机IP作为{IP地址}。
- 使用http://{宿主机ip}:8183可以访问前端页面。








