逐个修复 ComfyUI 便携版缺失模块依赖
一份经过实测的 Windows 便携版 ComfyUI 修复记录,涵盖 SQLAlchemy、torch、前端包、kornia、PyOpenGL 及其他启动依赖缺失的处理过程。
如果 Windows 便携版 ComfyUI 环境因缺失核心包而启动失败,请不要急于大范围重装。
更稳妥的修复循环是:
- 启动 ComfyUI
- 读取日志中出现的第一个新报错
- 仅在
python_embeded中安装该包 - 再次启动
- 重复上述步骤,直到服务器、
/system_stats、/object_info和pip check均正常
本页内容基于 2026 年 5 月 18 日对一个真实损坏便携版环境的修复记录。实验从 ModuleNotFoundError: No module named 'sqlalchemy' 开始,最终在搭载 CUDA PyTorch 的 RTX 4070 Ti SUPER 上成功恢复。
实践原则
每次只安装一个包,然后重启并读取新日志。复制报错去搜索,应该能定位到导致下一次启动尝试发生变化的那个具体包,而不是粘贴一条隐藏了真正修复点的大型命令。
案例审查决策边界
当环境本身依次缺少核心启动依赖时,使用本手册。请勿将其作为通用的自定义节点修复指南。
| 当前情况 | 更合适的方案 |
|---|---|
启动在 Starting server 之前停止,且每次重启都暴露出新的核心缺失包 | 使用本逐包修复循环 |
只有一个自定义节点显示 IMPORT FAILED | 优先使用 ComfyUI 插件导入失败 |
| 工作流有红色节点,但 ComfyUI 能正常启动 | 使用 ComfyUI 缺失节点,然后验证插件注册情况 |
| Torch 可以导入,但 CUDA 不可用 | 在安装更多包之前,先使用 Torch 未编译 CUDA 支持 |
| 节点已注册,但模型文件缺失 | 使用 Safetensors 放置位置 或 找不到模型文件 |
从已审查案例中得出的重要验证原则是:离线导入成功、浏览器标签页打开,或出现"包已安装"提示,均不足以证明修复完成。修复后的便携版环境必须是启动 ComfyUI 的进程本身,占用预期端口,能访问 /system_stats,能访问 /object_info,并通过相关运行时检查。
何时使用本手册
在以下情况下使用本页:
- ComfyUI 便携版通过
python_embeded\python.exe启动 - 启动在
Starting server之前停止 - 出现如
ModuleNotFoundError: No module named 'sqlalchemy'、No module named 'torch'或comfyui-frontend-package is not installed等报错 - 你的模型、工作流和自定义节点值得保留
- 你希望知道是哪个包导致了下一次失败,而不是重装一切
请勿将本页作为通用升级命令使用。如果只有一个自定义节点缺少一个包,请先修复那个自定义节点。
本页最擅长处理的情况
本手册最适用于:
- 损坏的环境是官方 Windows 便携版
- 多个核心启动依赖依次缺失
- 你想要一条追溯式的修复路径,而非盲目重装
如果错误明显只与一个插件导入有关,请从以下内容入手:
经过实测的修复链
以下是实际修复实验室时逐包操作的完整序列。
| 尝试次数 | 启动日志中出现的第一个新信号 | 单包操作 | 重启后的变化 |
|---|---|---|---|
| 1 | ModuleNotFoundError: No module named 'sqlalchemy' | pip install "SQLAlchemy>=2.0" | 暴露出 filelock |
| 2 | ModuleNotFoundError: No module named 'filelock' | pip install filelock | 暴露出 alembic 和 yaml |
| 3 | Error importing dependencies: No module named 'alembic' | pip install alembic | 数据库初始化向前推进 |
| 4 | ModuleNotFoundError: No module named 'yaml' | pip install PyYAML | 暴露出 PIL |
| 5 | ModuleNotFoundError: No module named 'PIL' | pip install Pillow | 暴露出 tqdm |
| 6 | ModuleNotFoundError: No module named 'tqdm' | pip install tqdm | 暴露出一个陌生的内部风格模块 |
| 7 | 某个陌生的 ComfyUI 内部风格模块出现 ModuleNotFoundError | 先检查本地 requirements 或官方 ComfyUI 包元数据,不要直接根据 import 名猜 PyPI 包 | 避免拉取无关包 |
| 8 | ModuleNotFoundError: No module named 'torch' | 按 ComfyUI Torch Missing 在 embedded Python 中选择匹配的 CUDA wheel | 先验证 CUDA,再继续修下一项 |
| 9 | ModuleNotFoundError: No module named 'safetensors' | pip install safetensors | 暴露出 packaging |
| 10 | ModuleNotFoundError: No module named 'packaging' | pip install packaging | 暴露出 numpy |
| 11 | ModuleNotFoundError: No module named 'numpy' | pip install "numpy>=1.25.0" | 暴露出 einops |
| 12 | ModuleNotFoundError: No module named 'einops' | pip install einops | 暴露出 psutil |
| 13 | ModuleNotFoundError: No module named 'psutil' | pip install psutil | ComfyUI 进入 VRAM 检测阶段,随后暴露出 torchvision |
| 14 | ModuleNotFoundError: No module named 'torchvision' | 从同一 CUDA wheel 索引安装 torchvision | 暴露出 torchaudio |
| 15 | ModuleNotFoundError: No module named 'torchaudio' | 从同一 CUDA wheel 索引安装 torchaudio | 暴露出 scipy |
| 16 | ModuleNotFoundError: No module named 'scipy' | pip install scipy | 暴露出 transformers |
| 17 | ModuleNotFoundError: No module named 'transformers' | pip install transformers | 暴露出 torchsde |
| 18 | ModuleNotFoundError: No module named 'torchsde' | pip install torchsde | 暴露出 av |
| 19 | ModuleNotFoundError: No module named 'av' | pip install av | 暴露出 aiohttp |
| 20 | ModuleNotFoundError: No module named 'aiohttp' | pip install aiohttp | 暴露出 requests |
| 21 | ModuleNotFoundError: No module named 'requests' | pip install requests | 暴露出 pydantic |
| 22 | ModuleNotFoundError: No module named 'pydantic' | pip install pydantic | 暴露出 comfyui-frontend-package |
| 23 | comfyui-frontend-package is not installed | pip install comfyui-frontend-package | 服务器已启动,但部分内置扩展节点导入失败 |
此时 ComfyUI 已能运行,但日志仍显示部分可选或内置扩展依赖缺失。清理阶段按照同样的方式继续:
| 清理信号 | 单包操作 | 结果 |
|---|---|---|
后处理、Canny 和形态学节点中出现 No module named 'kornia' | pip install kornia | 节点数量从 657 增加到 685 |
nodes_upscale_model.py 中出现 No module named 'spandrel' | pip install spandrel | 节点数量增加到 687 |
解析 pyproject.toml 时反复出现 No module named 'pydantic_settings' | pip install pydantic-settings | 启动日志从大量重复警告缩减为少量警告 |
OpenGL dependencies not available | pip install PyOpenGL,重启,然后 pip install glfw | GLSL/OpenGL 节点导入成功 |
nodes_math.py 中出现 No module named 'simpleeval' | pip install simpleeval | 日志中不再有 IMPORT FAILED 行 |
comfyui-workflow-templates is not installed | pip install comfyui-workflow-templates | 工作流模板警告消失 |
comfyui-embedded-docs package not found | pip install "comfyui-embedded-docs==0.4.4" | 嵌入式文档警告消失 |
WARNING: blake3 package not installed | pip install blake3 | blake3 警告消失 |
| 陌生的 ComfyUI 内部包导入失败 | 先检查本地 ComfyUI requirements 与官方发布元数据 | 避免把 import 名直接当作 PyPI 包名 |
最终日志仍提示 comfy_kitchen 的 Triton 后端不可用,因为 triton 未安装。这不是启动阻断项:CUDA 和 eager 后端均可用,服务器正常开启。
第 0 步:从便携版根目录开始
在包含以下内容的文件夹中打开 PowerShell:
run_nvidia_gpu.bat
run_cpu.bat
python_embeded
ComfyUI确认 Python 可执行文件路径:
.\python_embeded\python.exe -s -c "import sys; print(sys.executable); print(sys.version)"如果该路径不是启动 ComfyUI 所用的 Python,请停下来切换到正确的环境。
第 1 步:记录每次尝试的日志
逐一修复时,为每次启动保存日志:
$ts = Get-Date -Format 'yyyyMMdd_HHmmss'
New-Item -ItemType Directory -Force .\repair_logs | Out-Null
$out = ".\repair_logs\attempt_${ts}_stdout.log"
$err = ".\repair_logs\attempt_${ts}_stderr.log"
Start-Process -FilePath ".\python_embeded\python.exe" `
-ArgumentList @("-s", "ComfyUI\main.py", "--windows-standalone-build") `
-WorkingDirectory (Get-Location) `
-RedirectStandardOutput $out `
-RedirectStandardError $err `
-PassThru然后读取 stderr 日志的末尾部分:
Get-Content $err -Tail 200只安装第一个真实阻断报错所指明的包,然后再次启动并保存新日志。
第 2 步:确认端口 8188 归属后再判断成功
实验中,http://127.0.0.1:8188/ 返回了 200,但那是来自另一个用户文件夹(如 C:\Users\<you>\Documents\ComfyUI)的另一个 ComfyUI 进程,而非损坏的实验室进程。
声明成功前,请先检查端口归属:
Get-NetTCPConnection -LocalPort 8188 -ErrorAction SilentlyContinue |
Select-Object LocalAddress,LocalPort,State,OwningProcess
Get-CimInstance Win32_Process |
Where-Object { $_.CommandLine -like "*ComfyUI*main.py*" } |
Select-Object ProcessId,CommandLine如果 8188 已被占用,修复期间请在另一个干净端口上启动损坏的环境:
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --port 8191只有来自同一便携版根目录的进程才算作有效证明。
第 3 步:安装 Torch 前后均需验证
如果日志提示 No module named 'torch',从默认索引安装 torch 可能满足导入要求,但得到的是仅支持 CPU 的版本。请从 PyTorch 官方安装选择器 选择匹配的 CUDA wheel,并通过 embedded Python 执行:
.\python_embeded\python.exe -s -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cuXXX将 cuXXX 替换为你的 PyTorch build 支持的 CUDA wheel 标签。不要把第三方镜像加进这条主命令。然后在同一嵌入式 Python 中验证:
.\python_embeded\python.exe -s -c "import torch; print(torch.__version__, torch.version.cuda, torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'no cuda')"只有当 CUDA 版本不是 None,且 CUDA 可用性为 True 时,才继续后续修复。
第 4 步:将前端包和模板包视为 ComfyUI 版本化包
当日志提示:
comfyui-frontend-package is not installed.在选择版本之前,请先查看你自己的 ComfyUI\requirements.txt。
实验中,不指定版本安装前端包后得到:
ComfyUI frontend version: 1.43.18
required_frontend_version: 1.42.15虽然可以正常工作,但更稳妥的公开建议是:如果版本已在本地 ComfyUI 代码中固定,请复制其所要求的版本号。
同样适用于:
comfyui-frontend-packagecomfyui-workflow-templatescomfyui-embedded-docs
第 5 步:用多于浏览器的方式验证恢复情况
实验室最终启动命令为:
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --port 8191健康信号包括:Starting server、包含你的 GPU 的 Device: cuda:0 行,以及前端版本信息。
然后验证端点:
Invoke-RestMethod http://127.0.0.1:8191/system_stats
Invoke-RestMethod http://127.0.0.1:8191/object_info
.\python_embeded\python.exe -s -m pip check健康结果应能报告预期的 CUDA/Torch runtime、/object_info 节点数量、核心节点(如 CheckpointLoaderSimple、KSampler)存在,并且 pip check 返回 No broken requirements found.。
什么是阻断项,什么只是警告?
| 日志行 | 是否阻断? | 处理方式 |
|---|---|---|
服务器启动前出现 ModuleNotFoundError: No module named 'sqlalchemy' | 是 | 在 ComfyUI 的嵌入式 Python 中安装 SQLAlchemy,然后重启 |
ModuleNotFoundError: No module named 'torch' | 是 | 安装 Torch,然后验证 CUDA,而不仅仅是导入成功 |
comfyui-frontend-package is not installed | 是 | 安装本地 ComfyUI 所需版本的前端包 |
IMPORT FAILED: nodes_math.py | 部分 | 服务器可以启动,但该节点缺失;安装 simpleeval |
出现 Starting server | 否 | 服务器已启动;继续进行端点验证 |
Found comfy_kitchen backend triton: {'available': False, ...} | 通常否 | 忽略,除非工作流确实需要 Triton |
/system_stats 返回预期的 GPU 信息 | 否 | 运行时存活的良好信号 |
逐包安装还是一次性安装所有依赖?
参考以下决策:
| 情况 | 更好的选择 |
|---|---|
| 正在诊断一个未知的损坏便携版环境 | 逐包安装,重启,读取下一条日志 |
| 第一个错误是某个自定义节点缺少某个包 | 安装该节点的包或其 requirements |
| Torch 可以导入但 CUDA 为 false | 优先修复 CUDA Torch wheel |
| Torch/CUDA 均正常 | 避免使用可能替换它的大范围命令 |
| 正在创建全新的干净环境 | pip install -r ComfyUI\requirements.txt 是合理的 |
盲目执行 pip install -r ComfyUI\requirements.txt 对于手动全新安装是可以接受的,但当你需要了解具体是什么出了问题时,这并不是最佳的追溯式修复循环。
不要做的事
- 当 ComfyUI 使用
python_embeded时,不要使用系统pip - 不要假设 8188 端口上的浏览器页面属于你正在修复的环境
- 不要将 CPU 版 Torch 导入成功视为 CUDA 成功
- 当你想了解下一条日志变化时,不要粘贴长串包列表
- 不要将
Starting server之后的每条警告都视为致命错误 - 不要在保存工作流、模型和自定义节点之前删除环境
Wonderful Launcher 如何提供帮助
这套修复过程中最难的部分不是记住包名,而是整个循环:
- 启动
- 捕获第一个真实错误
- 修复正确的 Python 环境
- 再次启动
- 区分阻断项与警告
- 验证应用是否真正存活
Wonderful Launcher 正是围绕这套恢复循环构建的。它让环境边界和启动日志更易于分析,尤其是在便携版 ComfyUI 安装经过多次插件修改之后。
相关指南
- ModuleNotFoundError: No module named 'sqlalchemy' in ComfyUI
- comfyui-frontend-package is not installed in ComfyUI
- ModuleNotFoundError: No module named 'torch' in ComfyUI
- ModuleNotFoundError: No module named 'transformers' in ComfyUI
- ModuleNotFoundError: No module named 'kornia' in ComfyUI
- ModuleNotFoundError: No module named 'spandrel' in ComfyUI
- ModuleNotFoundError: No module named 'pydantic_settings' in ComfyUI
- ModuleNotFoundError: No module named 'simpleeval' in ComfyUI
- ModuleNotFoundError: No module named 'yaml' in ComfyUI
- ModuleNotFoundError: No module named 'PIL' in ComfyUI
- ModuleNotFoundError: No module named 'safetensors' in ComfyUI
- ModuleNotFoundError: No module named 'einops' in ComfyUI
- ModuleNotFoundError: No module named 'scipy' in ComfyUI
- ModuleNotFoundError: No module named 'torchsde' in ComfyUI
- ModuleNotFoundError: No module named 'av' in ComfyUI
- ModuleNotFoundError: No module named 'aiohttp' in ComfyUI
- ModuleNotFoundError: No module named 'requests' in ComfyUI
- OpenGL dependencies not available in ComfyUI
- ComfyUI 启动失败
- ComfyUI 依赖冲突
- ModuleNotFoundError: No module named 'triton' in ComfyUI
- Torch 未编译 CUDA 支持
来源参考
先按上面的步驟定位根因。还卡住时,可以下载 Wonderful Launcher 检查目前机器;启动器原生修复、任务日誌和執行階段检查会集中在一起。credits 只用於图片生成和按量工具。
下载 Wonderful Launcher查看 credits 方案这篇文件解決了你的問题嗎?
你的回饋会帮助我们優先補強真實 ComfyUI 排障文件。