You need to enable JavaScript to run this app.
导航
通过函数服务快速部署 AI 绘画 Stable Diffusion 应用
最近更新时间:2024.12.26 20:47:52首次发布时间: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 镜像内容同步自开源社区,如遇软件使用问题,请前往社区获取解决方案。

    注意

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

    项目名称类型地址说明
    stable-diffusion-webuiGithub 项目https://github.com/AUTOMATIC1111/stable-diffusion-webui常用的基于 Stable Diffusion 的 WebUI 项目,支持 WebUI 和 API 形式。
    stable-diffusion-webui-dockerGithub 项目https://github.com/AbdBarho/stable-diffusion-webui-docker将 SD WebUI 容器化的项目,用来进行镜像构建。
    runwayml/stable-diffusion-v1-5HuggingFace 模型https://huggingface.co/runwayml/stable-diffusion-v1-5Stable Diffusion v1.5 标准模型,绘制能力较强,可根据描述词得到不同形式的图像。

前提条件

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

操作视频

部署 AI 绘画 SD 应用

步骤一: 创建 Stable Diffusion Web 应用函数

基于公共镜像 Stable Diffusion v1.5 WebUI 创建一个 Web 引用,并采用 GPU 加速计算模式。

  1. 登录 函数服务控制台,在顶部导航栏,选择目标项目和上海地域。

  2. 在左侧导航栏选择函数,然后单击创建函数

  3. 选择创建Web应用,然后设置函数名称和备注信息。
    Image

  4. 选择部署方式为容器镜像 > 公共镜像,然后选择 Stable Diffusion 镜像。
    Image

  5. 选择 GPU 加速模式,然后打开单实例多并发日志功能开关。
    Image
    本文涉及的配置项说明如下,其余配置项保持默认值即可。如需了解其余配置项详情,请参见函数配置

    配置项说明
    计算模式选择 GPU 加速模式,然后选择 GPU 卡类型。本文以nvidia-tesla-l4为例。

    单实例多并发

    启用单实例多并发功能。
    实例最大并发数建议大于等于 100 个,否则可能影响 WebUI 加载速度。

    日志功能启用日志功能,投递至默认日志集。建议启用日志功能,否则无法查询函数日志。
  6. 函数配置完成后,单击确定,完成函数创建。

步骤二: 发布函数

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

  1. 在函数详情的代码页签下,单击右上角的发布
    Image
  2. 函数版本使用Latest,按需填写版本描述实例数上下限保持默认。
    Image
  3. 单击确定,进入发布流程。
    函数发布完成后,显示为发布完成状态,并展示实例列表。
    Image

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

您可以在当前函数创建 API 网关触发器,为 Stable Diffusion WebUI 应用提供访问域名。

  1. 在函数详情的触发器页签下,单击创建触发器

  2. 按需配置 API 网关触发器。
    Image

    配置项说明
    触发器类型选择API网关类型。
    触发器名称自定义设置触发器名称。

    网关实例

    从下拉列表中选择目标 API 网关实例。
    如果还未创建,请跳转到 API 网关控制台创建实例,详情请参见创建实例

    网关服务

    从下拉列表中选择目标 API 网关服务。
    如果还未创建,请跳转到 API 网关控制台创建服务,详情请参见创建服务

    网关路由

    自定义设置网关路由名称,然后设置 path 为/,其他配置保持默认。
    如需了解 API 触发器更多配置信息,请参见创建 API 网关触发器

  3. 单击确定,完成 API 网关触发器创建。
    Image

步骤四:访问 Stable Diffusion WebUI

  1. 在函数详情的触发器页签下,单击 API 网关触发器提供的公网访问地址。
    Image
  2. 在 Stable Diffusion WebUI 操作界面的 txt2img 输入框中,输入描述图片的提示词,然后单击 Generate
    Image
  3. 查看根据提示词生成的图片。
    Image

相关操作

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

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

如何访问 Stable Diffusion 的 API?

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

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

    说明

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

如何使用更多定制能力?

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