AI活用

ComfyUIのImport Failedを直す方法|依存関係エラーの切り分け手順

ComfyUIのImport Failedは本体の故障ではなく、特定のcustom nodeのPython importが失敗した状態です。起動logの「Import times for custom nodes」から対象を特定し、ModuleNotFoundErrorの読み方、Python実体の確認、nodeの一時無効化、再発防止までを順に示します。

この記事の目次
  1. 結論:「どのnodeが・どのmoduleで・どのPythonで」失敗したかを順に確定する
  2. Import Failedは何が失敗しているのか
  3. 起動logから対象nodeを特定する
  4. logの場所
  5. ModuleNotFoundErrorをどう読むか
  6. 依存不足を再現して読む順番を確かめる
  7. Python環境を確認する
  8. 問題のnodeを一度無効化する
  9. 再発を防ぐ
  10. よくある質問
  11. Import Failedのnodeを放置しても大丈夫ですか
  12. pip installは成功するのに、起動すると同じエラーが出ます
  13. torchやnumpyを要求されたので入れたら、ComfyUI全体が動かなくなりました
  14. まとめ

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.pyload_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.pycomfy/配下の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は下から読まないでください。画面の最後に赤く残っているのは多くの場合「結果」であって「原因」ではありません。

  1. 「Import times for custom nodes:」の一覧を探し、「(IMPORT FAILED)」が付いた行のpathを控える(複数あればすべて)
  2. その一覧より上に戻り、控えたpathを含む「Cannot import … module for custom nodes:」の行を探す
  3. その行の直前にあるtracebackを上から読み、最初のFile "…"行と最後の例外行(ModuleNotFoundErrorImportErrorなど)を組で控える

一覧の形式は本体のコードで決まっています。

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 cv2opencv-pythonimport PILPillow
  • 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側が追従していないかのどちらかです。zzzcomfy.folder_pathsのような本体moduleなら後者で、nodeの更新か本体のversionを戻すかの判断になります。

依存不足を再現して読む順番を確かめる

壊れても困らないテスト環境(別のvenvかportableのコピー)で意図的に依存不足を作り、logの読み方を練習しておくと実際の障害で迷いません。結果は環境で変わるため、手順と記録欄だけ示します。

  1. テスト環境に、requirements.txtを持つcustom nodeを1つ入れ、依存を入れずに起動する
  2. 「Import times for custom nodes」で「(IMPORT FAILED)」の行を探し、pathを記録する
  3. 上に戻って「Cannot import」行と、直前のtracebackの最初のFile行・最後の例外行を記録する
  4. requirements.txtで該当package名を確認し、正しいPythonに入れて再起動する
  5. 同じ一覧で「(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
  1. 「(IMPORT FAILED)」のnodeだけを.disabledにして起動し、他が正常か確認する
  2. それでも不調なら、--disable-all-custom-nodesを付けて起動し、custom node全体が原因かどうかを分ける(公式のtroubleshootingでも最初に勧められている手順)
  3. 全体を切って直るなら、半分ずつ有効化して原因のnodeを絞る。comfy-cliがあればcomfy-cli node bisect startで同じことを半自動で行える
  4. 原因が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層ずつの更新で再発を防いでください。

スポンサーリンク