修复 ComfyUI 中的 No module named 错误
按包名、Python 环境、自定义节点依赖项以及 CUDA 或 PyTorch 不匹配问题诊断 ComfyUI ModuleNotFoundError 和 No module named 错误。
如果 ComfyUI 打印出 ModuleNotFoundError: No module named ...,本页是一个导航枢纽,而非某个确切包名的最佳搜索落地页。如果你已经知道缺失的模块名称,请直接跳转到下方的专项修复页面。
缺失的 Python 包只是诊断的一部分。更重要的问题是哪个 Python 环境启动了 ComfyUI。
对于官方 Windows 便携包,包命令通常需要通过以下方式运行:
.\python_embeded\python.exe -s -m pip ...对于手动 Git 安装,请激活启动 ComfyUI 所使用的同一虚拟环境,然后使用:
python -m pip ...Related errors
快速诊断
| 日志中显示的内容 | 最可能的原因 | 首先检查 |
|---|---|---|
ModuleNotFoundError 来自 custom_nodes | 自定义节点依赖项缺失 | 查看插件文件夹及其 requirements.txt |
ModuleNotFoundError 来自 ComfyUI\comfy\... | ComfyUI 核心依赖项缺失或版本漂移 | 检查本地 ComfyUI\requirements.txt |
pip install 成功但错误依然存在 | 安装到了错误的 Python 环境 | 使用 ComfyUI 的 Python 运行 pip show |
| 重启后错误发生变化 | 你修复了第一个阻塞问题,暴露出了下一个 | 继续处理新的第一条报错信息 |
| 出现 CUDA、DLL 或 wheel 错误 | 包具有原生或 GPU 依赖项 | 在更改更多包之前检查 Torch/CUDA |
我们最常见到的缺失模块
下面这些缺失模块最容易在 ComfyUI 启动、插件导入和工作流运行时反复出现。先按模块名分流到对应页面,再确认它是核心依赖、插件依赖,还是可选加速后端。
| 缺失模块 | 通常出现的位置 | 最佳下一步页面 |
|---|---|---|
triton | FLUX、加速堆栈、混合插件/运行时环境 | 修复 triton 问题 |
sageattention | 以性能为导向的工作流和加速插件 | 修复 sageattention 问题 |
onnx / onnxruntime | 人脸、姿态、超分辨率和 ONNX 驱动节点 | 修复 onnx 和 onnxruntime |
flash_attn | 可选加速堆栈和部分视频/LLM 节点 | 首先判断它是可选项还是工作流阻塞项 |
llama_cpp | LLM 或提示辅助自定义节点 | 修复 llama_cpp 问题 |
groundingdino | 检测、分割和 grounding 工作流 | 修复 SAM/GroundingDINO 导入问题 |
segment_anything | SAM 分割和遮罩节点 | 修复 segment_anything 问题 |
insightface | 换脸、人脸分析、身份识别工作流 | 修复 insightface 问题 |
cv2 | 依赖 OpenCV 的图像和视频节点 | 修复 cv2 问题 |
nunchaku 及 nunchaku.lora / nunchaku.models | Nunchaku 量化 FLUX/Qwen/SANA 工作流 | 修复 nunchaku 问题 |
kornia | 内置后处理、canny 和形态学节点 | 修复 kornia 问题 |
spandrel | 超分模型节点和 nodes_upscale_model.py | 修复 spandrel 问题 |
simpleeval | 数学表达式节点和 nodes_math.py | 修复 simpleeval 问题 |
pydantic_settings | pyproject.toml 解析和设置包导入 | 修复 pydantic_settings 问题 |
yaml / PIL | 包名陷阱:应安装 PyYAML / Pillow | 修复 yaml 或 修复 PIL |
safetensors | 用于读取 safetensors 文件的 Python 包 | 修复 safetensors Python 包 |
einops | 核心张量/模型工具和机器学习自定义节点 | 修复 einops 问题 |
scipy | 科学 Python 堆栈,音频/视频/模型工具 | 修复 scipy 问题 |
torchsde | PyTorch 相关采样器/模型堆栈 | 修复 torchsde 问题 |
av | PyAV 媒体/视频依赖项 | 修复 av 问题 |
aiohttp / requests | 服务端和 HTTP 客户端依赖项 | 修复 aiohttp 或 修复 requests |
低频模块:通过插件修复,而非新建文章
部分模块虽然也会反复出现,但优先通过插件或 requirements 文件处理更稳妥:
| 缺失模块 | 历史全量受影响安装数 | 近 30 天 | 更安全的优先处理方式 |
|---|---|---|---|
argostranslate | 16 | 4 | 找出导入它的翻译或提示辅助插件 |
flash_attn | 16 | 4 | 安装前先判断它是可选加速项还是工作流阻塞项 |
dlib | 14 | 6 | 在更改包之前查阅人脸节点的安装文档 |
OpenGL_accelerate | 14 | 4 | 如果出现 Starting server,通常是 PyOpenGL 的可选加速器,而非启动阻塞项 |
soundfile | 12 | 1 | 修复导入它的音频/视频节点,而非整个环境 |
blend_modes | 12 | 3 | 仅为需要它的合成插件安装 |
timm | 12 | 1 | 将其视为更大型机器学习插件堆栈的一部分 |
webcolors | 11 | 3 | 修复引用它的插件导入路径 |
nvvfx | 11 | 5 | 在更改包之前验证 NVIDIA/视频运行时支持情况 |
decord | 11 | 5 | 通常与视频加载或帧提取相关 |
deepdiff | 11 | 4 | 修复第一个失败的插件,而非日志中的每个包 |
hydra | 10 | 4 | 将其视为插件堆栈依赖项的证据,而非 ComfyUI 核心修复 |
rotary_embedding_torch | 10 | 3 | 通常属于模型/LLM/自定义节点的依赖链 |
pytorch_lightning | 9 | 3 | 安装前检查某个插件是否固定了旧版机器学习包 |
如果这些模块中的某个受影响安装数增长或获得搜索展示,它可能成为一篇专项指南。在此之前,更安全的公开解答是修复导入它的自定义节点。
如果你已经知道确切的缺失名称,请直接跳转到对应页面,而不是猜测或安装大量依赖包。
No OpenGL_accelerate module loaded 通常不是 ComfyUI 启动失败
你可能在启动时看到这一行:
No OpenGL_accelerate module loaded: No module named 'OpenGL_accelerate'这不同于 OpenGL dependencies not available 错误。OpenGL_accelerate 由 PyOpenGL-accelerate 提供,是 PyOpenGL 的一个可选 Cython 性能伴侣包。它可以加快 PyOpenGL 的操作速度,但 PyOpenGL 的运行并不依赖它。
如果同一日志后续同时显示 Starting server 和 To see the GUI go to: http://127.0.0.1:...,则 ComfyUI 已成功启动。在这种情况下,不要仅为消除此警告而安装包。
何时需要进行调查
仅当某个具体功能或节点同时出现故障时才进行调查,例如出现报错信息、Cannot import 提示或某个基于 OpenGL 的功能损坏。首先检查启动 ComfyUI 所使用的确切 Python:
.\python_embeded\python.exe -s -m pip show PyOpenGL PyOpenGL-accelerate如果该功能自身的文档或报错信息明确要求此加速器,请将其安装到同一 Python 中并重启一次:
.\python_embeded\python.exe -s -m pip install PyOpenGL-accelerate不要将此可选加速器警告与来自 nodes_glsl.py 的 RuntimeError: OpenGL dependencies not available 混淆。后者是内置 GLSL 节点的另一个缺失依赖项错误;请针对该情况参阅 OpenGL 依赖项指南。
第一步:复制确切的缺失模块名称
从复制的那一行开始,而不是你猜测的包名:
ModuleNotFoundError: No module named 'sageattention'导入名称和 pip 包名并不总是相同。例如,cv2 通常来自 OpenCV 包,而 segment_anything 来自 segment-anything。
第二步:找到启动 ComfyUI 的 Python
对于 Windows 便携版,从便携包根目录运行:
.\python_embeded\python.exe -s -m pip --version
.\python_embeded\python.exe -s -m pip show <package-name>对于手动 venv 安装:
python -m pip --version
python -m pip show <package-name>输出路径应指向同一个 ComfyUI 环境。如果它指向系统 Python,则修复工作在错误的地方进行了。
第三步:判断缺失包是否为致命问题
并非每个缺失的可选加速包都需要立即修复。
| 缺失模块 | 通常是致命的吗? | 说明 |
|---|---|---|
来自 ComfyUI 核心的 transformers | 是 | 核心分词器/模型堆栈可能在启动前就失败 |
torch | 是 | 没有可用的 PyTorch 安装,ComfyUI 无法运行 |
cv2 | 对插件通常是致命的 | 许多视觉自定义节点需要 OpenCV |
sageattention | 通常是可选的 | 仅在工作流或启动参数需要时才修复 |
onnxruntime | 取决于工作流 | 人脸、姿态和 ONNX 驱动节点可能需要它 |
diffusers | 取决于插件 | 通常是第三方节点的需求 |
核心导入与插件导入
这一区别会改变最安全的修复路径:
| 报错信息的起始位置 | 通常意味着什么 | 最佳修复方式 |
|---|---|---|
ComfyUI\\comfy\\... 或启动引导文件 | 某个核心依赖项版本漂移 | 优先修复核心环境 |
custom_nodes\\<plugin>\\... | 某个插件依赖项缺失 | 仅修复该插件或其 requirements |
| ComfyUI 启动之前的启动器部署步骤 | 安装/引导问题 | 在编辑包之前检查启动器部署页面 |
如果缺失模块来自核心启动路径,请将本页与 ComfyUI 启动失败 配合使用。如果来自插件,请将本页与 插件导入失败 配合使用。
第四步:安装具体的修复方案
当存在专项指南时,请使用专项指南:
- No module named 'sageattention'
- No module named 'cv2'
- No module named 'insightface'
- No module named 'onnx' or 'onnxruntime'
- No module named 'transformers'
- No module named 'torch'
- No module named 'triton'
- No module named 'kornia'
- No module named 'spandrel'
- No module named 'simpleeval'
- No module named 'pydantic_settings'
- No module named 'yaml'
- No module named 'PIL'
- No module named 'safetensors'
- No module named 'einops'
- No module named 'scipy'
- No module named 'torchsde'
- No module named 'av'
- No module named 'aiohttp'
- No module named 'requests'
不要一次性安装所有相关包。每次修复后重启,并查看新的第一条错误。
包名、pip 命令还是 requirements 文件?
当指南或修复工具要求输入包名时,不要粘贴整个 shell 命令,除非它明确要求。
| 你拥有的内容 | 它是什么 | 更安全的处理方式 |
|---|---|---|
onnxruntime | 一个包规范 | 使用启动 ComfyUI 的 Python 安装它 |
pip install onnxruntime | 一个 shell 命令 | 仅在正确 Python 对应的终端中运行,或仅将 onnxruntime 复制到包字段中 |
python -m pip install onnxruntime | 一个 Python/pip 命令 | 将其作为命令使用,而不是包名 |
requirements.txt | 一个依赖文件 | 使用 pip install -r requirements.txt 安装,而非将其作为名为 requirements.txt 的包 |
custom_nodes/MyNode/requirements.txt | 一个插件依赖文件 | 仅为该插件安装,然后重启并检查其导入 |
这一区别很重要,因为将完整命令或文件路径当作包名使用可能在修复任何内容之前就已失败。如果问题来自插件,优先使用该插件自身的 requirements.txt,而非大范围修改环境。
第五步:验证修复效果
重启 ComfyUI 之前,先在同一 Python 中验证导入:
python -c "import <module_name>; print('import ok')"对于 Windows 便携版,使用:
.\python_embeded\python.exe -s -c "import <module_name>; print('import ok')"然后重启 ComfyUI。原来的 ModuleNotFoundError 应该消失了,受影响的自定义节点或工作流应该可以正常加载。如果出现新的缺失包,将其视为下一个首要阻塞问题处理。
何时 pip install 不是正确的下一步
在安装任何内容之前,请停下来重新检查,如果出现以下情况:
- 每次重启后缺失模块都在变化
- 安装成功但 ComfyUI 仍然报告相同的缺失名称
- 你在混用系统 Python 和
python_embeded - 同时出现了 Torch、CUDA 或 wheel/DLL 错误
- 安装单个插件后有多个插件开始失败
- 你准备将
pip install ...或requirements.txt粘贴到一个只期望包名的字段中
这种模式通常意味着环境发生了漂移,而不是单独缺少某个包。
何时 Wonderful Launcher 是更好的下一步
当只有一个明确缺失的导入时,手动包修复是可行的。但在以下情况下它会变得有风险:
- 多个自定义节点在启动时失败
- 每次安装后
pip check报告冲突 - 修复插件期间 CUDA 或 Torch 发生了变化
- 你不确定哪个 Python 启动了 ComfyUI
- 工作流很重要,你需要保留模型和设置
Still stuck after the manual fix?
Preserve the environment, collect the startup log, and use Wonderful Launcher diagnostics as the next step instead of trying random package installs.
Open diagnostics path相关指南
参考来源
先按上面的步驟定位根因。还卡住时,可以下载 Wonderful Launcher 检查目前机器;启动器原生修复、任务日誌和執行階段检查会集中在一起。credits 只用於图片生成和按量工具。
下载 Wonderful Launcher查看 credits 方案这篇文件解決了你的問题嗎?
你的回饋会帮助我们優先補強真實 ComfyUI 排障文件。