【笔记】解决 ComfyUI 安装节点 ComfyUI-Addoor (葵花宝典)后启动报错:No module named ‘ComfyUI-Addoor’

解决 ComfyUI 启动报错:No module named 'ComfyUI-Addoor'

关键词:ComfyUI、Custom Nodes、ModuleNotFoundError、Python import、ComfyUI-Addoor


🧠 一、问题背景

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 解析。

✅ 三、解决方案

No module named 'ComfyUI-Addoor' 来自网友 Aljnk 的解决方案

(一)修改导入语句

我们手动修改了 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.

🧪 六、验证方法

  1. 修改完成后保存文件;
  2. 重启 ComfyUI;
  3. 控制台中不再出现 No module named 'ComfyUI-Addoor' 报错;
  4. 节点正常加载并可使用。

📌 七、总结

这类问题的本质是 Python 模块导入路径与 ComfyUI 的加载机制不匹配。通过手动修正导入路径,我们可以绕过模块解析失败的问题。虽然这不是"官方"修复方案,但在社区节点未更新前,是一个有效的临时解决方案。


📚 八、延伸阅读


我们正在攻关解决自定义节点(插件)安装后依赖会破坏 ComfyUI 和 Stable Diffusion WebUI 主程序的问题(依赖污染/不隔离),如果你也遇到类似问题,欢迎留言交流,或分享你节点导入的"踩坑"经历 和 提供好的思路 共建开源部署生产力方案!

相关推荐
love530love4 小时前
【笔记】ComfyUI KeyError: ‘tensorrt‘ 错误的完整解决方案
windows·笔记·python·pycharm
ZJU_统一阿萨姆4 小时前
Windows系统VSCode配置Rust开发环境(超详细保姆级教程)
windows·vscode·rust
zzywxc7874 小时前
解锁 Rust 开发新可能:从系统内核到 Web 前端的全栈革命
开发语言·前端·python·单片机·嵌入式硬件·rust·scikit-learn
知新坊4 小时前
RustDesk 完整部署教程:支持 Web 管理后台和网页客户端远程,保姆级教学来了!
前端
山川而川-R4 小时前
图像进行拼接-后进行ocr检测识别
人工智能·计算机视觉·ocr
敲敲了个代码5 小时前
UniApp 多页面编译优化:编译时间从10分钟到1分钟
开发语言·前端·javascript·学习·uni-app
Shelley种了一只橙子5 小时前
第一章部署 chrony服务器
运维·服务器
Full Stack Developme5 小时前
Linux 有哪些功能相似的命令
linux·运维·服务器
CIO405 小时前
AI未来--AI在制造业的最佳落地实践
人工智能