ComfyUI-SUPIR模块加载错误分析与解决方案
问题现象分析
在使用ComfyUI-SUPIR项目时,用户经常会遇到"ModuleNotFoundError: No module named 'ComfyUI-SUPIR'"的错误提示。这个错误通常发生在尝试加载SUPIR模型时,系统无法正确识别和导入相关模块。从技术角度来看,这是一个典型的Python模块导入路径问题。
根本原因
经过对多个用户案例的分析,我们发现导致该问题的主要原因包括:
-
文件夹命名不一致:通过ComfyUI Manager安装时,默认创建的文件夹名称为小写的"comfyui-supir",而代码中引用的模块名称为大写的"ComfyUI-SUPIR",导致Python无法正确识别模块路径。
-
Python包管理问题:部分依赖包版本不兼容,特别是open_clip_torch等关键依赖的版本冲突。
-
安装方式差异:通过不同方式安装(如Git克隆与Manager安装)会导致文件结构和导入路径的差异。
解决方案汇总
方法一:手动Git克隆安装
- 首先确保ComfyUI更新至最新版本
- 删除原有安装目录:
rmdir /s /q ComfyUI-SUPIR - 通过Git重新克隆项目:
git clone https://github.com/kijai/ComfyUI-SUPIR - 安装依赖:
pip install -r ComfyUI-SUPIR\requirements.txt - 替换工作流中的旧节点为新的SUPIR节点
方法二:文件夹重命名与复制
- 将
custom_nodes/comfyui-supir重命名为ComfyUI-SUPIR - 或者将该文件夹复制到Python的site-packages目录下:
cp -r ComfyUI-SUPIR /path/to/python/site-packages/
方法三:使用Nightly版本
通过ComfyUI Manager切换到Nightly版本通常可以解决此问题:
- 在Manager界面选择"Switch Ver"
- 选择"nightly [1.0.1]"版本
- 完成安装后重启ComfyUI
技术细节说明
该问题的核心在于Python的模块导入机制。Python在导入模块时会严格区分大小写,并且会按照特定的路径顺序搜索模块。当代码中尝试导入"ComfyUI-SUPIR"时,如果实际文件夹名称为"comfyui-supir",导入就会失败。
此外,项目中的get_obj_from_str函数负责动态加载模块,早期版本存在路径处理的问题,这也是为什么更新到最新版本或Nightly版本可以解决该问题的原因。
最佳实践建议
-
统一安装方式:建议优先使用Git克隆方式安装,保持文件夹名称一致性。
-
依赖管理:特别注意以下关键依赖的版本:
- open_clip_torch 2.24.0
- transformers 4.48.3
- pytorch-lightning 2.5.1
-
工作流维护:更新节点后,建议重新创建工作流,避免使用旧的Legacy节点。
-
环境隔离:使用虚拟环境(如conda或venv)可以避免系统级的包冲突。
常见问题排查
如果按照上述方法仍无法解决问题,可以尝试以下排查步骤:
- 检查ComfyUI日志,确认模块加载顺序和错误详情
- 验证Python路径设置是否正确
- 检查文件夹权限,确保Python进程有读取权限
- 确认没有多个版本的模块冲突
通过系统性地应用这些解决方案,大多数用户应该能够成功解决"ModuleNotFoundError"问题,并正常使用ComfyUI-SUPIR的强大功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



