总览
Stable Diffusion 是开源的深度学习模型,能够以较低的计算需求和高效的性能根据文本提示生成对应的图像。Stable Diffusion WebUI 以下简称 SD-WebUI,是基于 Stable Diffusion 封装的简洁、易操作的 UI 界面。腾讯云基于此提供了便捷的部署方式,并提供了推理加速能力。
本文为您介绍如何在 TIONE 平台上导入、部署和调用 SD- WebUI 模型:
本文提供2个案例进行演示:
基础 Stable Diffusion 模型推理(模型来源选择 CFS 模式)
Stable Diffusion + ControlNet 模型推理加速
前置要求
案例一:基础 Stable Diffusion 模型推理(模型来源选择 CFS 或 GooseFS 模式)
第一步:前置准备,购买 CVM 和 CFS 或 GooseFS
1. 登录 CFS 或 GooseFS 产品控制台,选择您需要的存储类型,完成对应配置。
说明:
1. CFS、GooseFS、CVM 地域请选择 TIONE 支持的地域:北京、上海、广州。
2. CFS、GooseFS、CVM 网络请保持一致。
2. 在 CVM 上挂载 CFS 或 GooseFS。
第二步:将模型上传到 CFS 或 GooseFS
1. 请您将 Stable Diffusion 基础模型放至 CFS 的 models/Stable-diffusion 路径下,将模型涉及的元信息等,一并上传至 .cache 目录中。
说明:
因涉及 Hugging Face 的软件许可和合规问题,WebUI 模型和插件,需要您自行下载后,来 TIONE 部署使用。
2. 初始最简目录结构,您可参考:


3. models 目录结构


4. .cache 目录结构


第三步:部署服务
1. 登录 TI-ONE 控制台,在左侧导航栏中选择模型服务 > 在线服务,单击新建服务,进入新建页面。
2. 您可填写服务名称,模型来源选择“CFS 或 GooseFS”,选择该地域下的 CFS 或 GooseFS,挂载路径为步骤二中自定义的模型所在路径(例如 webui),运行环境选择“内置 / STABLEDIFFUSION-WebUI(2.0.0) / sd-webui-1.6.0(gpu)”,选择带有 GPU 的算力规格,配置其他您需要的信息,单击启动服务,当您服务状态为运行中时,即部署完成,可进行推理。
第四步:服务调用
1. 单击运行中的 Web-UI 模型服务名称,进入服务详情页,单击服务调用 tab 页,在接口信息的接口调用地址右边,填写 Web-UI 的 URL,如文生图:/sdapi/v1/txt2img,您可参考 API 文档。


说明:
第五步:SD-WebUI 界面使用
1. 服务管理列表,运行中的服务会出现“打开 WebUI 页面”的操作按钮,您可单击后在新窗口打开 WebUI 页面。




第六步:附录使用说明
1. 服务运行后 CFS 或 GooseFS 上完整的目录结构说明
1.1 extensions/sd-tiacc 和 extensions/sd-webui-controlnet 为平台内置的加速过的 sd-webui-controlnet 插件;当您 CFS 或 GooseFS 上未存放此插件时,将使用平台内置的插件。
1.2 CFS 或 GooseFS 上的目录结构和配置文件,和原生 webui 一致。


2. 环境变量说明
2.1 环境变量 CLI_ARGS 表示 webui 启动参数,默认是“ --allow-code --enable-insecure-extension-access --api”。
2.2 当同时配置 COS_UPLOAD_ENBALE,COS_REGION, COS_BUCKET,COS_FILE_PREFIX 等环境变量,API 调用 webui 文生图,图生图接口时,将生成的图片自动保存到 COS 上,接口返回的是 COS 上图片的临时链接(默认10分钟);COS_SECRET_ID 和 COS_SECRET_KEY 是永久密钥,为可选项;不配置时则平台使用临时密钥方式。

案例二:Stable Diffusion + ControlNet 模型推理加速
第一步:前置准备,购买 CVM 和 CFS 或 GooseFS
1. 登录 CFS 或 GooseFS 产品控制台,选择您需要的存储类型,完成对应配置。
说明:
1. CFS、GooseFS、CVM 地域请选择 TIONE 支持的地域:北京、上海、广州、南京。
2. CFS、GooseFS、CVM 网络请保持一致。
2. 在 CVM 上挂载 CFS 或 GooseFS。
第二步:config.json 中的加速参数说明
1. config.json的内容示例如下:
{"use_tiacc": false,"use_tiacc_unet": false,"control_net_max_models_num": 3,"control_net_model_cache_size": 3,}
2. config.json 中的加速参数说明:
2.1 use_tiacc 设置为 false,则说明 Angel tune 加速方式关闭,采用非 tune 加速方式。(大尺寸>=1024, Angel tune 和非 tune 加速性能相当)。
2.2 use_tiacc_unet 当前需设置为 false,当前不可用(当前仅支持 controlnet tune)。
2.3 control_net_model_cache_size 为 controlnet 加速常驻显存个数,如果您常用 controlnet 较多,则需调大此参数,否则这里会有转换开销(您可压测此参数确认显存可承载的最大数值)。
第三步:controlnet 模型上传 CFS或 GooseFS
1. 您将需要的 controlnet 模型上传至 models/ControlNet 目录下。
2. 当 use_tiacc 设置为 true 时,需要将 TI 平台加速处理过的 cache 模型上传到 /models/cache 目录下。
说明:
cache 模型您可根据自身需求下载获取。
第四步:部署服务
1. 登录 TI-ONE 控制台,在左侧导航栏中选择模型服务 > 在线服务,单击新建服务,进入新建页面。
2. 您可填写服务名称,模型来源选择“CFS 或 GooseFS”,选择该地域下的 CFS 或 GooseFS,挂载路径为步骤二中自定义的模型所在路径(例如 webui),运行环境选择“内置 / STABLEDIFFUSION-WebUI(2.0.0) / sd-webui-1.6.0(gpu)”,选择带有 GPU 的算力规格,配置其他您需要的信息,单击启动服务,当您服务状态为运行中时,即部署完成,可进行推理。
第五步:服务调用
1. 单击运行中的 Web-UI 模型服务名称,进入服务详情页,单击服务调用 tab 页,在接口信息的接口调用地址右边,填写 Web-UI 的 URL,如文生图:/sdapi/v1/txt2img,您可参考 API 文档。


说明: