本地安装的 Stable Diffusion WebUI 开启 API 模式非常简单,核心是通过启动参数启用 API 功能,同时可以配置跨域、端口等参数适配电商工作室的自动化需求(如批量生成商品图)。以下是分步骤的完整教程:

一、核心启动参数(关键)

Stable Diffusion WebUI 的 API 功能默认关闭,需要在启动时添加以下参数:

bash

--api # 核心参数:启用 API 功能
--cors-allow-origins=* # 可选:允许跨域请求(方便 Python 脚本远程调用)
--port=7861 # 可选:指定 API 端口(避免与 WebUI 端口 7860 冲突)
--listen # 可选:允许局域网/外网访问(服务器部署时必加)
--no gradio # 可选:仅启动 API,不加载 WebUI 界面(节省资源,适合后台运行)
 

二、不同系统的启动方法

  1. Windows 系统(常用)
  • 找到 Stable Diffusion WebUI 的启动脚本  webui-user.bat 
  • 右键编辑,修改  set COMMANDLINE_ARGS=  这一行,添加 API 参数:
    bat

set COMMANDLINE_ARGS=--api --cors-allow-origins=* --port=7861 --listen
 

  • 保存后双击  webui-user.bat  启动,控制台会显示  Running on local URL: http://0.0.0.0:7861 ,表示 API 已开启。
  1. Linux/macOS 系统(服务器部署优先)
  • 编辑启动脚本  webui-user.sh 
  • 修改  COMMANDLINE_ARGS  变量:
    bash

COMMANDLINE_ARGS="--api --cors-allow-origins=* --port=7861 --listen --no-gradio"
 

  • 执行  ./webui.sh  启动,或用  nohup ./webui.sh &  实现后台持久运行(适合 Linux 服务器)。

三、验证 API 是否开启

启动后,访问以下地址,若返回 JSON 数据则说明 API 正常:

plaintext

http://localhost:7861/docs # Swagger 文档(查看所有 API 接口)
http://localhost:7861/sdapi/v1/models # 获取当前加载的模型列表
 

四、Python 调用 API 示例(电商批量生成商品图)

开启 API 后,你可以用 Python 脚本批量调用 Stable Diffusion 生成商品主图、详情图,完美适配店群自动化需求。以下是最简示例:

python

import requests
import json

API 地址(本地或服务器地址)

url = "http://localhost:7861/sdapi/v1/txt2img"

生成参数(可根据商品类型调整 prompt)

payload = {

"prompt": "high quality product photo of a wireless earphone, white background, professional lighting",
"negative_prompt": "blurry, low quality, watermark",
"width": 512,
"height": 512,
"batch_size": 4,  # 一次生成 4 张图(批量效率更高)
"steps": 20,
"cfg_scale": 7.5

}

发送请求

response = requests.post(url, json=payload)
data = response.json()

保存生成的图片

for i, img_data in enumerate(data["images"]):

import base64
from PIL import Image
from io import BytesIO

img = Image.open(BytesIO(base64.b64decode(img_data.split(",", 1)[0])))
img.save(f"product_{i}.png")

 

五、高级配置(适配 Linux 服务器集群)

1. Docker 部署 API 服务:将 Stable Diffusion API 打包成 Docker 镜像,通过 KVM 虚拟化批量部署到多个服务器节点,实现负载均衡。
2. API 密钥认证:若对外提供 API 服务,可通过第三方插件(如  sd-webui-api-auth )添加密钥认证,防止滥用。
3. 模型自动切换:通过 API 调用  sdapi/v1/options  接口,动态切换不同模型(如商品图模型、场景图模型),适配不同业务需求。

六、常见问题

1. API 调用无响应:检查是否添加  --listen  参数,服务器防火墙是否开放 7861 端口。
2. 跨域错误:确保添加  --cors-allow-origins=*  参数,或在 Python 脚本中设置  headers={"Origin": "http://localhost"} 。
3. 显存不足:批量生成时降低  batch_size ,或使用  --xformers  参数优化显存占用。

需要我为你编写一个批量生成商品图的 Python 脚本吗?它可以自动读取商品名称列表,调用 Stable Diffusion API 生成并分类保存图片,直接适配你的店群自动化流程。

标签: none

添加新评论