AttributeError: ‘NoneType’ object has no attribute ‘filename’

这个报错通常发生在 Stable Diffusion WebUI Forge 加载 LoRA 时,待加载的 LoRA 名称没有匹配到磁盘上已扫描到的网络文件,导致 available_network_aliases.get(name) 返回 None ,随后访问 network_on_disk.fi

快速结论:这个报错通常发生在 Stable Diffusion WebUI Forge 加载 LoRA 时,待加载的 LoRA 名称没有匹配到磁盘上已扫描到的网络文件,导致 available_network_aliases.get(name) 返回 None,随后访问 network_on_disk.filename 抛出 AttributeError: 'NoneType' object has no attribute 'filename'。优先排查提示词、样式(styles.csv)或预设里是否引用了一个当前安装中不存在的 LoRA 名称。

适用环境:Stable Diffusion WebUI Forge(extensions-builtin/sd_forge_lora/networks.py);Issue 中未明确给出操作系统、Python、PyTorch、CUDA、显卡或依赖版本。

最快修复方案:暂无确认的一步修复方案。Issue 作者的验证结果是:其 styles.csv 中的 “Default Negatives” 样式里包含了一个名为 “Perfect Hands” 的 LoRA,而该 LoRA 并不在当前新安装的 Forge 目录中,把它从样式里移除后问题消失。

注意事项:评论区另有一位用户提供了修改 networks.py 中 load_networks / load_network 相关逻辑的做法,但这属于推测性代码改动,Issue 中没有作者确认其已解决问题;直接改内置扩展文件可能在 Forge 更新后被覆盖,建议优先排查配置引用而非改源码。

问题场景

用户全新重装 Stable Diffusion WebUI Forge 后,在正常生成图片时突然触发 LoRA 加载错误。Issue 作者描述:使用相同设置(相同 Checkpoint、相同提示词、同一个 LoRA)连续生成约 4 张图片都正常,下一次使用完全相同设置运行时出现该报错;此前也有约 20 次生成后才出现。报错发生在激活 extra network lora 的过程中,涉及多个 ExtraNetworkParams。

报错原文

activating extra network lora with arguments [<modules.extra_networks.ExtraNetworkParams object at 0x7f59c7c282b0>, <modules.extra_networks.ExtraNetworkParams object at 0x7f59c7c2ad10>, <modules.extra_networks.ExtraNetworkParams object at 0x7f59c7c28430>]: AttributeError
Traceback (most recent call last):
  File "/srv/www/vhosts/forge-ui/extensions-builtin/sd_forge_lora/networks.py", line 94, in load_networks
    net = load_network(name, network_on_disk)
  File "/srv/www/vhosts/forge-ui/extensions-builtin/sd_forge_lora/networks.py", line 63, in load_network
    net.mtime = os.path.getmtime(network_on_disk.filename)
AttributeError: 'NoneType' object has no attribute 'filename'

原因分析

根据 Issue 作者最终的排查结果,最可能的原因是:Forge 尝试加载一个名为 “Perfect Hands” 的 LoRA,但该 LoRA 并不在当前新安装的 Forge 目录中(作者实际上只在另一个分区的归档里有同名的 SDXL LoRA)。这个 LoRA 名称被写进了作者个人的 styles.csv 文件中的 “Default Negatives” 样式里,而该样式被默认应用,因此每次生成时 Forge 都会尝试加载这个不存在的 LoRA。

从代码路径看,当名称无法解析到已扫描到的网络文件时,available_network_aliases.get(name, None) 返回 None,该 None 被传入 load_network,访问 network_on_disk.filename 即抛出该 AttributeError。这也解释了为什么报错不是每次都出现,而取决于实际激活的样式或提示词中是否引用了缺失的 LoRA。

环境排查

  • 确认 Forge 是否为全新安装,以及内置扩展 sd_forge_lora 是否存在、是否被修改过。
  • 确认所有被引用的 LoRA 文件是否真实存在于当前 Forge 的 LoRA 目录中,尤其是 styles.csv、样式预设和默认负面提示词里引用的 LoRA 名称。
  • 检查是否有同名 LoRA 只存在于其他磁盘分区、归档目录或不在此次安装扫描路径内。
  • Issue 未提供 Python、PyTorch、CUDA、显卡和依赖版本信息,若需排查兼容性问题请自行另行确认。

解决步骤

  1. 找到 Forge 根目录下的 styles.csv(或个人样式文件),检查其中是否包含 <lora:名称:权重> 形式的引用。
  2. 对照当前 Forge 的 LoRA 目录,确认这些 LoRA 是否真实存在。Issue 作者发现 “Default Negatives” 样式里引用了 “Perfect Hands”,但新安装中并无此文件。
  3. 从样式、提示词或预设中移除无法在当前安装中解析的 LoRA 引用,或把对应 LoRA 文件放回当前 Forge 的 LoRA 扫描目录。
  4. 如果确认引用本身无问题但仍复现,可优先尝试排查该 LoRA 是否被正确扫描(重启 WebUI 后在 LoRA 列表中能否看到它)。
  5. 评论区提供的 networks.py 代码改动仅为其他用户的推测性方案,可优先尝试在排查引用之后作为最后手段,且注意备份原文件、避免被更新覆盖。

验证方法

移除或修正缺失 LoRA 的引用后,重新启动 Forge,使用之前触发报错的相同样式、提示词和设置再次生成。若不再出现 AttributeError: 'NoneType' object has no attribute 'filename',且 LoRA 列表与生成流程正常,即说明问题已解决。Issue 作者确认清理 styles.csv 中的引用后恢复正常。

参考来源

lllyasviel/stable-diffusion-webui-forge #1888

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25622

发表回复

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