この記事について(広告・アフィリエイトリンクはありません)
カスタムノードを新しく入れたら、前から使っていたノードが一覧から消えた。新しいノードが壊れているとは限りません。入れた拍子に、共通のライブラリの版が変わった可能性があります。
公式ドキュメントが挙げている open_clip_torch の例を、試験用の環境で実際に起こしました。
所要時間:原因の確認は約5分。難易度:コマンドを使います。
先に結論(今回のテスト条件で)
| 確かめたこと | 結果 |
|---|---|
新しいノードの pip install で版が下がる | 前のノードが消えた |
pip の警告 | 出なかった |
pip check | 「問題なし」のまま |
| 新しいノードの固定を範囲指定に直す | それだけでは戻らなかった |
| 前のノードの依存を入れ直す | 戻った |
| コードが古い版でしか動かないノード | 範囲指定にしても動かない。両立できなかった |
- まず、起動時のコンソールの
IMPORT FAILEDを見ます。 - 入れる前に確かめるなら、
pip install --dry-runに両方のrequirements.txtを渡します。 - 両立しないときは、ComfyUI を分けて動かします(公式の案内)。

試した環境
| 項目 | 内容 |
|---|---|
| ComfyUI | ポータブル版、7c4390a6(2026-10-31)。削除してよい試験用の環境 |
| Python | 3.13(ポータブル版の同梱) |
| pip | 26.2.1 |
| 起動 | --cpu、--disable-all-custom-nodes、--whitelist-custom-nodes で試すノードだけ読み込み |
| ノード | 再現用に自作した3つ(下記) |
| ライブラリ | open_clip_torch 2.26.1 と 3.3.0 |
| 検証日 | 2026年11月4日 |
普段使いの環境は触っていません。同じことを普段の環境で試さないでください。 最後に試験環境の open_clip_torch は元の 3.3.0 に戻しました。
再現に使ったノード
実在のノードを名指しで「壊れる」とは書けないので、open_clip_torch の版の差を実際に使う最小のノードを作りました。requirements.txt と読み込みの1行だけが違います。
| ノード | requirements.txt | コードが使うもの |
|---|---|---|
| 前から入っていたノード | open_clip_torch>=2.29.0 | open_clip.constants.HF_CONFIG_NAME(2.26.1 にはない) |
| 新しく入れるノード | open_clip_torch==2.26.1 | open_clip だけ(どの版でも動く) |
| 古い版に頼るノード | open_clip_torch==2.26.1 | open_clip.pretrained._RN50_quickgelu(新しい版にはない) |
名前の差は、両方の版のソースを比べて確かめたものです。
実際に消える
前のノードだけの状態
open_clip_torch は 3.3.0 です。ノードは読み込まれています。
新しいノードの依存を入れる
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\new_node\requirements.txt
pip の表示はこれだけです。
Found existing installation: open_clip_torch 3.3.0
Uninstalling open_clip_torch-3.3.0:
Successfully uninstalled open_clip_torch-3.3.0
Successfully installed open_clip_torch-2.26.1
エラーも警告もありません。 版が 3.3.0 から 2.26.1 に下がっただけです。
再起動すると前のノードが消える
| 状態 | 前のノード | 新しいノード |
|---|---|---|
| 入れる前 | あり | なし |
| 入れた後 | なし | あり |
ComfyUI 自体は普通に起動します。コンソールには次のように出ます。
Cannot import ...custom_nodes\old_node module for custom nodes:
cannot import name 'HF_CONFIG_NAME' from 'open_clip.constants'
...
0.2 seconds (IMPORT FAILED): ...custom_nodes\old_node
読み込みに失敗したノードは、一覧に出てきません。 これが「消えた」の正体でした。ファイルは custom_nodes に残っています。
pip check では見つからなかった
トラブルのときに勧められる pip check は、今回はどの段階でも次の表示でした。
No broken requirements found.
理由は、pip check が調べるのはインストール済みのパッケージ同士の関係だからです。custom_nodes の requirements.txt は対象ではありません。 今回の競合は見つけられませんでした。問題なしと出ても、安心はできません。
入れる前に見つける
両方の requirements.txt を1回の pip に渡します。--dry-run なので、環境は変わりません。
python_embeded\python.exe -m pip install --dry-run -r ComfyUI\custom_nodes\old_node\requirements.txt -r ComfyUI\custom_nodes\new_node\requirements.txt
今回は、はっきり止まりました。
The conflict is caused by:
The user requested open_clip_torch>=2.29.0
The user requested open_clip_torch==2.26.1
ERROR: ResolutionImpossible
ノードが多いなら、気になる2つから試します。Manager 経由の場合に同じ確認ができるかは、試していません。
公式の対処を試す
公式ドキュメントでは、固定の == を範囲に変えて、依存を入れ直す方法が案内されています。試した結果は次のとおりです。
| 手順 | open_clip_torch | 前のノード | 新しいノード |
|---|---|---|---|
==2.26.1 を >=2.26.1 に変更し、新しいノードを入れ直す | 2.26.1 のまま | なし | あり |
| さらに前のノードの依存を入れ直す | 3.3.0 | あり | あり |
範囲に直すだけでは戻りませんでした。 2.26.1 も >=2.26.1 を満たすので、pip は何も変えないからです。前のノードの requirements.txt も入れ直すと、新しい版に上がって両方が読み込まれました。
ただし requirements.txt を手で変えるのは、そのノードが新しい版で本当に動く場合だけです。今回は読み込みまでの確認で、ノードの実行まではしていません。ノードを更新すると、変更は上書きされる可能性があります。
範囲に直しても解決しないとき
コードが古い版の中身に頼っていると、範囲指定にしても動きません。「古い版に頼るノード」で試しました。
open_clip_torch | 前のノード | 古い版に頼るノード |
|---|---|---|
| 2.26.1 | なし | あり |
| 3.3.0 | あり | なし |
どちらの版でも、片方が消えます。1つの環境では両立できません。 公式の案内では、選択肢は次のとおりです。
- ノードを更新するか、作者に報告する
- 使わないほうのノードを外す
- 別の Python 環境で ComfyUI をもう1つ動かす
ノードは ComfyUI が動いている環境に読み込まれるので(公式の説明)、別の環境を作るだけでは足りず、ComfyUI ごと分ける必要があります。ポータブル版は、フォルダーを分ければ環境も分かれる作りです。
消えたときの手順
- コンソールを見る:
IMPORT FAILEDの行と、その上のcannot import nameやNo module namedを探します。 - 版を調べる:
python_embeded\python.exe -m pip show open_clip_torch - 要求を比べる:
custom_nodesのrequirements.txtで、同じライブラリの指定を探します。 - 戻す:消えたノードの
requirements.txtを入れ直します。今度はもう一方が消える可能性があります。 - 両立しないなら分ける:片方を外すか、ComfyUI を分けます。
カスタムノードの入れ方と外し方はこちらにまとめています。
1つずつ入れて、そのつど再起動すると、どのノードで起きたかが分かります。これも公式の案内です。
NumPy の衝突は再現できなかった
NumPy の 1.x と 2.x の衝突もよく話題になります。今回の Python 3.13 の環境で numpy<2 を入れようとすると、次のようになりました。
Using cached numpy-1.26.4.tar.gz (15.8 MB)
...
ERROR: Exception:
BackendUnavailable: Cannot import 'mesonpy'
ビルドに失敗して止まり、NumPy は 2.5.3 のままでした。今回の環境では、版が下がって壊れることはなく、インストールが失敗しました。 別の Python の版やビルド環境では結果が変わる可能性があります。NumPy の衝突で実際にノードが消えるところは、再現していません。
よくある質問(FAQ)
Q. 新しいノードが悪いのですか?
必ずしもそうではありません。今回の新しいノードは正常に動いていて、共通のライブラリの版を下げただけでした。
Q. なぜ ComfyUI は教えてくれないのですか?
起動のログには出ます。ただ、画面に出るとは限りません。今回はコンソールで確かめました。
Q. pip check が問題なしなら大丈夫ですか?
今回は競合があっても問題なしと出ました。custom_nodes の要求は調べないためです。
Q. ノードを入れ直せば直りますか?
ファイルの入れ直しでは直りません。依存の版を変える必要があります。
Q. 依存を何度も入れ直してもいいですか?
版が上下するだけで、両立するとは限りません。普段の環境を守るなら、先に ComfyUI のフォルダーごとコピーして試します。
まとめ
- ノードが消えたら、まず
IMPORT FAILEDを探します。 pip checkだけでは見つからない競合があります。- 入れる前は
--dry-run、両立しないなら環境を分けます。
検証メモ
- 自作のノード:競合を確実に起こすための最小のものです。実在のノードで同じことが起きると確かめたわけではありません。
open_clip_torchの版:公式の例は 2.26.1 と 2.29.0 以上です。「以上」の指定で実際に入ったのは 3.3.0 でした。名前の差は 2.26.1 と 2.29.0 のソースで比べました。- 確認した範囲:
/object_infoにノードがあるかと起動ログです。ノードの実行や画面の表示は確かめていません。 - 読み込みの順:試験環境には最初から
open_clip_torch3.3.0 が入っていました(別のノードの依存と思われます)。 - 未確認のこと:Manager からの導入、Comfy Desktop 版、uv、PyTorch の CUDA 版の衝突(公式の例の2番目)、NumPy の衝突でノードが消える例。

