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

时间:2024-12-17 18:07:05

步骤七:Flux+Diffusers 0.30.2适配

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

  1. 使用如下命令登录huggingface,并输入个人账号的token,用于自动下载flux权重。
    huggingface-cli login
  2. 下载华为侧插件代码包AscendCloud-AIGC-6.3.909-xxx.zip文件,本案例使用的是解压到子目录 ${container_work_dir}/aigc_inference/torch_npu/diffusers/0.30.2/下的所有文件,将该目录上传到宿主机上的工作目录下,例如 ${container_work_dir}/flux/,目录结构如下。
    图16 目录结构
  3. 运行prepare.sh脚本。
    bash prepare.sh

    之后,会在当前目录下产生两个新文件attention_processor.py和transformer_flux.py,使用这两个新文件覆盖diffusers安装路径下的源码文件。

    diffusers安装路径以/home/ma-user/anaconda3/envs/PyTorch-2.1.0/lib/python3.9/site-packages/diffusers为例,执行以下命令进行替换:

    cp  attention_processor.py   /home/ma-user/anaconda3/envs/PyTorch-2.1.0/lib/python3.9/site-packages/diffusers/models/attention_processor.py
    
    cp  transformer_flux.py  /home/ma-user/anaconda3/envs/PyTorch-2.1.0/lib/python3.9/site-packages/diffusers/models/transformers/transformer_flux.py
  4. 启动推理脚本。
    python run.py

    脚本中,参数说明如下:

    • MODEL_NAME:模型名称,支持 "black-forest-labs/FLUX.1-dev" 和 "black-forest-labs/FLUX.1-schnell"
    • h_list :生成图片的长,默认为 [688, 1024]
    • w_list: 生成图片的宽,默认为 [1024, 1024]
    • INFER_STEP:推理步数,默认20步
  5. 推理完成后,生成的图片保存在 ${container_work_dir}/flux/result 目录下,如下图所示:
    图17 推理结果
support.huaweicloud.com/bestpractice-modelarts/modelarts_aigc_flux_9091.html