解决 ComfyUI 启动报错:No module named 'ComfyUI-Addoor'
关键词:ComfyUI、Custom Nodes、ModuleNotFoundError、Python import、ComfyUI-Addoor
🧠 一、问题背景

在使用 ComfyUI 并安装第三方节点 ComfyUI-Addoor 后,虽然依赖包已正确安装(通过 requirements.txt),但在启动 ComfyUI 时仍然报错:
Error importing RunningHubInit: No module named 'ComfyUI-Addoor'
Error importing RunningHubNodeInfo: No module named 'ComfyUI-Addoor'
Error importing RunningHubWorkflowExecutor: No module named 'ComfyUI-Addoor'
Error importing RunningHubAccountStatus: No module named 'ComfyUI-Addoor'
Error importing RunningHubFileSaver: No module named 'ComfyUI-Addoor'
Error importing RunningHubWorkflowID: No module named 'ComfyUI-Addoor'
Error importing RunningHubFilePreviewer: No module named 'ComfyUI-Addoor'
Error importing RunningHubNodeInfoReplace: No module named 'ComfyUI-Addoor'
Error importing RunningHubImageUploader: No module named 'ComfyUI-Addoor'
...
这些错误表明 Python 无法找到模块 ComfyUI-Addoor,尽管它确实存在于 custom_nodes 目录下。
而且 ComfyUI-Addoor 并非是一个可以 pip install 直接安装补齐的包或库,与其他的 No module named 'xxx' 报错的解决方式不同。

🔍 二、原因分析
Python 模块导入机制
Python 的 import 语句依赖于模块搜索路径(sys.path)。在 ComfyUI 的上下文中,某些节点作者可能假设了某种相对导入路径,例如:
module = import(f'ComfyUI-Addoor.rp.{module_name}', fromlist=[class_name])
然而,这种写法在 ComfyUI 启动时并不总是有效,因为:
ComfyUI-Addoor并不是标准 Python 包结构;ComfyUI启动时并不会自动将custom_nodes加入模块搜索路径;- 使用
import()动态导入时,模块路径必须能被 Python 解析。
✅ 三、解决方案
(一)修改导入语句
我们手动修改了 ComfyUI-Addoor 的导入逻辑,使其使用更明确的路径:
# 原代码(可能出错)
module = import(f'ComfyUI-Addoor.rp.{module_name}', fromlist=[class_name])
# 替换为
module = __import__(f'custom_nodes.ComfyUI-Addoor.rp.{module_name}', fromlist=[class_name])
(二)修改位置
通常位于以下文件:
ComfyUI\custom_nodes\ComfyUI-Addoor\rp\__init__.py
**第39行**

🛠️ 四、修改说明
(一)原写法:
ComfyUI-Addoor.rp.{module}
(二)新写法:
custom_nodes.ComfyUI-Addoor.rp.{module}
__import__是 Python 的内建函数,允许动态导入模块;- 通过加上
custom_nodes前缀,明确告诉 Python 模块的完整路径; - 这样即使模块没有被注册到
sys.path,也能正确导入。

⚠️ 五、注意事项
- 此方法未经过全面测试,但在本地环境中成功消除了报错;
- 若节点功能异常,建议检查是否有其他路径硬编码问题;
- 若未来节点作者修复了导入方式,建议回退修改。
修复后 该 No module named 'ComfyUI-Addoor' 报错 消除
附修复后的测试启动日志:
Microsoft Windows [Version 10.0.27971.1]
(c) Microsoft Corporation. All rights reserved.
(.venv) F:\PythonProjects\ComfyUI>start_comfyui.bat
[PluginManager] Initializing plugin environments...
[PluginManager] Bridge config written: F:\PythonProjects\ComfyUI\bridge_config.json
[PluginManager] Launching ComfyUI...
Adding extra search path checkpoints F:\PythonProjects\stable-diffusion-webui\models\checkpoints
Adding extra search path checkpoints F:\PythonProjects\stable-diffusion-webui\models\Stable-diffusion
Adding extra search path clip F:\PythonProjects\stable-diffusion-webui\models\clip
Adding extra search path clip_vision F:\PythonProjects\stable-diffusion-webui\models\clip_vision
Adding extra search path configs F:\PythonProjects\stable-diffusion-webui\models\configs
Adding extra search path configs F:\PythonProjects\stable-diffusion-webui\models\Stable-diffusion
Adding extra search path controlnet F:\PythonProjects\stable-diffusion-webui\models\controlnet
Adding extra search path diffusion_models F:\PythonProjects\stable-diffusion-webui\models\diffusion_models
Adding extra search path diffusion_models F:\PythonProjects\stable-diffusion-webui\models\unet
Adding extra search path diffusion_models F:\PythonProjects\stable-diffusion-webui\models\Stable-diffusion
Adding extra search path embeddings F:\PythonProjects\stable-diffusion-webui\models\embeddings
Adding extra search path embeddings F:\PythonProjects\stable-diffusion-webui\embeddings
Adding extra search path loras F:\PythonProjects\stable-diffusion-webui\models\loras
Adding extra search path loras F:\PythonProjects\stable-diffusion-webui\models\Lora
Adding extra search path loras F:\PythonProjects\stable-diffusion-webui\models\LyCORIS
Adding extra search path upscale_models F:\PythonProjects\stable-diffusion-webui\models\upscale_models
Adding extra search path upscale_models F:\PythonProjects\stable-diffusion-webui\models\ESRGAN
Adding extra search path upscale_models F:\PythonProjects\stable-diffusion-webui\models\RealESRGAN
Adding extra search path upscale_models F:\PythonProjects\stable-diffusion-webui\models\SwinIR
Adding extra search path vae F:\PythonProjects\stable-diffusion-webui\models\vae
Adding extra search path vae F:\PythonProjects\stable-diffusion-webui\models\VAE
[START] Security scan
[DONE] Security scan
## ComfyUI-Manager: installing dependencies done.
** ComfyUI startup time: 2025-10-23 10:38:47.043
** Platform: Windows
** Python version: 3.11.13 | packaged by Anaconda, Inc. | (main, Jun 5 2025, 13:03:15) [MSC v.1929 64 bit (AMD64)]
** Python executable: F:\PythonProjects\ComfyUI\.venv\Scripts\python.exe
** ComfyUI Path: F:\PythonProjects\ComfyUI
** ComfyUI Base Folder Path: F:\PythonProjects\ComfyUI
** User directory: F:\PythonProjects\ComfyUI\user
** ComfyUI-Manager config path: F:\PythonProjects\ComfyUI\user\default\ComfyUI-Manager\config.ini
** Log path: F:\PythonProjects\ComfyUI\user\comfyui.log
Prestartup times for custom nodes:
3.0 seconds: F:\PythonProjects\ComfyUI\custom_nodes\ComfyUI-Manager
Checkpoint files will always be loaded safely.
Total VRAM 24576 MB, total RAM 97560 MB
pytorch version: 2.8.0+cu128
xformers version: 0.0.32.post2
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 3090 : cudaMallocAsync
Using xformers attention
Python version: 3.11.13 | packaged by Anaconda, Inc. | (main, Jun 5 2025, 13:03:15) [MSC v.1929 64 bit (AMD64)]
ComfyUI version: 0.3.56
ComfyUI frontend version: 1.25.11
[Prompt Server] web root: F:\PythonProjects\ComfyUI\.venv\Lib\site-packages\comfyui_frontend_package\static
Imported AddPaddingAdvanced successfully
Imported AddPaddingBase successfully
Imported AD_ImageResize successfully
Imported AD_MockupMaker successfully
Imported AD_PosterMaker successfully
Imported AD_PromptSaver successfully
Imported ComfyUI-FofrToolkit successfully
Imported ComfyUI-ImageCaptioner successfully
Imported ComfyUI-imageResize successfully
Imported ComfyUI-textAppend successfully
Imported imagecreatemask successfully
Imported multiline_string successfully
Imported AddPaddingAdvanced successfully
Imported AddPaddingBase successfully
Imported AD_ImageResize successfully
Imported AD_MockupMaker successfully
Imported AD_PosterMaker successfully
Imported AD_PromptSaver successfully
Imported ComfyUI-FofrToolkit successfully
Imported ComfyUI-ImageCaptioner successfully
Imported ComfyUI-imageResize successfully
Imported ComfyUI-textAppend successfully
Imported imagecreatemask successfully
Imported multiline_string successfully
### Loading: ComfyUI-Manager (V3.37)
[ComfyUI-Manager] network_mode: public
### ComfyUI Version: v0.3.56-8-ge2d1e5da | Released on '2025-09-01'
Skip F:\PythonProjects\ComfyUI\custom_nodes\__init__.py module for custom nodes due to the lack of NODE_CLASS_MAPPINGS or NODES_LIST (need one).
Import times for custom nodes:
0.0 seconds (IMPORT FAILED): F:\PythonProjects\ComfyUI\custom_nodes\__init__.py
0.0 seconds: F:\PythonProjects\ComfyUI\custom_nodes\websocket_image_save.py
0.5 seconds: F:\PythonProjects\ComfyUI\custom_nodes\ComfyUI-Addoor
0.7 seconds: F:\PythonProjects\ComfyUI\custom_nodes\ComfyUI-Manager
Context impl SQLiteImpl.
Will assume non-transactional DDL.
No target revision found.
Starting server
To see the GUI go to: http://127.0.0.1:8188
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/alter-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/model-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/extension-node-map.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/github-stats.json
FETCH ComfyRegistry Data: 5/101
FETCH ComfyRegistry Data: 10/101
FETCH ComfyRegistry Data: 15/101
FETCH ComfyRegistry Data: 20/101
FETCH ComfyRegistry Data: 25/101
FETCH ComfyRegistry Data: 30/101
FETCH ComfyRegistry Data: 35/101
FETCH ComfyRegistry Data: 40/101
FETCH ComfyRegistry Data: 45/101
FETCH ComfyRegistry Data: 50/101
FETCH ComfyRegistry Data: 55/101
FETCH ComfyRegistry Data: 60/101
FETCH ComfyRegistry Data: 65/101
FETCH ComfyRegistry Data: 70/101
FETCH ComfyRegistry Data: 75/101
FETCH ComfyRegistry Data: 80/101
FETCH ComfyRegistry Data: 85/101
FETCH ComfyRegistry Data: 90/101
FETCH ComfyRegistry Data: 95/101
FETCH ComfyRegistry Data: 100/101
FETCH ComfyRegistry Data [DONE]
[ComfyUI-Manager] default cache updated: https://api.comfy.org/nodes
FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json [DONE]
[ComfyUI-Manager] All startup tasks have been completed.
🧪 六、验证方法
- 修改完成后保存文件;
- 重启 ComfyUI;
- 控制台中不再出现
No module named 'ComfyUI-Addoor'报错; - 节点正常加载并可使用。
📌 七、总结
这类问题的本质是 Python 模块导入路径与 ComfyUI 的加载机制不匹配。通过手动修正导入路径,我们可以绕过模块解析失败的问题。虽然这不是"官方"修复方案,但在社区节点未更新前,是一个有效的临时解决方案。
📚 八、延伸阅读
- Python 官方文档:import
- ComfyUI GitHub 仓库
-
ComfyUI 自定义节点开发指南(社区整理)
我们正在攻关解决自定义节点(插件)安装后依赖会破坏 ComfyUI 和 Stable Diffusion WebUI 主程序的问题(依赖污染/不隔离),如果你也遇到类似问题,欢迎留言交流,或分享你节点导入的"踩坑"经历 和 提供好的思路 共建开源部署生产力方案!