[Bug]: Drop down menu of ´Add Lora to prompt´ does nont have a ´none´ selection and always charge the last Lora selected

用户在 Stable Diffusion WebUI(commit 955df7751eef11bb7697e2d77f6b8a6226b21e13 )的“设置”中启用了 sd_lora 后,下拉菜单“Add Lora to prompt”缺少空选项(None),导致无法取消已选 LoRA。用户尝试

[Bug]: Drop down menu of ´Add Lora to prompt´ does nont have a ´none´ selection and always charge the last Lora selected

[Bug]: Drop down menu of ´Add Lora to prompt´ does nont have a ´none´ selection and always charge the last Lora selected

快速结论:该报错出现在 Stable Diffusion WebUI 的 LoRA 下拉菜单中,用户无法取消已选 LoRA,且关闭 UI 后最后一个选中的 LoRA 会自动保留。优先排查 config.json 中是否存在残留的 "sd_lora" 配置,或通过编辑 lora_script.py 在选项列表中添加 "None" 条目。

问题场景

用户在 Stable Diffusion WebUI(commit 955df7751eef11bb7697e2d77f6b8a6226b21e13)的“设置”中启用了 sd_lora 后,下拉菜单“Add Lora to prompt”缺少空选项(None),导致无法取消已选 LoRA。用户尝试创建一个空 LoRA 文件作为变通方案,但触发 SafetensorError: HeaderTooSmall 错误。

报错原文

activating extra network lora: SafetensorError
Traceback (most recent call last):
  File "...\modules\extra_networks.py", line 85, in activate
    extra_network.activate(p, [])
  File "...\extensions-builtin\Lora\extra_networks_lora.py", line 23, in activate
    lora.load_loras(names, multipliers)
  File "...\extensions-builtin\Lora\lora.py", line 214, in load_loras
    lora = load_lora(name, lora_on_disk.filename)
  File "...\extensions-builtin\Lora\lora.py", line 133, in load_lora
    sd = sd_models.read_state_dict(filename)
  File "...\modules\sd_models.py", line 241, in read_state_dict
    pl_sd = safetensors.torch.load_file(checkpoint_file, device=device)
  File "...\venv\lib\site-packages\safetensors\torch.py", line 99, in load_file
    with safe_open(filename, framework="pt", device=device) as f:
safetensors_rust.SafetensorError: Error while deserializing header: HeaderTooSmall

原因分析

可能原因:

  • WebUI 的下拉菜单组件未内置“None”选项,且设置项 sd_lora 的值无法被清空,导致重启或刷新后仍保留上次选中的 LoRA。
  • 用户创建的空 none.safetensors 文件虽然可以作为占位选项,但因其非标准 safetensors 格式(头部不完整),触发 SafetensorError
  • 某些第三方扩展(如 stable-diffusion-webui-state)可能额外持久化 LoRA 选择状态,干扰下拉菜单的初始化。

环境排查

  • 确认 Stable Diffusion WebUI 版本是否为 Issue 中提到的 955df7751eef11bb7697e2d77f6b8a6226b21e13(较旧版本)。
  • 检查 config.json 中是否存在 "sd_lora": "某个LoRA名称" 条目。
  • 检查 extensions-builtin\Lora\ui.pylora_script.py 中下拉菜单的选项列表定义。
  • 列出已安装的第三方扩展,尤其是 stable-diffusion-webui-state 等可能持久化 UI 状态的扩展。

解决步骤

  1. 修改 config.json 清理残留配置(可优先尝试):
    关闭 WebUI,打开 WebUI 根目录下的 config.json,搜索 "sd_lora",将其值改为 "None",然后保存文件并重启 WebUI。
  2. 编辑 lora_script.py 添加“None”选项
    打开 extensions-builtin\Lora\lora_script.py(或 extensions-builtin\Lora/ui.py),找到定义 sd_lora 下拉菜单的行,将 choices 列表修改为 ["None"] + [x for x in lora.available_loras]。保存后重启 WebUI。
  3. 排查并禁用干扰扩展
    前往 Extensions 标签页,逐一禁用可能持久化 UI 状态的扩展(如 stable-diffusion-webui-state),点击“Apply and restart UI”,观察问题是否消失。
  4. 变通方案(创建空 LoRA 文件并忽略错误)
    如果暂时无法添加“None”选项,可在 models/Lora/ 目录下创建一个空文件并命名为 none.safetensors,然后修改 extensions-builtin\Lora\lora.py 中的逻辑,在读取 safetensors 元数据前添加条件判断(如 if 'none' not in filename),以避免触发 SafetensorError。此方法仅为临时绕过。

验证方法

重启 WebUI 后,打开设置中的 sd_lora 下拉菜单,确认存在名称为“None”的选项,并在选择其他 LoRA 后仍能切换回“None”以清除 LoRA。生成的图片中不再自动附加之前选中的 LoRA 即表示问题已解决。

参考来源

AUTOMATIC1111/stable-diffusion-webui #9041

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 10689

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注