ComfyUIのImport Failedは、本体が壊れたのではなく、特定のcustom nodeのPython importが失敗し、そのnodeだけ登録されなかった状態です。起動logの「Import times for custom nodes」で対象を特定し、最初に出たエラー行からModuleNotFoundErrorのpackage名を読み、Pythonの実体が合っているかを確認してから対処します。
情報確認日:2026年8月22日(日本時間)
結論:「どのnodeが・どのmoduleで・どのPythonで」失敗したかを順に確定する
責任範囲
- Import Failedが本体エラーとどう違うかを、ComfyUIの読み込み処理から説明する
- 起動logの読む順番と、対象nodeを特定する方法を示す
- ModuleNotFoundErrorから不足packageを特定し、闇雲な
pip installを避ける手順を示す - Desktop・portable・venvでPython実体が異なる点の確認方法を示す
- VRAM不足・model不足・一般的な生成失敗と、Manager操作の基本は別記事に送る
Import Failedは何が失敗しているのか
ComfyUIは起動時にcustom_nodes配下のdirectory(または.py file)を1つずつPython moduleとしてimportし、NODE_CLASS_MAPPINGSを読んでnodeを登録します。nodes.pyのload_custom_nodeで例外が起きると、tracebackをlogに出して「Cannot import (path) module for custom nodes: (例外)」と記録し、次のmoduleに進みます。
つまりImport Failedは、1つのcustom nodeがimportで止まり「存在しない」扱いになっただけです。本体は起動を続け、他のnodeは使えます。
| 症状 | Custom NodeのImport Failed | ComfyUI本体のエラー |
|---|---|---|
| 起動 | 完了し、UIが開く | 途中で止まる、またはUIが開かない |
| logの位置 | 「Import times for custom nodes」一覧に「(IMPORT FAILED)」 | 一覧より前、またはmain.py・comfy/配下のtraceback |
| 影響範囲 | そのnodeを使うWorkflowだけがMissing Node扱い | すべてのWorkflow |
| よくある原因 | 依存packageの不足・version不一致、本体APIの変更 | Python・torchの不整合、本体の更新失敗 |
例外として、本体同梱のcomfy_extras/のnodeが読み込めなかった場合は「WARNING: some comfy_extras/ nodes did not import correctly.」と「IMPORT FAILED: (node名)」が出ます。これはcustom nodeではなく本体の依存が欠けている可能性が高く、対処先が変わります。
起動logから対象nodeを特定する
logは下から読まないでください。画面の最後に赤く残っているのは多くの場合「結果」であって「原因」ではありません。
- 「Import times for custom nodes:」の一覧を探し、「(IMPORT FAILED)」が付いた行のpathを控える(複数あればすべて)
- その一覧より上に戻り、控えたpathを含む「Cannot import … module for custom nodes:」の行を探す
- その行の直前にあるtracebackを上から読み、最初の
File "…"行と最後の例外行(ModuleNotFoundErrorやImportErrorなど)を組で控える
一覧の形式は本体のコードで決まっています。
Import times for custom nodes:
0.0 seconds: /path/to/ComfyUI/custom_nodes/example-node-a
0.3 seconds (IMPORT FAILED): /path/to/ComfyUI/custom_nodes/example-node-b
1.2 seconds: /path/to/ComfyUI/custom_nodes/example-node-c
秒数は読み込み時間で、失敗したnodeに「(IMPORT FAILED)」が付きます。pathは模式です。Managerの新UIにもImport Failedのフィルタがありますが、原因のtracebackはlogにしか残らないため、まずlogを見ます。
logの場所
手動installやportableでは起動したterminal(batch fileのconsole)に流れます。Desktopでは、Helpメニューの「Open Logs Folder」からlog folderを開くか、インスタンス管理画面のTerminalタブで確認できます。
ModuleNotFoundErrorをどう読むか
最後の行がModuleNotFoundError: No module named 'xxx'なら、nodeがimport xxxしようとして現在のPython環境に無かったということです。ここで急いでpip install xxxと打たない理由は2つあります。
- import名とpackage名は一致しないことがある(
import cv2はopencv-python、import PILはPillow) - packageは入っているのに、ComfyUIが使っているPythonとは別のPythonに入れている場合がある(次節)
正しい手順は、そのnodeのrequirements.txtで不足moduleに対応するpackage名とversion指定を確認し、ComfyUIが実際に使っているPythonに対してrequirements.txtごと入れることです。
# 手動install(venvを有効化した状態で)
cd ComfyUI/custom_nodes/<node directory>
pip install -r requirements.txt
# Windows portable(ComfyUI_windows_portable直下で)
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\<node directory>\requirements.txt
最後の例外行がImportError: cannot import name 'yyy' from 'zzz'なら、packageはあるがversionが合わないか、本体の内部APIが変わってnode側が追従していないかのどちらかです。zzzがcomfy.やfolder_pathsのような本体moduleなら後者で、nodeの更新か本体のversionを戻すかの判断になります。
依存不足を再現して読む順番を確かめる
壊れても困らないテスト環境(別のvenvかportableのコピー)で意図的に依存不足を作り、logの読み方を練習しておくと実際の障害で迷いません。結果は環境で変わるため、手順と記録欄だけ示します。
- テスト環境に、
requirements.txtを持つcustom nodeを1つ入れ、依存を入れずに起動する - 「Import times for custom nodes」で「(IMPORT FAILED)」の行を探し、pathを記録する
- 上に戻って「Cannot import」行と、直前のtracebackの最初の
File行・最後の例外行を記録する requirements.txtで該当package名を確認し、正しいPythonに入れて再起動する- 同じ一覧で「(IMPORT FAILED)」が消えたことを確認する
| 記録項目 | 記入欄 |
|---|---|
| 失敗したnodeのpath | |
最初のFile行(nodeのどのfileか) |
|
| 最後の例外行(例外の種類とmodule名) | |
requirements.txt上の対応package名とversion |
|
| packageを入れたPythonのpath | |
| 再起動後の一覧の表示 |
Python環境を確認する
最も多い遠回りは「入れたはずのpackageが無いと言われる」ケースで、原因はComfyUIが使うPythonとpipを打ったPythonが別物であることです。配布形態ごとにPythonの実体が違います。
| 配布形態 | Pythonの実体 | packageを入れる方法 |
|---|---|---|
| Windows portable | 同梱のpython_embeded\python.exe |
python_embeded\python.exe -m pip install …と、実体を明示して実行する |
| 手動install(venv) | 自分で作ったvenvのPython | そのvenvを有効化してからpip install … |
| ComfyUI Desktop | アプリが管理するインスタンスごとの環境 | Desktopのインスタンス管理画面(Terminalタブ)から操作する。直接のpip手順は公式ドキュメントで最新を確認 |
portableでPCに別のPythonが入っていると、ただpip installと打てばそちらに入ります。どのPythonが使われているか分からないときは、次のように確認します。
# ComfyUIが使うPythonで実行する(portableなら python_embeded\python.exe に置き換える)
python -c "import sys; print(sys.executable)"
python -m pip show <package名>
sys.executableが起動logのPythonと同じpathなら、そこに入れたpackageはComfyUIから見えます。違っていれば、どれだけ入れ直しても解決しません。
問題のnodeを一度無効化する
原因が絞れないときは、問題のnodeを退避して本体が正常に起動することを先に確かめます。ComfyUIは、directory名の末尾が.disabledのmoduleを読み飛ばします。Managerからの無効化も同じ仕組みで、folderは削除されません。
# custom_nodes 配下で、問題のnodeを一時的に無効化する
mv example-node-b example-node-b.disabled
# 戻すとき
mv example-node-b.disabled example-node-b
- 「(IMPORT FAILED)」のnodeだけを
.disabledにして起動し、他が正常か確認する - それでも不調なら、
--disable-all-custom-nodesを付けて起動し、custom node全体が原因かどうかを分ける(公式のtroubleshootingでも最初に勧められている手順) - 全体を切って直るなら、半分ずつ有効化して原因のnodeを絞る。comfy-cliがあれば
comfy-cli node bisect startで同じことを半自動で行える - 原因が1つに決まったら、依存の入れ直し・nodeの更新・別versionへの切り替え・削除のいずれかを選ぶ
原因確定の前に「Try fix」や「Update All」を押すのは勧めません。原因が分からないまま使うと、結果がどうあれ学びが残りません。Managerでの導入・更新・切り戻しはComfyUI Manager新UIの使い方で整理しています。
再発を防ぐ
Import Failedの多くは「何かを入れた・更新した直後」に起きます。入れる前・更新する前に記録を残していれば、戻す先が分かります。
- custom nodeを入れる前・本体を更新する前に、Managerまたは Desktop のsnapshotを保存した
- 本体のversion(Settings > About)と、主要custom nodeのversionまたはcommitを記録した
- 本体・Frontend・Manager・custom nodeを同時に更新せず、1層ずつ更新して代表Workflowを実行した
- 新しいnodeを入れたら、起動logの「Import times for custom nodes」を一度は目で確認した
- packageは必ずComfyUIが使うPythonに入れた(portableは
python_embeded\python.exe -m pip) - 使っていないcustom nodeは
.disabledにするか削除した
snapshotからの復元手順と、VRAMやmodel側の生成失敗は、切り分けが異なるためそれぞれ別記事で扱います。
よくある質問
Import Failedのnodeを放置しても大丈夫ですか
本体の動作には影響しません。ただし起動のたびにtracebackがlogに出て、本当に見たいエラーが埋もれます。使わないなら.disabledにするか削除してください。
pip installは成功するのに、起動すると同じエラーが出ます
packageを入れたPythonとComfyUIが使うPythonが違います。sys.executableを確認し、portableならpython_embeded\python.exe -m pipで入れ直してください。
torchやnumpyを要求されたので入れたら、ComfyUI全体が動かなくなりました
custom nodeのrequirements.txtが本体と異なるtorchやnumpyのversionを指定し、本体側の依存を上書きしたケースです。snapshotがあれば戻し、無ければ本体のrequirements.txtを入れ直します。以後そのnodeはversion指定を確認してから扱います。
まとめ
Import Failedは、1つのcustom nodeのimportが失敗して登録されなかっただけで、本体は動いています。起動logの「Import times for custom nodes」で「(IMPORT FAILED)」のnodeを特定し、上に戻ってtracebackの最初のFile行と最後の例外行を組で読みます。
ModuleNotFoundErrorはrequirements.txtでpackage名を確認し、ComfyUIが使っているPythonの実体に対して入れます。原因が絞れないときは.disabledで退避して本体の正常起動を先に確かめ、更新前のsnapshotと1層ずつの更新で再発を防いでください。