文档中心>Serverless 应用中心>实践教程>部署 Stable Diffusion AI 绘画应用(自定义模型版)

部署 Stable Diffusion AI 绘画应用(自定义模型版)

最近更新时间:2024-07-04 10:53:32

我的收藏

应用介绍

该应用提供 stable-diffusion-webui 项目的 Serverless 化部署能力。应用创建成功后,您可以使用 stable diffusion webui 的全部能力,例如文生图、图生图,以及 Lora、ControlNet 等高阶能力。此外,还提供了管理自定义模型、插件的能力。应用在实际调用 GPU 进行图片生成、模型加载、插件安装等任务时计费,编写提示词、网页浏览图库图片等前端页面上的操作不计费。

应用资源

Stable Diffusion AI 绘画应用部署后,将为您创建以下资源:
云函数:获取外部链接数据,通过全景录制实时进行录制。
CFS 文件存储(可选):Stable Diffusion 的自定义模型、插件等文件将会存储到 CFS 中会产生一定计费,详情可参见 CFS 计费规则
CLS 日志(可选):处理过程的日志会存储在日志服务 CLS 中,可能会产生一定计费,详情可参见 CLS 计费规则
API 网关:通过 API 网关触发器进行图片生成任务的请求触发。

前提条件

1. 配置部署账号权限。参考 账号和权限配置
2. 配置 运行角色 权限。
3. 全景录制需要和其他服务关联使用,需要添加以下策略:QcloudRedisFullAccess、QcloudVPCFullAccess、QcloudCFSFullAcces、QcloudSCFFullAccess、QcloudCOSFullAccess、QcloudAccessForScfRole 权限。详情请参见 策略绑定

操作步骤

创建应用

1. 登录 Serverless 控制台,选择左侧导航栏中的 Serverless 应用
2. Serverless 应用页面,单击新建应用
3. 新建应用页面,根据页面相关信息提示进行配置。
创建方式:选择应用市场
模糊搜索:输入“AI”进行搜索,选择 Stable Diffusion AI 绘画自定义模型版。如下图所示:



4. 单击下一步,根据页面相关信息提示进行配置。如下图所示:



应用名:例如 “sd-test”。
地域:例如 “北京”。
应用类型:SD WebUI 或 SD API,前者提供可视化界面,后者提供 API 以便于集成到业务系统中。
自定义模型上传支持:启用后,需进行私有网络 VPC 和文件系统 CFS 的配置,具体创建流程请参见 VPC 创建CFS 创建。如下图所示:



日志投递:启用后将对 Stable Diffusion 运行过程中产生的日志投递到日志服务 CLS 中,以便排障。
5. 单击完成即可完成应用创建、函数创建以及 API 网关触发器创建。
如需根据业务场景修改函数配置,可通过 Serverless 应用 > 资源列表 > 函数详情进行修改。如下图所示:




使用应用

在创建成功的应用详情页面中,基础信息 > 应用地址展示两个 URL,分别是:
stable diffusion WebUI 的访问地址,以 -server 结尾;如果创建时选择的是 API,则该地址为 API 的访问地址。
stable diffusion 自定义模型的管理地址,以 -cloudreve 结尾。
如下图所示:




Stable Diffusion webui 的使用

访问上述提供的 WebUI URL,即可打开 WebUI 的页面开始使用,如下图所示:




Stable Diffusion API 的使用

访问上述提供的 API URL,在 URL 后边添加 docs 路径,即可打开 API 文档页面,如下图所示:



使用指南详情见 文档

Stable Diffusion API 的 URL 认证与安全配置

Stable Diffusion 应用创建后,会通过 API 网关服务,自动创建一个开通了公网访问权限的 API 服务,方便开箱即用。为了保护您的 API,避免恶意访问、未授权访问、应用漏洞、黑客攻击等导致的数据损失、资产损失,API 网关提供了多种 API 认证方式和 API 防护策略。目前 API 网关主要有 应用认证OAuth2.0认证 、EIAM 认证密钥对认证(历史功能,建议使用应用认证) 四种方式。如业务上对 API 有鉴权访问的需求,可通过 API 网关控制台对该 API 进行鉴权配置,详细请参见 API 网关-认证与安全

Stable Diffusion API 集成数据万象内容审核服务提高安全性

在业务中使用 Stable Diffusion API 生成图片,由于生成内容具有一定的不可控性,存在涉黄、违法违规等安全风险。建议通过集成内容审核服务,降低风险。详细的集成使用指南请参见 Stable Diffusion AI 绘画审核

上传并管理 Stable Diffusion 自定义模型

访问上述提供的自定义模型管理 URL,打开管理页面,需要管理员账号密码进行登录:
用户名:admin@scfcloudreve.com
密码:admin
登录成功后,可在设置页面自行更新密码。



管理页面使用的是 cloudreve 开源网盘系统,实际操作的文件放在应用创建时指定的 CFS 文件系统中。
由于模型文件体积较大,受限于网关的限制,当前仅支持“离线下载/remote download”方式提交自定义模型,操作步骤如下:
1. 在文件页面,进入 "/stable-diffusion-webui/models/Stable-diffusion/" 目录。
2. 右键菜单中选择离线下载/remote download。如下图所示:



3. 离线下载页面,填写可访问的模型文件下载链接(如应用创建在北京、广州等国内地域,则应提供境内可访问的链接,否则会导致下载失败),单击创建任务。如下图所示:



4. 进入离线下载页面,稍等片刻,等待模型文件下载完成后,进入 Stable Diffusion WebUI,在 Stable Diffusion 模型(ckpt)中选择新模型使用。如下图所示:












5. 如果您在本地有自定义模型想要直接上传,目前可以通过先将模型文件上传到 COS 对象存储的存储桶中,在对象详情页面,单击获取临时链接复制临时下载链接,然后在管理页面使用离线下载到您的应用中。如下图所示:













常见问题

计费说明

计费类型

Stable Diffusion AI 绘画应用的 GPU 使用费用仅支持按量计费(后付费)模式。套餐包、资源包、以及免费额度里均不包含 GPU使用费用。

定价

GPU 使用费用 0.00021694元/GBs(内存*秒)。
调用次数费用 0.0133元/万次。
预置并发闲置费用 0.000045元/GBs。
文件系统费用由 CFS 服务收取,详情见 CFS 计费详情
日志费用由日志服务 CLS 服务收取,详情见 CLS 计费详情

计费示例

在实际调用 GPU 进行图片生成、模型加载、插件安装等任务时计费,编写提示词、网页浏览图库图片等前端页面上的操作不计费。
以第一次打开 webui,加载自定义模型(平均耗时20秒~100秒)后生成一张512大小的图片(10s)为例,共计30秒~110秒,该过程的费用为:0.00021694 (元/内存秒) * 32(GB 内存) * 30~110生图时间(秒) = 0.2元~0.7元。模型越大,该过程费用越多。
模型加载完后的平均生图的费用,以生成 512*512 的图片,step 配置为20,平均花费5~10秒为例,生成单张图片的平均费用为:0.00021694 (元/内存秒) * 32(GB 内存) * 5~10 生图时间(秒) = 0.03元~0.07元(即大量生图的平均生成单张图片花费 0.05~0.1元,该费用会随着图片分辨率、steps、controlnet 等插件步骤的不同而增加,和生成图片的时间成正比。)

并发说明

默认情况下,同一账户在同一地域下仅允许创建两个 AI 绘画应用,单个应用支持最大并发一个生成图片任务。如果您需要更大的并发能力,请 提交工单 联系我们。

Stable Diffusion WebUI 插件安装

在 WebUI 的扩展/extensions 页面来管理和安装 Stable Diffusion 插件,如下图所示:




插件安装的网络问题

为了解决插件安装时可能遇到的网络问题,您可以尝试以下三种方式:
使用国内的插件托管地址:由于国内访问 GitHub 可能存在网络不稳定的问题,您可以尝试使用国内的插件托管地址,如 gitcode、coding 等。
使用代理加速:如果您仍然希望使用 GitHub 的插件地址,但遇到网络问题,可以考虑给 GitHub 插件地址加上 proxy 代理加速。
前往新加坡地域创建应用。