問題の概要:カスタムノードがワークフローに表示されない
ComfyUIは、コミュニティで開発された多数のカスタムノードを追加することで、その機能を大幅に拡張できます。しかし、カスタムノードをcustom_nodesフォルダにインストールしたにもかかわらず、ComfyUIを再起動してもワークフローエディタのノード一覧に表示されない、または以下のようなエラーメッセージがターミナル/コンソールに出力される問題が頻繁に発生します。
# 代表的なエラーメッセージ例
ERROR: Could not import node: ComfyUI-Custom-Node-Pack
WARNING: Failed to load node: /path/to/custom_nodes/ComfyUI-Example-Node
Traceback (most recent call last):
File "comfyui_folder/server.py", line 60, in load_custom_nodes
module_spec.loader.exec_module(module)
ModuleNotFoundError: No module named 'some_required_package'
この問題が発生すると、特定のLoRAモデルを読み込むノードや、画像処理の特殊効果を追加するノードなど、必要な機能が使えず、ワークフローの構築が行き詰まってしまいます。
原因の解説:なぜカスタムノードは読み込みに失敗するのか?
カスタムノードの読み込み失敗は、単一の原因ではなく、複数の要因が絡み合っていることがほとんどです。主な原因は以下の4つに分類できます。
1. Pythonパッケージの依存関係の不足
ほとんどのカスタムノードは、torchやnumpy以外の追加ライブラリ(例:opencv-python, scipy, pillowなど)を必要とします。これらの依存パッケージがComfyUIが使用するPython環境にインストールされていない場合、ノードのインポート時にModuleNotFoundErrorが発生します。
2. ノードファイルの配置場所または構造の誤り
カスタムノードのリポジトリをcustom_nodesフォルダにクローンした際、余計なサブフォルダ階層ができてしまい、ComfyUIが__init__.pyやnode.pyといった主要ファイルを見つけられないケースがあります。正しい構造はcustom_nodes/ノード名フォルダ/の直下に実行ファイルが配置されている状態です。
3. ComfyUI本体またはノードのバージョン非互換性
カスタムノードは特定のComfyUIのAPIバージョンに依存して開発されています。ComfyUIを頻繁に更新している場合、古いカスタムノードが新しいバージョンと互換性を失い、読み込みに失敗することがあります。逆に、ノードが非常に新しいAPIを使用していて、古いComfyUIでは動作しないこともあります。
4. ノード定義の構文エラー
ノードのPythonスクリプト自体に構文エラーや、実行時エラー(未定義の変数参照など)があると、インポートの段階で失敗します。これはノード開発者のミスであることもあれば、ユーザーの環境に合わせた修正が不十分な場合もあります。
解決方法:ステップバイステップで問題を切り分け、修正する
以下に、問題の原因を体系的に特定し、解決するための7つのステップを紹介します。上から順に試すことをお勧めします。
ステップ1: ComfyUIの再起動とエラーログの確認
まず、ComfyUIを完全に終了し、再起動します。多くの場合、単純な再読み込みで解決します。再起動後も問題が続く場合は、ComfyUIを起動したターミナル(コマンドプロンプト)の出力を最初から最後まで注意深く確認してください。エラーメッセージの詳細が解決の最大の手がかりです。
ステップ2: 依存パッケージのインストール
エラーログにModuleNotFoundError: No module named 'xxxx'と表示された場合、そのモジュール(’xxxx’)をインストールする必要があります。ComfyUIが使用するPython環境で以下のコマンドを実行します。
# ComfyUIのインストールフォルダ内で、その環境のpipを使用
# Windows (venv使用の場合)
.venvScriptspip install opencv-python
# Linux/macOS (venv使用の場合)
./venv/bin/pip install opencv-python
# または、ComfyUIに同梱のpython.exeを直接指定(Windows例)
python_embededpython.exe -m pip install opencv-python
多くのカスタムノードはrequirements.txtファイルを同梱しています。その場合は、そのファイルを使って一括インストールが可能です。
.venvScriptspip install -r custom_nodesComfyUI-Node-Namerequirements.txt
ステップ3: ノードフォルダの構造を確認する
custom_nodesフォルダ内の構造を確認します。よくある間違いは、Gitクローン時に作成される「フォルダの中のフォルダ」構造です。
# ❌ 間違った構造 (二重フォルダ)
custom_nodes/
└── ComfyUI-Example-Node/ # リポジトリ名のフォルダ
└── ComfyUI-Example-Node/ # 実際のノードファイルが入っているフォルダ
├── __init__.py
├── node.py
└── ...
# ✅ 正しい構造
custom_nodes/
└── ComfyUI-Example-Node/ # ノードファイルが直下にある
├── __init__.py
├── node.py
└── ...
間違った構造の場合は、内側のフォルダの内容を1つ上の階層(リポジトリ名のフォルダ)に移動させ、空になった内側のフォルダは削除します。
ステップ4: ComfyUIのマネージャーを使用する(推奨)
手動インストールに問題がある場合は、ComfyUI Managerというカスタムノード自体をインストールしましょう。このマネージャーは、他のカスタムノードの検索、インストール、更新、依存関係の解決をGUIから行える強力なツールです。
1. ComfyUI Managerのリポジトリをcustom_nodesフォルダに手動でクローンまたはダウンロードします。
2. ComfyUIを再起動し、ワークフローに「ComfyUI Manager」関連のノードが追加されていることを確認します。
3. 「Manager」ノードを使用して、問題のノードを検索し、マネージャー経由で再インストールします。マネージャーは自動的に依存関係を処理してくれます。
ステップ5: ComfyUIとノードのバージョンを調整する
互換性の問題が疑われる場合、以下の方法を試します。
- ComfyUIを更新する:
git pullでComfyUI本体を最新版に更新します。 - ノードを更新する: ノードフォルダ内で
git pullを実行し、ノードを最新版に更新します。 - ノードを過去の安定版に戻す: ノードのGitHubリリースページやコミット履歴から、少し古い安定版を探してインストールし直します。
ステップ6: ノードファイルを直接デバッグする
上級者向けの方法です。エラーログで特定のファイルと行番号が指摘されている場合、そのファイルをテキストエディタで開き、問題の箇所を確認します。単純なタイプミスであれば自分で修正できる可能性があります。また、ノードの__init__.pyファイルを開き、インポート文を一時的にコメントアウトして、どのモジュールで失敗しているかを特定することもできます。
ステップ7: クリーンインストールを試みる
これらすべてを試しても解決しない最終手段として、以下の手順を実行します。
- 問題のカスタムノードフォルダを
custom_nodesから一時的に別の場所に移動(バックアップ)。 - ComfyUIを再起動し、正常に起動することを確認。
- ComfyUI Managerを通じて、または
git cloneコマンドでノードを一から再インストール。 - 依存パッケージをインストールし、ComfyUIを再起動。
コード例・コマンド例:トラブルシューティングの実践
「ComfyUI-Impact-Pack」という人気ノードが読み込まれない具体的なシナリオを想定したコマンド例です。
# 1. エラーログを確認 (ターミナルに以下のエラーが表示されたと仮定)
# ERROR: Could not import node: ComfyUI-Impact-Pack
# ModuleNotFoundError: No module named 'skimage'
# 2. 不足しているパッケージ 'scikit-image' (skimage) をインストール
cd /path/to/ComfyUI
./venv/bin/pip install scikit-image
# 3. さらに別の依存関係も不足している可能性があるため、ノード付属のrequirements.txtでインストール
./venv/bin/pip install -r custom_nodes/ComfyUI-Impact-Pack/requirements.txt
# 4. ComfyUIを再起動
# (実行中のプロセスをCtrl+Cで停止後、再度起動スクリプトを実行)
python main.py --listen
まとめ・補足情報
ComfyUIのカスタムノード読み込み問題は、そのほとんどが「依存パッケージの不足」と「フォルダ構造の誤り」の2点に集約されます。最初にターミナルのエラーメッセージを丁寧に読み、それに従って必要なパッケージをインストールすることが最短の解決策です。
予防策として、以下の点を心がけると良いでしょう。
- ComfyUI Managerの導入を最初に行う: これにより、その他のノードのインストールと管理が格段に楽になります。
- 環境を分ける: 特に中級以上のユーザーは、ComfyUI用のPython仮想環境(venv)やDockerコンテナを用意することで、システムのPython環境との衝突を防げます。
- コミュニティを活用する: GitHubのIssueページやDiscordサーバー、RedditのComfyUIコミュニティでは、同じ問題に遭遇した人々の解決策が多く共有されています。エラーメッセージをそのまま検索してみましょう。
カスタムノードはComfyUIの可能性を無限に広げる要素です。読み込み時のトラブルは多少の手間ではありますが、体系的なアプローチで対処すれば、ほぼ確実に解決できます。本記事の手順を参考に、豊かなComfyUIの機能を存分に楽しんでください。