【SD WebUI踩坑】启动报错 Expecting value: line 1 column 1 (char 0) 的终极解决方案

Stable Diffusion WebUI


【SD WebUI踩坑】启动报错 Expecting value: line 1 column 1 (char 0) 的终极解决方案




0. 前言

最近给 Stable Diffusion WebUI 更换了一个新的网络环境,结果噩梦开始了。启动时后台日志看起来正常,或者偶尔报个错,但一打开网页端,右侧就开始疯狂弹出红色的报错框:

Error

Expecting value: line 1 column 1 (char 0)

折腾了一整天,试过删除 config.json、重置 styles.csv、扫描空文件、设置--xformers --gradio-queue 参数、甚至重装了 Python 环境,都没有解决。最后发现,这根本不是文件损坏的问题,而是 Python 环境与 Windows 系统网络设置之间的"沟通障碍"

1. 问题现象

启动 webui-user.bat 后,控制台或浏览器端抛出 JSON 解析错误:

复制代码
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

有时候还会伴随另一个错误,提示无法连接本地服务:

复制代码
ValueError: When localhost is not accessible, a shareable link must be created...

2. 原因分析(不仅是文件坏了)

大多数教程会告诉你这是因为 config.json 变成了空文件(0KB)。确实,断电会导致文件清空。但如果你检查发现文件都有内容,却依然报这个错,那么真凶只有一个:网络干扰

核心逻辑:
  1. 自动协商失败 :当我们在 Windows 中开启网络加速时,Python 的 requests 库会尝试自动读取系统的网络设置。

  2. 协议错乱 :如果网络工具软件和 Python 之间的协议握手失败(比如 Python 默认用 HTTPS,而本地端口只响应 HTTP,或者 SSL 证书验证失败),网络端口会返回一个 HTML 格式的报错页面 ,而不是插件预期的 JSON 数据

  3. 解析崩溃 :Civitai Helper 或其他插件照旧地把这段 HTML 代码拿去当 JSON 解析,自然读不到第一行的 {,于是抛出 Expecting value...

  4. 误伤友军 :不仅外部请求崩了,连 WebUI 连接自己的 127.0.0.1 也被强制走了加速通道,导致"自己连不上自己"。

3. 终极解决方案:在启动脚本中"硬编码"网络配置

既然让 Python "自动识别系统设置"不可靠,我们就直接在启动脚本里把网络参数写死

这样做有三大好处:

  • 独立性:无论你是否开启 Windows 系统的全局开关,WebUI 都会强制走你指定的稳定通道。

  • 稳定性:显式定义的参数比自动抓取的要稳定得多,杜绝 HTML 报错。

  • 避坑 :配合 NO_PROXY设置参数,彻底解决本地连接 (localhost) 和外部下载的冲突。

操作步骤:

第一步:确认你的加速端口

打开你的加速工具软件,在设置里找到 "本地端口" 或 "HTTP 端口"。

*****

  • (请以你软件实际显示的为准)

第二步:修改 webui-user.bat

  1. 右键点击你的启动脚本 webui-user.bat,选择"编辑"。

  2. call webui.bat 这一行的上面,插入以下代码(请根据你的实际端口修改数字):

    @echo off

    set PYTHON=
    set GIT=
    set VENV_DIR=

    :: ========================================================
    :: 【核心修复代码开始】
    :: 1. 强制指定网络通道端口 (解决 HTML 返回值导致的 JSON 解析错误)
    :: 注意:这里通常都写 http://,即使是 HTTPS_PROXY 也建议写 http://
    set HTTP_PROXY=这里填写
    set HTTPS_PROXY=这里填写

    :: 2. 设置本地白名单 (至关重要!)
    :: 这一行能防止 WebUI 尝试通过网络去连接 localhost,
    :: 彻底解决 "ValueError: When localhost is not accessible" 错误
    set NO_PROXY=127.0.0.1,localhost
    :: 【核心修复代码结束】
    :: ========================================================

    :: 你的启动参数
    set COMMANDLINE_ARGS=--xformers --gradio-queue --disable-nan-check

    call webui.bat

第三步:保存并重启

  1. 保存文件。

  2. 关闭所有正在运行的 WebUI 黑色窗口。

  3. 双击 webui-user.bat 重新启动。

4. 效果验证

改完后,你会发现:

  1. 报错消失:浏览器不再弹红框,后台不再报 JSON 错误。

  2. 下载正常:Civitai Helper 等插件可以正常通过你指定的端口下载模型元数据。

  3. 本地直连 :因为配置了 NO_PROXY参数,生成图片时的本地通信直接走直连,速度快且稳定。

5. 总结

如果你也遇到了删不完的配置文件、修不好的 Expecting value,请立刻检查你的网络环境。不要依赖系统的网络加速设置,直接在 bat 里"硬编码"环境变量,才是 SD WebUI 最稳的运行方式。


(笔记结束)

希望这篇笔记能帮到更多被这个问题折磨的朋友!如果还有其他 SD 相关的问题,随时来问我。

相关推荐
阿里云大数据AI技术1 天前
StarRocks x Fluss x Paimon湖流一体方案:构建秒级响应、湖流一体的实时数据引擎
大数据·人工智能
触底反弹1 天前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
网易云信1 天前
AI 赋能·重构硬件交互:硬件分论坛精彩回顾
人工智能·aigc·线下活动
阿里云大数据AI技术1 天前
MaxCompute Agentic 工具套件首发:面向所有 Agent 提供标准化数据服务
人工智能·agent
网易云信1 天前
AI硬件的下一程,这场分论坛给你答案
人工智能·产品
网易云信1 天前
听说,我们搞了个 AI 编程"电子宠物"?
人工智能·aigc·ai编程
Lion091 天前
【03】Function Calling:让 LLM 拥有双手
人工智能·ai编程
冬哥聊AI1 天前
多模态诅咒:给大模型装上眼睛,文本推理为什么反而变笨了?
人工智能
东风破_1 天前
LLM 是怎么预测下一个词的?从 Token 到 Transformer 的完整过程
人工智能
日是故乡明1 天前
Claude Code 正在用隐写术标记请求
人工智能