开启 API 功能方法

在 stable-diffusion-webui 根目录下找到文件 webui-user.bat,使用编辑器打开这个文件,然后在 COMMANDLINE_ARGS 配置项后面添加 --api。

set COMMANDLINE_ARGS= --api

然后双击 webui-user.bat 重启服务,此时在浏览器中输入地址 https://localhost:7860/doc,就能看到如下所示的所有接口文档了,我们可以从文档中找到需要接入的接口及详细参数。

2024-06-29T02:06:35.png

文生图接口

可以通过向 stable-diffusion-webui 服务发送正向关键字、反向关键字、图片尺寸、采样步数等参数来调用AI能力生成图片。我们先来看看它有哪些可配置的 payload 参数选项。(暂时只用到后面写了注释的参数,基本上可以满足大部分文生图参数配置)

api:/sdapi/vi/txt2img

{
  "enable_hr": false,                 // 开启高清hr
  "denoising_strength": 0,            // 降噪强度
  "hr_scale": 2,                      // 高清级别
  "hr_upscaler": "string",
  "hr_second_pass_steps": 0,
  "hr_resize_x": 0,
  "hr_resize_y": 0,
  "hr_sampler_name": "string",
  "hr_prompt": "",
  "hr_negative_prompt": "",
  "prompt": "",                       // 正向关键字
  "styles": [
    "string"
  ],
  "seed": -1,                         // 随机种子
  "subseed": -1,                      // 子级种子
  "subseed_strength": 0,              // 子级种子影响力度
  "seed_resize_from_h": -1,
  "seed_resize_from_w": -1,
  "sampler_name": "string",
  "batch_size": 1,                    // 每次生成的张数
  "n_iter": 1,                        // 生成批次
  "steps": 50,                        // 生成步数
  "cfg_scale": 7,                     // 关键词相关性
  "width": 512,                       // 生成图像宽度
  "height": 512,                      // 生成图像高度
  "restore_faces": false,             // 面部修复
  "tiling": false,                    // 平铺
  "do_not_save_samples": false,
  "do_not_save_grid": false,
  "negative_prompt": "string",        // 反向关键字
  "eta": 0,                           // 等待时间
  "s_min_uncond": 0,
  "s_churn": 0,
  "s_tmax": 0,
  "s_tmin": 0,
  "s_noise": 1,
  "override_settings": {},             // 覆盖性配置
  "override_settings_restore_afterwards": true,
  "script_args": [],                   // lora 模型参数配置
  "sampler_index": "Euler",            // 采样方法
  "script_name": "string",
  "send_images": true,                 // 是否发送图像
  "save_images": false,                // 是否在服务端保存生成的图像
  "alwayson_scripts": {}               // alwayson配置
}

图生图接口

stable-diffusion-webui 将根据我们从接口传送的参考图,生成内容和风格类似的图片,就像最近抖音上很火的瞬息全宇宙特效一样,也可以将同一张图片通过选择不同模型转化为另一种画风。下面是图生图接口的详细 payload 参数,可以观察到基本上和文生图是一样的,多了一些与参考图片相关的配置,如 init_images。

api:/sdapi/v1/img2img

{
  "init_images": [
    "string"
  ],
  "resize_mode": 0,
  "denoising_strength": 0.75,
  "image_cfg_scale": 0,
  "mask": "string",
  "mask_blur": 0,
  "mask_blur_x": 4,
  "mask_blur_y": 4,
  "inpainting_fill": 0,
  "inpaint_full_res": true,
  "inpaint_full_res_padding": 0,
  "inpainting_mask_invert": 0,
  "initial_noise_multiplier": 0,
  "prompt": "",
  "styles": [
    "string"
  ],
  "seed": -1,
  "subseed": -1,
  "subseed_strength": 0,
  "seed_resize_from_h": -1,
  "seed_resize_from_w": -1,
  "sampler_name": "string",
  "batch_size": 1,
  "n_iter": 1,
  "steps": 50,
  "cfg_scale": 7,
  "width": 512,
  "height": 512,
  "restore_faces": false,
  "tiling": false,
  "do_not_save_samples": false,
  "do_not_save_grid": false,
  "negative_prompt": "string",
  "eta": 0,
  "s_min_uncond": 0,
  "s_churn": 0,
  "s_tmax": 0,
  "s_tmin": 0,
  "s_noise": 1,
  "override_settings": {},
  "override_settings_restore_afterwards": true,
  "script_args": [],
  "sampler_index": "Euler",
  "include_init_images": false,
  "script_name": "string",
  "send_images": true,
  "save_images": false,
  "alwayson_scripts": {}
}

发表评论