You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Automatic1111 ControlNet API调用返回500服务器错误求助

ControlNet API 500服务器错误排查与解决方案

第一步:优先查看服务器日志

直接查看Automatic1111 WebUI的控制台输出,500错误属于服务器内部报错,日志会明确给出具体原因(比如模型加载失败、参数不识别、文件找不到等),这是最快定位问题的方法。

核心排查方向与修复方案

1. 参数键名错误

你的代码中使用了"cfg": 10,但WebUI API的正确参数名是cfg_scale,这个错误会导致服务器无法解析参数,直接抛出500错误,必须修正。

2. 模型与输入不匹配

  • 你用的是control_sd15_canny(边缘检测模型),但输入的是姿态图poses_base.png,且module设为none,服务器无法处理这类不匹配的输入。如果要处理姿态,应换用control_sd15_openpose模型,同时将module设为openpose;如果确实要用canny模型,需先把输入图转成边缘图,或将module设为canny让服务器自动处理。
  • 确认模型文件名完全匹配:检查extensions/sd-webui-controlnet/models目录下是否存在control_sd15_canny [fef5e48e].pth(或对应格式文件),文件名的哈希值必须和代码里的完全一致。

3. 路径转义问题

Python中Windows路径的反斜杠需要转义,你写的"poses\poses_base.png"会被解析为错误路径(\p被转义),导致无法读取图像文件。修正为两种写法之一:

with open(r"poses\poses_base.png", "rb") as f:  # 使用原始字符串
# 或者
with open("poses\\poses_base.png", "rb") as f:  # 双反斜杠转义

4. 其他参数有效性检查

  • resize_mode:部分WebUI版本要求用"scale_to_fit"而非"Scale to Fit (Inner Fit)",可以换成"Resize and Fill"测试,或查看http://127.0.0.1:7860/docs里的API文档确认有效值。
  • sampler_index:核对WebUI采样器列表里的准确名称,比如确认DPM++ 2S a Karras是否存在、有无拼写错误。

5. 扩展与API启用确认

  • 确认ControlNet扩展已正确安装并启用,且重启过WebUI。
  • 检查WebUI启动时是否添加了--api参数(默认已启用,但可再次确认)。

修正后的示例代码

import requests
import base64

# 修正路径写法
with open(r"poses\poses_base.png", "rb") as f:
    image_data = f.read()
    image_base64 = base64.b64encode(image_data)
    image_string = image_base64.decode("utf-8")

payload = {
    "prompt": "A PURPLE VEST",
    "negative_prompt": "",
    "width": 512,
    "height": 512,
    "steps": 100,
    "cfg_scale": 10,  # 修正参数名
    "sampler_index": "DPM++ 2S a Karras",
    "controlnet_units": [
        {
            "input_image": image_string,
            "mask": '',
            "module": "openpose",  # 匹配姿态模型
            "model": "control_sd15_openpose [cab727d4]",  # 换成姿态模型
            "weight": 1.6,
            "resize_mode": "Scale to Fit (Inner Fit)",
            "lowvram": False,
            "processor_res": 512,
            "threshold_a": 64,
            "threshold_b": 64,
            "guidance": 1,
            "guidance_start": 0,
            "guidance_end": 1,
            "guessmode": True
        }
    ]
}

response = requests.post(url=f'http://127.0.0.1:7860/controlnet/txt2img', json=payload)
print(response.status_code)
print(response.text)  # 打印响应内容,方便进一步排查

内容的提问来源于stack exchange,提问作者Imran Bughio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:55:11