ComfyUI 便攜版依賴損壞後,按一個報錯一個包修啟動
基於真實 Windows 便攜版 ComfyUI 修復過程:從 No module named sqlalchemy、torch、frontend package 到 kornia、PyOpenGL,一個包一次啟動驗證。
如果 Windows 便攜版 ComfyUI 因為依賴缺失啟動失敗,不要一上來就大範圍重裝。
更穩的實戰循環是:
- 啟動 ComfyUI
- 只讀日誌裡的第一條新阻塞
- 在
python_embeded裡只裝這一個包 - 再啟動一次
- 一直重複,直到網頁、
/system_stats、/object_info和pip check都健康
這篇教程來自 2026-05-18 的一次真實破壞環境修復。這個實驗環境一開始報 ModuleNotFoundError: No module named 'sqlalchemy',最後在 RTX 4070 Ti SUPER 上恢復到 CUDA 版 PyTorch 正常啟動。
實戰規則
裝一個包,啟動一次,再看新日誌。用戶複製什麼報錯來搜,教程就應該讓他看到這個報錯是怎麼一步步變成下一個報錯,最後變成成功啟動的。
案例審核的適用邊界
這篇 Runbook 用於環境本身連續缺少核心啟動依賴的情況,不是通用的自定義節點修復手冊。
| 目前證據 | 更合適的處理路徑 |
|---|---|
在 Starting server 之前停止,而且每次重啟都暴露新的核心缺失套件 | 使用本頁「一次一個套件」的便攜版修復循環 |
只有一個自定義節點出現 IMPORT FAILED | 先看 ComfyUI 插件匯入失敗 |
| 工作流有紅色節點,但 ComfyUI 可以正常啟動 | 看 ComfyUI 缺失節點,再確認插件是否註冊 |
| Torch 可以匯入,但 CUDA 不可用 | 先看 Torch 未編譯 CUDA 支持,不要再加裝其他套件 |
| 節點已註冊,但模型檔案缺失 | 看 Safetensors 應放在哪裡 或 找不到模型檔案 |
重要的驗證規則是:離線 import 成功、瀏覽器頁面能打開,或終端顯示「已安裝」都不足以證明修復完成。真正被修復的便攜環境必須是啟動 ComfyUI 的那個程序、佔用預期連接埠、能提供 /system_stats 與 /object_info,並通過相關的執行期檢查。
什麼時候用這篇
適合這些情況:
- 你用的是 Windows 便攜版 ComfyUI
- 啟動命令使用
python_embeded\python.exe - ComfyUI 卡在
Starting server之前 - 你看到的是
ModuleNotFoundError: No module named 'sqlalchemy'、No module named 'torch'、comfyui-frontend-package is not installed這類真實報錯 - 你想保留已有模型、工作流和 custom nodes
- 你想知道“到底是哪一個包讓日誌往前走了”,而不是直接重裝一堆東西
如果只是某個 custom node 缺一個普通包,先修那個節點,不要套用這篇完整流程。
這篇最適合解決什麼
這篇 runbook 最適合這些情況:
- 壞掉的是官方 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 | 日誌進入顯存檢測,然後新報錯變成 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 | 服務能啟動,但部分內置 extras 節點導入失敗 |
服務啟動後還不算完全乾淨。日誌裡仍然有一些內置 extras 節點和功能包缺失,所以繼續按同樣方式清理:
| 清理信號 | 只做一個動作 | 結果 |
|---|---|---|
No module named 'kornia',影響 post-processing、canny、morphology 節點 | pip install kornia | 節點數從 657 增加到 685 |
No module named 'spandrel',影響 nodes_upscale_model.py | pip install spandrel | 節點數增加到 687 |
多次出現 No module named 'pydantic_settings',解析 pyproject.toml 失敗 | pip install pydantic-settings | 啟動日誌從大量重複告警變短 |
OpenGL dependencies not available | 先 pip install PyOpenGL,重啟後再 pip install glfw | GLSL/OpenGL 節點恢復 |
No module named 'simpleeval',影響 nodes_math.py | pip install simpleeval | 日誌裡不再有 IMPORT FAILED |
comfyui-workflow-templates is not installed | pip install comfyui-workflow-templates | workflow templates 告警消失 |
comfyui-embedded-docs package not found | pip install "comfyui-embedded-docs==0.4.4" | embedded docs 告警消失 |
WARNING: blake3 package not installed | pip install blake3 | blake3 告警消失 |
| 陌生的 ComfyUI 內部套件匯入失敗 | 先檢查本地 ComfyUI requirements 與官方發布元資料 | 避免把 import 名直接當作 PyPI 套件名 |
最終日誌裡仍然會提示 comfy_kitchen 的 Triton backend 不可用,因為沒有安裝 triton。這不是啟動阻塞點:CUDA 和 eager backend 已經可用,ComfyUI 也能正常打開。
第 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然後看日誌尾部:
Get-Content $err -Tail 200只處理第一條真正的阻塞錯誤。裝完一個包,再啟動一次,保存新的日誌。
第 2 步:不要只看到 8188 能打開就宣佈成功
修復時,http://127.0.0.1:8188/ 可能返回 200,但那不一定是你正在修的那套環境;也可能是另一個用戶目錄裡的 ComfyUI,例如 C:\Users\<you>\Documents\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 被別的 ComfyUI 佔了,修復時用一個乾淨端口:
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --port 8191只有同一個便攜包根目錄啟動的進程,才算這套環境真的起來了。
第 3 步:Torch 不只是能 import,還要有 CUDA
如果日誌裡出現:
ModuleNotFoundError: No module named 'torch'直接 pip install 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 換成你支援的 CUDA wheel 標籤。不要把第三方鏡像加進這條主命令。然後在同一個 embedded 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 時,才繼續後續修復。不要默認相信 pip install torch 一定是 GPU 版。
第 4 步:frontend/template/docs 包要看本地 requirements
如果日誌說:
comfyui-frontend-package is not installed.先看你本地的 ComfyUI\requirements.txt。
這次實驗裡,直接安裝 frontend 包得到的是:
ComfyUI frontend version: 1.43.18
required_frontend_version: 1.42.15它可以啟動,但公開教程裡更穩的寫法是:如果 requirements 固定了版本,就按你本地 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 行,以及 frontend 版本資訊。
繼續驗證接口和依賴:
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',且 server 還沒啟動 | 是 | 在 ComfyUI 的 embedded Python 裡安裝 SQLAlchemy,然後重啟 |
ModuleNotFoundError: No module named 'torch' | 是 | 安裝 Torch 後必須驗證 CUDA,不只看 import |
comfyui-frontend-package is not installed | 是 | 按本地 ComfyUI 需要的版本安裝 frontend 包 |
IMPORT FAILED: nodes_math.py | 部分影響 | 服務能啟動,但數學表達式節點不可用;安裝 simpleeval |
出現 Starting server | 否 | 服務已經起來了,繼續用接口驗證 |
Found comfy_kitchen backend triton: {'available': False, ...} | 通常不是 | 除非具體工作流需要 Triton,否則先不用處理 |
/system_stats 返回正確 GPU | 否 | 說明 runtime 已經活著 |
一個個裝,還是一次裝 requirements
按這個判斷:
| 情況 | 更穩的動作 |
|---|---|
| 正在診斷一個不知道壞在哪的便攜環境 | 一個包,重啟,看下一條日誌 |
| 第一條錯誤來自某個 custom node | 修那個節點的包或 requirements |
| Torch 能 import 但 CUDA 是 false | 先修 CUDA 版 Torch wheel |
| Torch/CUDA 仍健康 | 避免會替換 GPU 棧的大範圍命令 |
| 全新幹淨安裝 | pip install -r ComfyUI\requirements.txt 可以是正常動作 |
對全新環境來說,一次性安裝 requirements 沒問題。但對一個你想保住現狀的便攜環境來說,逐條日誌修復更容易知道到底發生了什麼。
不要做這些事
- 不要用系統
pip去修 embedded Python 裡的 ComfyUI - 不要只因為 8188 能打開,就認定當前壞環境修好了
- 不要把 CPU Torch import 成功當成 CUDA 成功
- 不要為了診斷問題,一次粘貼很長的包列表
- 不要把
Starting server之後的每一條 warning 都當成致命錯誤 - 不要在備份模型、工作流和 custom nodes 之前刪除環境
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
- OpenGL dependencies not available in ComfyUI
- ComfyUI 依賴衝突
- ComfyUI 中 Triton 缺失或不可用
- Torch Not Compiled With CUDA Enabled
參考來源
先按上面的步驟定位根因。還卡住時,可以下載 Wonderful Launcher 檢查目前機器;啟動器原生修復、任務日誌和執行階段檢查會集中在一起。credits 只用於圖片生成和按量工具。
下載 Wonderful Launcher查看 credits 方案這篇文件解決了你的問題嗎?
你的回饋會幫助我們優先補強真實 ComfyUI 排障文件。