クリエイティブ実践ガイド

ComfyUIのカスタムノードで依存関係が衝突したときの切り分け方

ComfyUIのカスタムノードで依存関係が衝突したときの切り分け方
目次

カスタムノードを追加・更新した直後からComfyUIが起動しなくなった場合、いきなりPython環境を作り直したり、すべてのパッケージを更新したりすると、かえって原因を追えなくなる。

まずは壊れる直前に何を変えたかと、最初に出たエラーを残したまま、カスタムノードを減らしていく

起動ログの最初のエラーを保存する

画面に表示された最後の一行だけでなく、起動ログに出た最初の例外やimport failed周辺を保存する。

同時に次も記録しておく。

ComfyUIのバージョン:
使っているPython環境:
最後に正常起動した日:
直前に追加・更新したカスタムノード:
最初に出たエラー:

あとから何度もパッケージを入れ替える前の状態を残しておくことが重要だ。

ComfyUIが実際に使っているPythonを確認する

ComfyUI Desktop、Portable版、手動インストールでは、Python環境の扱いが同じとは限らない。

別のシステムPythonへpip installしても、ComfyUIが使っている環境には反映されないことがある。逆に、ComfyUI側の環境で無条件にパッケージを更新すると、別のカスタムノードが必要としているバージョンと衝突する場合がある。

まず「どのPythonに対して操作しているのか」を確認してから変更する。

直前に変更したカスタムノードから外す

最初に、直前に追加または更新したカスタムノードを無効化し、ComfyUI本体に近い状態で起動する。

そこで起動できるなら、外したノードを一つずつ戻す。

単独では動くノードAとノードBを同時に有効にしたときだけ失敗するなら、両方が要求しているPythonパッケージやバージョンを比較する。

最小構成で再現できる状態を作る

原因候補が絞れたら、次のように記録する。

  • ノードAの名前とリビジョン
  • ノードBの名前とリビジョン
  • 衝突している可能性があるパッケージと現在のバージョン
  • 起動時の正確なエラー
  • ノードAだけを有効にした結果
  • ノードBだけを有効にした結果
  • 両方を有効にした結果

この形まで絞れれば、配布元の不具合報告で既知の問題を探す場合や、新しく報告する場合にも再現条件を伝えやすい。

「全部更新する」は最後の手段にする

依存関係の衝突では、あるノードが新しいパッケージを必要とし、別のノードが古いバージョンを前提にしていることがある。

その状態で一括更新をすると、一方が直って別のノードが壊れることもある。まず衝突する組み合わせを特定し、各ノードの公式な導入手順や対応バージョンを確認する方が安全だ。

カスタムノードは単なる画面部品ではなく、Pythonコードや追加パッケージを実行する。新しく導入する前の安全確認については、カスタムノードの安全チェックを別に確認しておく。

起動しなくなったときは、環境全体を壊して作り直す前に、直前の変更、Python環境、最初のエラー、カスタムノードの組み合わせを順番に絞る方が原因へたどり着きやすい。

まとめ

  • カスタムノード追加後の不具合で、最初から全パッケージ更新や再インストールをしない
  • 起動ログと、直前に追加・更新したノードを先に記録する
  • カスタムノードを一度減らし、ComfyUI本体に近い最小構成で起動を確認する
  • ノードを一つずつ戻し、衝突する組み合わせとパッケージのバージョンを記録する
同じテーマから

サイト内検索