菜单

API 端点

相关源文件

此页面记录了 Stable Diffusion Web UI 中可用的 REST API 端点。API 允许对所有主要功能进行编程访问,从而能够与外部应用程序、脚本和自动化工具集成。有关请求和响应格式的信息,请参阅 请求和响应格式,有关身份验证详细信息,请参阅 身份验证和安全

API 系统概述

Stable Diffusion Web UI 提供了一个基于 FastAPI 的综合性 REST API。API 端点在 /sdapi/v1/ 前缀下进行组织,并支持各种操作,包括图像生成、模型管理、训练和配置。

来源: modules/api/api.py199-252 modules/api/api.py434-490 modules/api/api.py492-565

API 端点类别

API 端点分为以下功能类别

类别描述
图像生成根据文本提示生成图像或修改现有图像
图像处理通过放大、面部修复等后期处理图像
模型管理列出、加载和管理模型、嵌入和 VAE
训练创建和训练文本嵌入和超网络
配置查看和更新系统配置
服务器管理控制服务器进程

来源: modules/api/api.py211-252

图像生成端点

POST /sdapi/v1/txt2img

根据文本提示生成图像。

请求参数

  • prompt:图像生成的文本提示
  • negative_prompt:要在图像生成中排除的文本
  • width, height:生成的图像尺寸
  • steps:采样步数
  • cfg_scale:引导强度(图像应在多大程度上符合提示)
  • sampler_name:要使用的采样器名称
  • seed:生成的随机种子(-1 表示随机)
  • batch_size:一次生成图像的数量
  • script_name(可选):要运行的脚本名称
  • script_args(可选):脚本的参数
  • alwayson_scripts(可选):常亮脚本的参数

响应

  • images:base64 编码的图像列表
  • parameters:输入参数的字典
  • info:有关生成的附加信息

来源: modules/api/api.py432-490 modules/api/models.py100-113 modules/api/models.py134-138

POST /sdapi/v1/img2img

根据输入图像和文本提示生成图像。

请求参数

  • txt2img 的所有参数,外加
  • init_images:base64 编码的输入图像列表
  • denoising_strength:修改图像的程度 (0-1)
  • mask(可选):用于图像修复的 base64 编码掩码

响应

  • txt2img 相同的结构

来源: modules/api/api.py492-565 modules/api/models.py115-132 modules/api/models.py139-142

GET /sdapi/v1/progress

返回当前生成任务的进度。

响应

  • progress:介于 0-1 之间的数字,表示进度
  • eta_relative:剩余估计时间(秒)
  • state:生成过程的当前状态
  • current_image:当前正在处理的图像(如果可用)
  • textinfo:有关当前过程的文本信息

来源: modules/api/api.py602-628 modules/api/models.py186-195

POST /sdapi/v1/interrupt

中断当前生成过程。

来源: modules/api/api.py649-651

POST /sdapi/v1/skip

跳过当前生成过程的采样步。

来源: modules/api/api.py664-665

图像处理端点

POST /sdapi/v1/extra-single-image

使用各种后期处理选项处理单个图像。

请求参数

  • image:base64 编码的图像
  • resize_mode:如何调整大小(0 表示缩放,1 表示特定尺寸)
  • upscaling_resize:使用 resize_mode=0 时的缩放比例
  • upscaling_resize_w, upscaling_resize_h:使用 resize_mode=1 时的目标尺寸
  • upscaler_1:要使用的主要放大器
  • upscaler_2:要使用的次要放大器
  • extras_upscaler_2_visibility:放大器之间的混合因子 (0-1)
  • gfpgan_visibility:GFPGAN 面部修复的强度 (0-1)
  • codeformer_visibility:CodeFormer 面部修复的强度 (0-1)
  • codeformer_weight:CodeFormer 的权重参数 (0-1)

响应

  • image:base64 编码的处理后图像
  • html_info:有关处理的 HTML 格式信息

来源: modules/api/api.py567-575 modules/api/models.py144-157 modules/api/models.py162-166

POST /sdapi/v1/extra-batch-images

使用与 extra-single-image 相同的参数处理多个图像。

请求参数

  • extra-single-image 相同,但使用 imageList 而不是 image
  • imageList:具有 data(base64 图像)和 name 属性的对象数组

响应

  • images:base64 编码的处理后图像列表
  • html_info:有关处理的 HTML 格式信息

来源: modules/api/api.py577-586 modules/api/models.py172-176

POST /sdapi/v1/png-info

提取存储在 PNG 元数据中的生成信息。

请求参数

  • image: Base64 编码的 PNG 图像

响应

  • info: 生成参数(文本格式)
  • items: 提取的元数据字段字典
  • parameters: 解析后的生成参数

来源: modules/api/api.py588-600 modules/api/models.py178-184

POST /sdapi/v1/interrogate

分析图像并生成描述性文字或标签。

请求参数

  • image:base64 编码的图像
  • model: 使用的模型(clipdeepdanbooru

响应

  • caption: 生成的描述性文字或标签

来源: modules/api/api.py630-647 modules/api/models.py196-202

模型管理端点

GET /sdapi/v1/sd-models

返回可用 Stable Diffusion 模型列表。

响应

  • 对象数组,包含 titlemodel_namehashsha256filenameconfig

来源: modules/api/api.py726-728 modules/api/models.py255-262

GET /sdapi/v1/sd-vae

返回可用 VAE 模型列表。

响应

  • 对象数组,包含 model_namefilename

来源: modules/api/api.py730-732 modules/api/models.py263-265

GET /sdapi/v1/hypernetworks

返回可用超网络列表。

响应

  • 对象数组,包含 namepath

来源: modules/api/api.py734-735 modules/api/models.py267-269

GET /sdapi/v1/face-restorers

返回可用人脸修复模型列表。

响应

  • 对象数组,包含 namecmd_dir

来源: modules/api/api.py737-738 modules/api/models.py271-273

GET /sdapi/v1/realesrgan-models

返回可用 Real-ESRGAN 放大器模型列表。

响应

  • 对象数组,包含 namepathscale

来源: modules/api/api.py740-741 modules/api/models.py275-278

GET /sdapi/v1/embeddings

返回加载的和被跳过的文本反转嵌入的字典。

响应

  • loaded: 已加载的嵌入字典
  • skipped: 由于兼容性问题而被跳过的嵌入字典

来源: modules/api/api.py751-769 modules/api/models.py286-295

POST /sdapi/v1/refresh-checkpoints

刷新可用检查点列表。

来源: modules/api/api.py775-777

POST /sdapi/v1/refresh-vae

刷新可用 VAE 模型列表。

来源: modules/api/api.py

POST /sdapi/v1/refresh-embeddings

刷新可用文本反转嵌入列表。

来源: modules/api/api.py

POST /sdapi/v1/unload-checkpoint

卸载当前模型在 GPU 内存中。

来源: modules/api/api.py

POST /sdapi/v1/reload-checkpoint

将当前模型重新加载到 GPU 内存中。

来源: modules/api/api.py

训练端点

POST /sdapi/v1/create/embedding

创建新的文本反转嵌入。

响应

  • info: 关于已创建嵌入的信息

来源: modules/api/api.py783-792 modules/api/models.py206-207

POST /sdapi/v1/create/hypernetwork

创建新的超网络。

响应

  • info: 关于已创建超网络的信息

来源: modules/api/api.py795-803 modules/api/models.py206-207

POST /sdapi/v1/train/embedding

训练一个文本反转嵌入。

响应

  • info: 训练结果信息

来源: modules/api/api.py805-824 modules/api/models.py203-205

POST /sdapi/v1/train/hypernetwork

训练一个超网络。

响应

  • info: 训练结果信息

来源: modules/api/api.py826-849 modules/api/models.py203-205

配置和信息端点

GET /sdapi/v1/options

返回当前的配置选项。

响应

  • 所有配置选项及其值的字典

来源: modules/api/api.py667-676 modules/api/models.py209-219

POST /sdapi/v1/options

更新配置选项。

请求参数

  • 要更新的选项的键值对

来源: modules/api/api.py678-687

GET /sdapi/v1/cmd-flags

返回启动应用程序使用的命令行标志。

响应

  • 命令行选项及其值的字典

来源: modules/api/api.py689-690 modules/api/models.py221-231

GET /sdapi/v1/samplers

返回可用采样器列表。

响应

  • 包含 namealiasesoptions 的对象数组

来源: modules/api/api.py692-694 modules/api/models.py233-236

GET /sdapi/v1/schedulers

返回可用的调度器方法列表。

响应

  • 包含 namelabelaliasesdefault_rhoneed_inner_model 的对象数组

来源: modules/api/api.py696-704 modules/api/models.py238-244

GET /sdapi/v1/upscalers

返回可用放大器列表。

响应

  • 包含 namemodel_namemodel_pathmodel_urlscale 的对象数组

来源: modules/api/api.py706-716 modules/api/models.py245-251

GET /sdapi/v1/latent-upscale-modes

返回可用的潜在放大模式列表。

响应

  • 包含 name 的对象数组

来源: modules/api/api.py718-724 modules/api/models.py252-254

GET /sdapi/v1/prompt-styles

返回可用提示词样式的列表。

响应

  • 包含 namepromptnegative_prompt 的对象数组

来源: modules/api/api.py743-749 modules/api/models.py279-284

GET /sdapi/v1/memory

返回内存使用信息。

响应

  • ram: 系统 RAM 使用信息
  • cuda: CUDA 内存使用信息(如果可用)

来源: modules/api/api.py851-884 modules/api/models.py297-299

GET /sdapi/v1/scripts

返回 txt2img 和 img2img 的可用脚本列表。

响应

  • txt2img: txt2img 脚本名称列表
  • img2img: img2img 脚本名称列表

来源: modules/api/api.py294-298 modules/api/models.py302-304

GET /sdapi/v1/script-info

返回有关可用脚本的详细信息。

响应

  • 对象数组,包含 nameis_alwaysonis_img2imgargs(脚本参数列表)

来源: modules/api/api.py300-306 modules/api/models.py307-320

GET /sdapi/v1/extensions

返回已安装扩展的列表。

响应

  • 对象数组,包含 nameremotebranchcommit_hashversioncommit_dateenabled

来源: modules/api/api.py886-903 modules/api/models.py322-329

服务器管理端点

只有在服务器启动时使用了 --api-server-stop 标志,这些端点才可用。

POST /sdapi/v1/server-kill

终止服务器进程。

来源: modules/api/api.py917-918

POST /sdapi/v1/server-restart

在应用程序配置允许的情况下,重新启动服务器进程。

来源: modules/api/api.py920-923

POST /sdapi/v1/server-stop

正常停止服务器。

来源: modules/api/api.py925-927

API 身份验证

可以通过启动服务器时使用 --api-auth 标志,后跟 用户名:密码 来选择性地使用 HTTP 基本身份验证保护 API。

来源: modules/api/api.py201-206 modules/api/api.py274-284

常见的请求/响应流程

来源: modules/api/api.py432-490 modules/api/api.py135-195