更新时间:2024-08-17 GMT+08:00
分享

在Standard上部署SD WebUI推理服务

本文档主要介绍如何在ModelArts Standard的推理环境上部署Stable Diffusion的WebUI套件,使用NPU卡进行推理。

完成在DevServer上部署SD WebUI推理服务章节的任务后,如果还需要在ModelArts的推理生产环境(ModelArts控制台的在线服务模块)中部署推理服务,可参考下述步骤。

Step1 导出镜像

完成在DevServer上部署SD WebUI推理服务章节的任务后,在宿主机上执行以下命令,导出镜像。

docker commit ${container_name} sdxl-train:0.0.1

Step2 创建镜像组织

在SWR服务页面创建镜像组织。

图1 创建镜像组织

Step3 在宿主机上传镜像到SWR

在SWR中单击右上角的“登录指令”,然后在跳出的登录指定窗口,单击复制临时登录指令。在创建的ECS中复制临时登录指令,即可完成登录。

图2 复制登录指令

登录指令输入之后,使用下列示例命令:

docker tag sdxl-train:0.0.1 <镜像仓库地址>/<组织名称>/<镜像名称>:<版本名称>
docker push <镜像仓库地址>/<组织名称>/<镜像名称>:<版本名称>

参数说明:

  • <镜像仓库地址>:可在SWR控制台上查询,容器镜像服务中登录指令末尾的域名即为镜像仓库地址。
  • <组织名称>:前面步骤中自己创建的组织名称。示例:ma-group
  • <镜像名称>:<版本名称>:定义镜像名称。示例:sdxl-train:0.0.1

以贵阳一的SWR为例:

docker tag sdxl-train:0.0.1 swr.cn-southwest-2.myhuaweicloud.com/ma-group/sdxl-train:0.0.1
docker push swr.cn-southwest-2.myhuaweicloud.com/ma-group/sdxl-train:0.0.1

Step4 创建AI应用

在ModelArts的AI应用页面,进行AI应用创建。

图3 创建AI应用

填写如下参数信息。

  • 名称:AI应用的名称,请按照实际应用名填写。
  • 版本:版本描述,请按照实际填写。
  • 元模型来源:注意此处选择“从容器镜像选择”。
  • 容器镜像所在路径:点击文件夹标签,选择已经制作好的镜像。
  • 容器调用接口参数:根据镜像实际提供的协议和端口填写,本案例中的SDXL镜像提供HTTP服务和8183端口。
图4 填写参数(1)
  • 系统运行架构: 选择ARM.
  • 推理加速卡:无。
  • 部署类型: 在线服务。
  • 请求模式:同步请求。
  • 启动命令:
    source /etc/bashrc && python3 launch.py --skip-torch-cuda-test --port 8183 --enable-insecure-extension-access --listen --log-startup --disable-safe-unpickle --skip-prepare-environment --api

按照上述配置完参数后,点击右下角的立即创建, 完成AI应用的创建。

图5 填写参数(2)

当AI应用状态变为正常时,表示创建完成。

图6 AI应用创建完成

Step5 部署服务

单击AI应用名称,进入AI应用详情页,点击部署在线服务。

图7 部署在线服务

填写如下服务部署参数。

  • 名称: 服务的名称,按照实际需要填写
  • 是否自动停止:如果配置自动停止,服务会按照配置的时间自动停止。如果需要常驻的服务,建议关掉该按钮。
  • 描述:按照需要填写。
  • 资源池:选择专属资源池。若之前未购买专属资源池,具体步骤请参考创建资源池

    资源规格要求:

    • 硬盘空间:至少200GB。
    • 昇腾资源规格:可以申请Ascend: 1* ascend-snt9b(32GB)或Ascend: 1* ascend-snt9b(64GB)规格。请按需选择需要的规格,64GB规格的推理耗时更短。
    • 推荐使用“西南-贵阳一”Region上的昇腾资源。
  • AI应用来源: 我的AI应用。
  • 选择AI应用及其版本:此处选择上一步中创建的sdxl-webui-pytorch:0.0.1应用。
  • 计算节点规格: 按需选择Ascend: 1* ascend-snt9b(32GB)或Ascend: 1* ascend-snt9b(64GB)。
图8 填写服务部署参数

选择开启APP认证并选择应用。

图9 开启APP认证

按照上述配置完参数后,单击“下一步”, 确认信息无误后,单击“提交”,完成服务的部署。

Step6 访问在线服务

在Chrome浏览器中安装ModHeader插件

图10 安装ModHeader插件

Chrome浏览器安装ModHeader插件后,可能会导致访问不了Modelarts平台,访问Modelarts时需要临时禁用ModHeader插件。或者使用Edge登录Modelarts,使用Chrome安装插件访问页面。

打开ModHeader,点击添加MOD。

图11 添加MOD

选择添加Request header。

图12 添加Request header

进入在线服务详情,查看Key值和Value值。

Key值固定为X-Apig-AppCode,Value值为APP认证的app_code值,在服务调用指南tab的APP认证API处展开,进行AppCode管理设置。

图13 获取Key值和Value值

将在ModHeader插件中添加Key值和Value值。

图14 添加Key和value

进入在线服务详情页,查看APP认证方式的服务API。

图15 API接口公网地址

复制API接口公网地址,并在地址后添加"/",进行页面访问,例如:

https://infer-app-modelarts-cn-southwest-2.myhuaweicloud.com/v1/infers/abc104bb-d303-4ffb-a8fa-XXXXXXXXX/
图16 访问在线服务

输入Promt,修改所需要的请求参数(如Width、Height),进行Promt请求。

图17 填写请求参数
表1 SDXL模型参数及其含义

参数名称

说明

是否必选

默认值

prompt

提示词,根据提示词生成含有对应内容的图像

negative_prompt

反向提示词,图像生成过程中应避免的提示

num_inference_steps

推理步骤数,控制推理的步数

40

height

生成图像的纵向分辨率

1024

width

生成图像的横向分辨率

1024

high_noise_frac

高噪声比例,即基础模型跑的步数占总步数的比例

0.8

refiner_switch

是否使用细化模型refiner

true(使用)

seed

随机种子,控制生成图像的多样性

您可在ModelArts控制台查看相关日志。

图18 查看相关日志

首次请求时会进行模型加载,耗时较长,因此第一个请求可能超时,第二个请求将会正常,请耐心等待。

相关文档