Stable Diffusion:一款强大的AI图片生成软件及其Web UI API介绍

共计 1262 个字符,预计需要花费 4 分钟才能阅读完成。

Stable Diffusion:一款强大的 AI 图片生成软件及其 Web UI API 介绍

Stable Diffusion 是一款采用先进 AI 技术的图片生成软件,因其独特功能和强大创新性而吸引了众多设计师的关注。

在 Stable Diffusion Web UI 中,API(应用程序接口)是与系统进行交互的重要桥梁。下面是对 Stable Diffusion Web UI API 的主要介绍:

首先,您需要运行 Web UI,并在命令行中添加 –api 参数,例如在您的 “webui-user.bat” 中设置:set COMMANDLINE_ARGS=–api。这将启用 API,并且您可以在 http://127.0.0.1:7860/docs 查看相关文档,这个 URL 可能会根据实际情况变化。我们在这里主要关注 /sdapi/v1/txt2img 接口。

该接口将接收您发送的数据,并基于这些数据生成一张图像。例如,您可以构建如下所示的 payload:

payload = {
    "prompt": "maltese puppy",
    "steps": 5
}

之后,您可以通过 POST 请求将 payload 发送到该接口,代码示例如下:

response = requests.post(url=f'http://127.0.0.1:7860/sdapi/v1/txt2img', json=payload)

在后台完成操作之后,API 会将 response 返回。response 包含三个部分:”images”(生成的图像)、”parameters”(发送到 API 的参数)、”info”(额外的信息)。

首先,您需要将 response 转换为 JSON 格式,以便于操作。然后,您可以使用以下方式从 ”images” 中解码并获取图像:

for i in response['images']:
    image = Image.open(io.BytesIO(base64.b64decode(i.split(",", 1)[0])))

除此之外,您也可以使用 /sdapi/v1/png-info API 获取图像的元数据,并将其嵌入到图像中,例如:

png_payload = {"image": "data:image/png;base64," + i}
response2 = requests.post(url=f'http://127.0.0.1:7860/sdapi/v1/png-info', json=png_payload)

然后,您可以使用 response2.json().get("info") 获取这些信息。

另外,您也可以使用 “override_settings” 参数来为单次请求覆盖 Web UI 的设置,例如 ”filter_nsfw” 和 ”CLIP_stop_at_last_layers”。这些设置可以通过 /sdapi/v1/options API 获取。

综上所述,API 为 Stable Diffusion Web UI 提供了极其丰富和灵活的操作方式。无论您是希望生成具有特定特征的图像,还是希望深入定制 Web UI 的行为,都可以通过 API 轻松实现。同时,由于 API 返回的丰富信息,您也能清晰地了解每次请求的详细情况,从而进一步优化您的操作。

正文完