一、总览
这里说明如何在 TIONE 平台上导入、部署和调用 SD-WebUI 模型:
这篇提供2个案例进行演示:
·基础 Stable Diffusion 模型推理(模型来源选择 CFS 模式)
·Stable Diffusion + ControlNet 模型推理加速
二、前置要求
你需先开通 文件存储 或 数据加速器 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 文档。
注意:说明:
注意:如需优化访问延迟,可参考 从外部访问 TI-ONE,获取自己的 VPC 到服务之间的 内网地址,通过内网地址,进行服务访问。
七、第五步: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 是永久密钥,为可选项;不配置时则平台使用临时密钥方式。
九、第一步:前置准备,购买 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-ONE 平台加速处理过的 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 文档。
注意:说明:
注意:如需优化访问延迟,可参考 从外部访问 TI-ONE,获取自己的 VPC 到服务之间的 内网地址,通过内网地址,进行服务访问。