快速结论:该报错通常发生在 ComfyUI Impact Pack 的 Wildcard Processor 读取含中文、日文、韩文等非拉丁字符的通配符文件(.txt/.yaml)时,输出变成乱码。优先检查通配符文件的读取编码是否仍以 ISO-8859-1 为主。
适用环境:Issue 已确认的工具为 ComfyUI Impact Pack(涉及 wildcards.py 的 _load_txt、load_txt_wildcard、load_yaml_wildcard、read_wildcard_dict);未提供操作系统、Python、CUDA、显卡等环境信息。
最快修复方案:升级到 V8.29(提交 d59dc2f)或更高版本。该版本已改为优先以 utf-8-sig 读取通配符文件,仅在文件不是有效 UTF-8 时才回退到 ISO-8859-1,并会给出包含文件名的警告。
注意事项:若无法升级,Issue 中建议的手动改法是将四处 encoding="ISO-8859-1" 改为 encoding="UTF-8",但这属于用户提交的修改建议,不是官方验证步骤;直接改源码会在后续更新时被覆盖,且对非 UTF-8 编码的旧文件可能带来兼容问题。V8.29 采用 utf-8-sig 优先加 ISO-8859-1 回退的方式,兼容性更稳。
问题场景
用户在 ComfyUI 中使用 Impact Pack 的 Wildcard Processor 加载通配符文件(.txt 或 .yaml),文件中包含中文、日文、韩文或阿拉伯文等非拉丁字符时,这些内容在输出中显示为乱码。问题出现在通配符文件读取阶段,而非模型推理或显存相关环节。
报错原文
Non-Latin Characters (Chinese, Korean, Japanese, etc.) Display as Garbled Text in Wildcard Processor
原因分析
可能原因是通配符读取逻辑以 ISO-8859-1 作为首选编码,仅在解码出错时才回退到 UTF-8。ISO-8859-1 在读取中文、日文、韩文、阿拉伯文等非拉丁字符时不会抛出解码错误,而是直接按错误映射解析,因此 UTF-8 回退逻辑永远不会被触发,最终输出乱码。受影响位置包括 wildcards.py 中的 _load_txt(LazyWildcardLoader)、load_txt_wildcard、load_yaml_wildcard 以及 read_wildcard_dict 的 .txt 与 .yaml 处理分支。
环境排查
- 确认 ComfyUI Impact Pack 的版本,判断是否低于 V8.29。
- 确认报错来自 Wildcard Processor 节点加载通配符文件的场景。
- 确认通配符文件的实际编码,尤其是是否为 UTF-8(含或不含 BOM)。
- 确认乱码内容位于 .txt 通配符还是 .yaml 通配符(含 YAML 键名)。
- Issue 未提供 Python、CUDA、PyTorch、显卡等信息,若仍有异常,可另行确认这些依赖与当前版本是否匹配。
解决步骤
- 查看当前 Impact Pack 版本,确认是否低于 V8.29。
- 升级到 V8.29(提交 d59dc2f)或更新版本;升级后通配符文件将优先按 utf-8-sig 读取,非 UTF-8 文件才回退到 ISO-8859-1 并输出带文件名的警告。
- 若暂时无法升级,可优先尝试按 Issue 建议手动修改:在 wildcards.py 的上述四个位置,将
encoding="ISO-8859-1"替换为encoding="UTF-8",随后重启 ComfyUI。 - 重新加载含中文、日文、韩文或阿拉伯文的通配符文件,并触发 Wildcard Processor 输出。
验证方法
用同一份包含中文、日文、韩文的 .txt 与 .yaml 通配符文件重新运行 Wildcard Processor,确认输出文本与文件内容一致、不再出现乱码,且 YAML 键名同样正常显示。若控制台出现指明文件名的编码警告,说明该文件不是有效 UTF-8,需单独检查文件编码。
参考来源
ltdrdata/ComfyUI-Impact-Pack #1196
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


