stable-diffusion-webui的api介绍

文 / @WordPress主题

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

photo-1623282033815-40b05d96c903

在 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:

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

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

python
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"中解码并获取图像:

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

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

python
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返回的丰富信息,您也能清晰地了解每次请求的详细情况,从而进一步优化您的操作。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。