AI开发平台MODELARTS-FlUX.1基于DevServer适配PyTorch NPU推理指导(6.3.911):步骤七:Flux+Diffusers 0.30.2适配

时间:2025-01-03 09:38:54

步骤七:Flux+Diffusers 0.30.2适配

本章节介绍Flux模型使用Diffusers 0.30.2框架的推理过程。使用官方提供的已经训练好的模型进行推理,输入prompt生成指定像素的图片。

  1. 使用如下命令登录huggingface,并输入个人账号的token,用于自动下载flux权重。
    huggingface-cli login
  2. 下载华为侧插件代码包AscendCloud-AIGC-6.3.911-xxx.zip文件,将该文件夹上传到宿主机上的工作目录下,例如 ${container_work_dir}/,并解压。
  3. 安装ascend_diffusers插件
    pip install -e ${container_work_dir}/aigc_inference/torch_npu/diffusers/0_21_2/ascend_diffusers
  4. 运行以下命令进入工作目录,安装所需依赖包。
    cd ${container_work_dir}
    
    pip install diffusers==0.30.2
  5. 修改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源码
  6. 运行推理脚本。
    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 推理结果

support.huaweicloud.com/bestpractice-modelarts/modelarts_aigc_flux1_infer_911.html