You need to enable JavaScript to run this app.
导航

通过函数服务快速部署 AI 绘画 Stable Diffusion 应用

最近更新时间2024.04.19 10:27:11

首次发布时间2023.11.17 18:32:29

本文为您介绍如何基于平台提供的公共镜像 Stable Diffusion v1.5 WebUI ,快速部署 AI 绘画 Stable Diffusion 应用。

注意

邀测·申请试用】Serverless GPU 当前为邀测功能,如需体验,请 提交工单 申请或联系客户经理申请。

背景信息

  • 镜像介绍
    该镜像提供 stable-diffusion-webui 项目的 Serverless 化部署能力。部署完成后,可通过 API 网关触发器提供的域名使用 Stable Diffusion WebUI,包括文生图、图生图,以及 Lora、ControlNet 等高阶能力。

  • 免责声明
    该项目的构建镜像完全开源,由社区开发者贡献,火山引擎仅提供算力支持。项目使用的 sd-webui 镜像内容同步自开源社区,如遇软件使用问题,请前往社区获取解决方案。

注意

  • 函数服务不对第三方模型的合法性、安全性、准确性进行任何保证,函数服务不对由此引发的任何损害承担责任。
  • 您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。

前提条件

  • 已开通函数服务。
  • 已开通 API 网关。
  • 已创建 API 网关实例和服务,请创建一个单独的服务用于对接函数。具体操作可参见 创建实例 和 创建服务
  • (推荐)已开通日志服务。

操作步骤

步骤一: 创建 GPU 函数

选择公共镜像 Stable Diffusion v1.5 WebUI,并基于 GPU 实例创建函数。

  1. 登录 函数服务控制台

  2. 在顶部导航栏,选择目标地域。

  3. 在 函数列表 页面,单击 创建函数

  4. 在 创建函数 页面,选择 基于镜像创建函数,单击 下一步:函数配置

  5. 按要求配置函数。主要配置项说明如下,其余配置项保持默认值即可。

    alt

    • 函数代码
      选择 公共镜像 Stable Diffusion v1.5 WebUI
    • 高级配置
      配置项说明
      计算模式选择 GPU 加速
      单实例并发启用单实例多并发功能。实例最大并发数建议大于等于 100 个,否则可能影响 webui 加载速度。
      日志功能启用日志功能,投递至默认日志集。建议启用日志功能,否则无法查询函数日志。
  6. 单击 确定,完成函数创建。

步骤二: 发布函数

等待镜像同步、缓存完成,显示为 就绪 状态后,将函数发布至线上。

  1. 在函数详情页面,单击右上角的 发布

  2. 函数版本 使用 Latest,按需填写 版本描述实例数上限 保持默认。

    alt

  3. 单击 确定,  函数进入发布中。函数发布成功后如下图所示。

    alt

步骤三:创建 API 网关触发器

为当前函数创建 API 网关触发器,获取 Stable Diffusion WebUI 的访问域名。

  1. 切换至触发器页签,单击 创建触发器

  2. 按要求配置触发器信息。更多参数介绍请参见 创建 API 网关触发器

    alt

    • 网关实例:选择前提条件中准备的网关实例。
    • 网关服务:选择前提条件中准备的网关服务。请选择一个未对接路由的网关服务。
    • 网关路由:此处 Path 用于访问 Stable Diffusion WebUI,请设置为 /,其他保持默认。
  3. 单击 确定,完成 API 网关触发器创建。

    alt

步骤四:访问 Stable Diffusion WebUI

  1. 单击 API 网关触发器的公网访问地址,跳转至 Stable Diffusion WebUI 操作界面。

    alt

  2. 在 txt2img 页签的输入框中,输入提示词,单击 Generate,即可生成描述提示词的图片。
    使用默认的提示词,生成的图片示例如下:
    alt

相关操作

如何通过 NAS 挂载自定义模型?

Stable Diffusion 使用的模型通常容量很大。为了方便快速读取,用户通常将自定义模型或 WebUI 插件上传至 NAS 挂载目录中进行存储和管理,并在 WebUI 启动时再实时加载。详细介绍可参见 通过 NAS 挂载 SD 自定义模型

如何访问 Stable Diffusion 的 API?

如果您不想使用 WebUI 页面,仅想以 API 形式启动 Stable Diffusion。请参照以下操作:

  1. 在函数基础信息页签,修改函数的配置信息,新增环境变量。
    其中:key 固定为 CLI_ARGS;value 为 --nowebui
    alt
  2. 重新发布函数。
  3. 使用 Postman 或其他工具对 API 进行调试。

    说明

    可通过 apig 触发器访问路径 + /docs, 查询可调用的 API。

如何使用更多定制能力?

stable-diffusion-webui 项目提供了丰富的命令行参数,您可访问 Command Line Arguments and Settings 文档,查询您希望使用的能力对应的 Argument Command。然后在函数服务控制台使用该环境变量(key 固定为CLI_ARGS,value 使用您希望的 Argument Command 值),重新发布函数即可。