Skip to content
在这一页上

API

启用 API

使用 --api 参数运行程序。

如果使用 webui-user.bat,可以设置

cmd
set COMMANDLINE_ARGS=--api

想要在启用 API 的同时使用插件,追加--enable-insecure-extension-access

使用 API

在浏览器访问 {WebUI 启动网址}/docs (如 http://127.0.0.1:7860/docs) 就可以查看到 WebUI 的 API 文档。

详见 API

Basic Documentation and Examples for using API

下面是一个同步类实现。

python
import time
import json
import requests
import io
import base64
from PIL import Image, PngImagePlugin

class WebUIApi(object):
    def __init__(url):
        self.url=url

    def txt2img(payload,outpath:str=None,infotie:bool=True):
        payload_json = json.dumps(payload)
        response = requests.post(url=f'{self.url}/sdapi/v1/txt2img', data=payload_json).json()
        # response 响应包含 images、parameters 和 info,image 可能会含有多个图像。
        for i in response['images']:
            # 解码 base64
            image = Image.open(io.BytesIO(base64.b64decode(i)))
            # 元信息输出
            pnginfo = PngImagePlugin.PngInfo()
            if infotie:
               pnginfo.add_text("parameters", str(response['info']))
            # 保存,因为本地不会自动生成文件。
            if not outpath:
               print("Random file name")
               outpath=f"{str(time.time())}.png"
            image.save(outpath, pnginfo=pnginfo)

payload = {
    "prompt": "1girl",
    "steps": 20
}
# 其他参数会使用默认值
WebUIApi(url="http://127.0.0.1:7860").txt2img(payload=payload,outpath="1145.png",infotie=True)

覆盖生成设置

关于 override_settings,此参数的目的是覆盖单个请求的 WebUI 设置,例如 CLIP Skip 等。可以传递到此参数的设置项列表可在文档中找到。

附录

Released under the GNU Free Documentation License.