【ComfyUI】カスタムノードが読み込まれない時の原因と確実な解決手順

問題の概要:ComfyUIでカスタムノードが表示されない・読み込みエラーが発生する

ComfyUIは、その柔軟性から多くのユーザーがカスタムノードをインストールして機能を拡張します。しかし、しばしば「カスタムノードがワークスペースに表示されない」、「起動時にエラーメッセージが表示される」、「ノードを配置しても機能しない」といった問題に遭遇します。具体的なエラーメッセージとしては、以下のようなものがターミナルやコマンドプロンプトに表示されます。

# よくあるエラーメッセージの例
WARNING: Failed to load node: "ComfyUI-Custom-Sampler" due to: ModuleNotFoundError: No module named 'some_special_lib'
ERROR:    Could not import nodes from "custom_nodesComfyUI-Impact-Pack" because: ImportError: cannot import name 'IS_CHANGED' from 'server' 
Traceback (most recent call last):
...
[WARNING] Skipped 3 node modules due to load errors.

この問題が発生すると、必要な機能が使えずワークフローの構築が止まってしまいます。本記事では、この問題の根本原因と、初心者から中級者でも確実に実行できる解決手順を詳しく解説します。

原因の解説:なぜカスタムノードは読み込まれなくなるのか?

カスタムノードの読み込み失敗は、主に以下の4つの原因に分類されます。複数の原因が重なっている場合も多いです。

1. 依存関係(Pythonパッケージ)の不足

ほとんどのカスタムノードは、PyTorchやOpenCV、あるいは独自のライブラリに依存しています。これらのパッケージがComfyUIのPython環境にインストールされていないと、インポートエラーが発生します。

2. ノードの配置場所(パス)の問題

カスタムノードは、ComfyUI本体のディレクトリ構造内の決められた場所(通常はcustom_nodesフォルダ)に配置する必要があります。フォルダ名が間違っていたり、階層が深すぎたりすると、ComfyUIがノードを発見できません。

3. ComfyUI本体とのバージョン互換性の問題

カスタムノードは、特定のバージョンのComfyUI APIを前提として開発されています。ComfyUI本体をアップデートした後や、逆に古いComfyUIで新しいノードを使おうとすると、内部関数の呼び出しに失敗し読み込まれません。

4. ノードファイル自体のエラー(JSON/Pythonの文法エラー)

node_list.json.pyファイル内に構文エラーがあると、ComfyUIはそのノードモジュール全体の読み込みをスキップします。開発中のノードや、クローン時のファイル破損で起こり得ます。

解決方法:ステップバイステップで問題を切り分けて修正する

以下の手順を上から順番に試し、問題が解決するか確認してください。最も多い原因は手順1と2です。

手順1:依存パッケージをインストールする

多くのカスタムノードにはrequirements.txtまたはinstall.pyという依存関係定義ファイルが同梱されています。ComfyUIの環境でこれらを実行します。

具体的な操作:

  1. ターミナル(WindowsならコマンドプロンプトやPowerShell)を開きます。
  2. ComfyUIがインストールされているディレクトリに移動します。
  3. 問題のカスタムノードのフォルダ内にrequirements.txtがあるか確認します。
# 例: ComfyUIのインストールディレクトリに移動(パスは環境に合わせて変更)
cd C:ComfyUI_windows_portableComfyUI
# または
cd /home/user/ComfyUI

# requirements.txtを使ってインストール(仮想環境が有効な状態で)
pip install -r custom_nodes/ComfyUI-Node-Suite/requirements.txt

# install.pyが存在する場合
python custom_nodes/ComfyUI-Manager/install.py

注意点: ComfyUIのWindowsポータブル版を使用している場合、python_embededpython.exepython_embededScriptspip.exe をフルパスで指定する必要があるかもしれません。

手順2:ノードの配置場所とフォルダ構造を確認する

正しいディレクトリにノードが配置されているか確認します。ComfyUIは起動時にcustom_nodesフォルダをスキャンします。

ComfyUI/
├── comfy/          # 本体ソース
├── custom_nodes/   # ★カスタムノードはここに配置する★
│   ├── ComfyUI-Manager/
│   ├── ComfyUI-Impact-Pack/
│   └── your_custom_node/
├── models/
├── output/
└── comfyui.bat    # または main.py

Gitを使ってインストールした場合、custom_nodesフォルダ内に直接クローンされているか確認してください。フォルダ名にスペースや特殊文字が含まれていないかもチェックポイントです。

手順3:ComfyUIとカスタムノードをアップデート/ダウングレードする

バージョン不整合が疑われる場合、まずComfyUI本体を最新版に更新します。ComfyUI-Managerがインストールされていれば、そこから簡単に更新できます。

# ComfyUI本体をGitで更新する場合(手動)
cd /path/to/ComfyUI
git pull

それでもダメな場合は、カスタムノードのGitHubページのIssuesやREADMEを確認し、互換性のあるバージョン情報を探します。ノードを特定のコミットにダウングレードする必要があるかもしれません。

# 特定のカスタムノードを以前のバージョンに戻す例
cd ComfyUI/custom_nodes/ComfyUI-Impact-Pack
git log --oneline -5 # コミット履歴を確認
git checkout a1b2c3d4 # 安定版とされるコミットハッシュに切り替え

手順4:エラーログを詳細に確認し、ファイルエラーを修正する

手順1〜3で解決しない場合、エラーメッセージを徹底的に読み解きます。ComfyUIを--verboseオプション付きで起動すると、より詳細なログが得られます。

# 詳細ログを有効にして起動(Windowsポータブル版の場合)
cd C:ComfyUI_windows_portable
python_embededpython.exe ComfyUImain.py --verbose

# 通常のインストール環境の場合
cd /path/to/ComfyUI
python main.py --verbose

ログから、具体的にどのファイルの何行目でエラーが起きているかが分かります。例えばImportErrorなら不足モジュール、SyntaxErrorならPythonファイルの文法ミスです。JSONファイルのエラーもよくある原因です。エディタで該当ファイルを開き、カンマの抜けや括弧の不整合がないか確認してください。

コード例・コマンド例:トラブルシューティングの実践シナリオ

シナリオ1:Impact Packが読み込まれない

症状: 起動ログにFailed to load node: "ImpactPack"と表示される。

解決策: Impact Packは多くのサブモジュールに依存しています。公式の手順に従い、付属のインストールスクリプトを実行します。

cd ComfyUI/custom_nodes/ComfyUI-Impact-Pack
python install.py
# Windowsでpipが見つからないエラーが出る場合
C:ComfyUI_windows_portablepython_embededpython.exe install.py

シナリオ2:Windowsポータブル版で「pipが認識されない」

症状: コマンドプロンプトでpipコマンドを実行するとエラーになる。

解決策: ポータブル版に同梱されているPythonとpipをフルパスで指定します。

# フルパスでpipを実行する例
C:ComfyUI_windows_portablepython_embededScriptspip.exe install opencv-python

# または、python -m pip 形式を使う
C:ComfyUI_windows_portablepython_embededpython.exe -m pip install -r requirements.txt

シナリオ3:ノードは表示されるが、実行時にエラー(Missing Node)になる

症状: ワークフローのjsonを読み込むと「Missing Node」と表示され、赤いボックスになる。

解決策: これはノードのクラス名が変更されたなど、根本的な互換性問題です。ComfyUI-Managerの「Missing Custom Nodes」機能を使うか、ワークフローをスクラッチから作り直す必要があります。

まとめ・補足情報

ComfyUIのカスタムノード読み込み問題は、そのほとんどが「依存パッケージの不足」「配置場所の誤り」という単純な原因に起因しています。まずはエラーメッセージを注意深く読み、ターミナル上で表示されるModuleNotFoundErrorImportErrorの内容に従って不足ライブラリをインストールすることが第一歩です。

予防的な対策として、以下の点を心がけると良いでしょう。

  • ComfyUI-Managerの活用: このノード自体は、他のカスタムノードのインストール・更新・依存関係解決を大幅に簡素化します。最初にインストールすることを強くお勧めします。
  • バックアップの習慣化: custom_nodesフォルダごと定期的にバックアップを取り、問題が起きた時にすぐに戻せるようにします。
  • 仮想環境の使用(上級者向け): ComfyUI専用のPython仮想環境(venvやconda)を作成することで、システムのPython環境との衝突を防げます。

問題が複雑化した場合は、エラーメッセージそのものを検索エンジンで検索したり、該当カスタムノードのGitHubリポジトリのIssuesページを確認すると、同じ問題に遭遇したユーザーと解決策が見つかる可能性が高まります。ComfyUIはコミュニティ駆動で急速に発展しているツールです。問題に遭遇しても、一つずつ原因を切り分けていくことで、必ず解決に辿り着けるはずです。

この記事は役に立ちましたか?