【故障解析】Stable Diffusion WebUI 更换主题后启动报 JSONDecodeError?可能是“主题加载”惹的祸

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


【故障解析】Stable Diffusion WebUI 更换主题后启动报 JSONDecodeError?可能是"主题加载"惹的祸

一、 现象描述:启动即崩溃

在为 WebUI 更换了一款精致的 Gradio 第三方主题后,再次启动程序时,控制台突然刷出一连串红色的 Traceback 报错,其中关键的信息是:

报错堆栈:

changing gradio theme: JSONDecodeError

Traceback (most recent call last):

File "G:\PythonProjects2\stable-diffusion-webui\.venv\Lib\site-packages\requests\models.py", line 976, in json

return complexjson.loads(self.text, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\A\envs\py311\Lib\json\init.py", line 346, in loads

return _default_decoder.decode(s)

^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\A\envs\py311\Lib\json\decoder.py", line 337, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\A\envs\py311\Lib\json\decoder.py", line 355, in raw_decode

raise JSONDecodeError("Expecting value", s, err.value) from None

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "G:\PythonProjects2\stable-diffusion-webui\modules\shared_gradio_themes.py", line 63, in reload_gradio_theme

shared.gradio_theme = gr.themes.ThemeClass.from_hub(theme_name)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "G:\PythonProjects2\stable-diffusion-webui\.venv\Lib\site-packages\gradio\themes\base.py", line 165, in from_hub

space_info = api.space_info(name)

^^^^^^^^^^^^^^^^^^^^

File "G:\PythonProjects2\stable-diffusion-webui\.venv\Lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn

return fn(*args, **kwargs)

^^^^^^^^^^^^^^^^^^^

File "G:\PythonProjects2\stable-diffusion-webui\.venv\Lib\site-packages\huggingface_hub\hf_api.py", line 2785, in space_info

data = r.json()

^^^^^^^^

File "G:\PythonProjects2\stable-diffusion-webui\.venv\Lib\site-packages\requests\models.py", line 980, in json

raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)

requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

关键报错:

requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

此时,WebUI 界面可以正常打开,但在启动日志中又看到这个报错总感觉不舒服,之前本已经全面处理过,没成想更换主题后却又再次出现了。

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


二、 深度溯源:环境冲突引发的"空响应"

通过观察报错堆栈,我们可以看到问题的源头指向了 modules\shared_gradio_themes.py 中的 from_hub 函数:

shared.gradio_theme = gr.themes.ThemeClass.from_hub(theme_name)

技术逻辑分析:

  1. 云端依赖:当你选择了非默认的主题时,WebUI 在启动阶段会尝试访问远程仓库(如 Hugging Face Hub)来校验或获取主题配置。

  2. 网络握手失败 :由于众所周知的跨境网络波动本地特殊网络环境拦截,API 请求并未能如愿返回 JSON 格式的配置信息。

  3. 解析异常 :后端可能返回了一个 HTML 报错页面或直接是空响应。当 Python 的 requests 库尝试将其作为 JSON 解析时,因为第 1 行第 1 个字符不是预期的 {,便抛出了 JSONDecodeError

这本质上是一个由于外部资源无法访问导致的配置加载崩溃。


三、 解决方案:强制回归本地模式

由于此时 UI 已经无法进入,我们需要通过修改底层配置文件来实施"断臂求生"。

1. 修改 config.json(核心操作)

进入你的 Stable Diffusion 安装根目录,找到 config.json 文件:

  • 搜索关键字:"gradio_theme"

  • 将其值修改为默认值:"Default"

    复制代码
    "gradio_theme": "Default",
  • 保存并重启 WebUI,此时程序将跳过云端请求,直接加载本地默认样式,报错消失。

2. 环境治理:配置 NO_PROXY 屏蔽干扰

为了避免后续其他插件再次因为网络环境不稳定 而误撞墙,建议在 webui-user.bat 中加入环境治理指令,确保本地链路的纯净:

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

复制代码
:: 在 COMMANDLINE_ARGS 之前添加,确保本地请求不经过外部链路中转
set NO_PROXY=127.0.0.1,localhost,huggingface.co,github.com

四、 结语与思考

这次排查再次提醒我们,在构建复杂的 AI 环境(如我正在推行的 EPGF 架构 )时,外部依赖的解耦至关重要。

当本地工具尝试频繁与云端通信时,一旦网络通道出现非预期拦截,往往会引发看似莫名其妙的程序崩溃。保持核心配置的本地化,或在启动脚本中做好完善的环境隔离,才是长治久安之道。


博主简介:

深耕 AI 领域与环境治理体系,主打 EPGF(路径治理驱动的多版本 Python 架构)。擅长从底层源码角度解决 Windows 环境下各种"疑难杂症",欢迎关注,一起拆解 AI 技术的黑盒。

【EPGF 白皮书】路径治理驱动的多版本 Python 架构------ Windows 环境治理与 AI 教学开发体系
一次搭好、终身不乱Windows Python 环境治理(EPGF)系列总览 / 阅读路线图 [目录]


相关推荐
KC270几秒前
Prompt 注入攻击的 5 种姿势和防御指南
人工智能
翔云123456几秒前
大模型训练框架全景解析(2026最新)
ai·大模型
不懒不懒3 分钟前
【从零入门本地大模型:Ollama 安装部署 + Qwen2.5 实现零样本情感分类】
人工智能·分类·数据挖掘·大模型·ollama
徐健峰7 分钟前
GPT-image-2 热门玩法实战(二):AI 面相分析 & 个人色彩诊断 — 上传自拍秒出专业报告
人工智能·gpt
冰西瓜6008 分钟前
深度学习的数学原理(三十二)—— Transformer全场景掩码机制详解
人工智能·深度学习·transformer
绘梨衣5479 分钟前
Agentic RAG、传统RAG、ReAct、Function Calling 核心关系
人工智能·chatgpt·tensorflow
玩转单片机与嵌入式12 分钟前
嵌入式AI场景:哪些应用场景不适合将AI模型部署到单片机(MCU)中?
人工智能·单片机·嵌入式硬件
MediaTea16 分钟前
AI 术语通俗词典:随机搜索
人工智能
CyL_Cly18 分钟前
Parsec(parsec安卓/windows/macos下载)
windows
憨波个19 分钟前
【说话人日志】DOVER-Lap:overlap-aware diarization 输出融合算法
人工智能·深度学习·算法·音频·语音识别