AI开发平台MODELARTS-FlUX.1基于DevServer适配PyTorch NPU推理指导(6.3.911):步骤七:Flux+Diffusers 0.30.2适配
步骤七:Flux+Diffusers 0.30.2适配
本章节介绍Flux模型使用Diffusers 0.30.2框架的推理过程。使用官方提供的已经训练好的模型进行推理,输入prompt生成指定像素的图片。
- 使用如下命令登录huggingface,并输入个人账号的token,用于自动下载flux权重。
huggingface-cli login
- 下载华为侧插件代码包AscendCloud-AIGC-6.3.911-xxx.zip文件,将该文件夹上传到宿主机上的工作目录下,例如 ${container_work_dir}/,并解压。
- 安装ascend_diffusers插件
pip install -e ${container_work_dir}/aigc_inference/torch_npu/diffusers/0_21_2/ascend_diffusers
- 运行以下命令进入工作目录,安装所需依赖包。
cd ${container_work_dir} pip install diffusers==0.30.2
- 修改diffusers源码
修改 /home/ma-user/anaconda3/envs/PyTorch-2.1.0/lib/python3.9/site-packages/diffusers/models/transformers/transformer_flux.py 文件中rope()方法,把scale计算中的dtype改成torch.float32。
图14 修改diffusers源码
- 运行推理脚本。
sed -i 's/self.verify = True/self.verify = False/g' /home/ma-user/anaconda3/envs/PyTorch-2.1.0/lib/python3.9/site-packages/requests/sessions.py python ${container_work_dir}/aigc_inference/torch_npu/diffusers/0_21_2/ascend_diffusers/examples/sd_inference_example.py --flux --model_id black-forest-labs/FLUX.1-dev --prompt 'a dog' --num_inference_steps 25 --width 688 --height 1024
参数说明如下:- --width :生成图片的宽
- --height: 生成图片的长
- --num_inference_steps:推理步数
- --dynamo: 使用图模式。如果使用该参数,则首次编译时间较长,请耐心等待。
推理完成后,生成的图片image_1024x688.png保存在当前路径下,如下图所示。图15 推理结果