見出し画像

How to fix custom nodes on ComfyUI


序文

ComfyUIは使いこなす事さえ出来れば、A1111やreForgeでは実現できない高度な画像生成や動画生成を実現することが出来ますが、様々な意味で難易度が跳ね上がります。

そもそもノードを組む以前に、環境構築の時点で壮絶に手間がかかります。

A1111やreForgeの場合、拡張機能をインストールすれば大概その機能はそのまま使えるし、+αの手間が発生するとしても精々モデルのダウンロードと設置位です。

しかし、ComfyUIは違います。

拡張機能のインストール一つとっても様々なカスタマイズが必要で、Pythonライブラリーのインストールであったり、自分でjsonファイルやpyファイルを書き換えなければならないことさえあります。

一つ例を取ってみましょう。

ComfyUI_LayerStyleはA1111やreForgeではなじみのない機能ですが、ComfyUIでは必要になることが多い拡張機能です。

インストールに関する記載を読むとわかりますが、A1111やreForgeのように指定フォルダに拡張機能ファイルをダウンロードし、WebUIを起動すれば自動的に拡張機能がインストールされ、すぐに使用できるようになる…という便利な動作はしてくれません。

Git CloneなりComfyUI Managerなりで必要なファイルをダウンロードした後、手動でinstall_requirements.batを実行し、手動で必要なPythonライブラリーをインストールする必要があるのです。

更に言えば、後述しますが他の拡張機能をインストールしたり更新した際に、ここでインストールしたPythonライブラリーのバージョンが書き換わってしまうことによるエラーも起こりうる為、最低でも「ここで何のPythonライブラリーをインストールしたか」という知識、記憶は持っておく必要があります。

更に更に、一部のフォルダを自分で移動する必要もあったりします。

このように、ComfyUIにおいて拡張機能を利用するに際して、高度なプログラムを自分で組む能力までは必要とされませんが、基本的に「パソコンをGUIではなくコマンドで操作する能力」は必要です。

また、高度なノードを多数組んでいくと、必要となる拡張機能の数もA1111やreForgeとは段違いの差で、しかもその都度設定が必要となる為に、自分で記憶しきれなくなってきます。

そこで、本稿では読者の為というよりもまず自分の為に、ComfyUIの様々な拡張機能において、必要だった様々な設定を備忘録的に、必要があり次第順不同で追記していきます。

ComfyUI-IF_AI_tools

IF_AIフォルダをコピーする

ファイルをダウンロード後、フォルダ内のバッチファイルを実行する。更に、「IF_AI」フォルダをコピーして「\ComfyUI\input」フォルダに張り付ける事。

ライブラリーの不足分を追加する

python_embeded\python.exe -m pip install pybind11
python_embeded\python.exe -m pip install nano_graphrag

尚、この際に、VSにおける「C++ によるデスクトップ開発」環境のインストールは必須条件となる。

ComfyUI_LayerStyle

ImportError: cannot import name 'guidedFilter' from 'cv2.ximgproc'

他の拡張機能の更新やインストールで、opencv-contrib-pythonライブラリーのバージョン違いを起こした時に発生する。対処方法は以下参照。

Change the VitMatte model of the Ultra node to a local call. Please download all files of vitmatte model to the ComfyUI/models/vitmatte folder.

vitmatteフォルダをmodelsフォルダ内に作成し、以下の全ファイルをダウンロードする事。

LayerStyle Advance

ComfyUI LayerStyle 修正レポート

LayerStyle Advance – Transformers 5.0 Compatibility Fix

IPAdapter

モデル設置

下図のように、モデル設置場所のパス指定をextra_model_pathsファイル上で設定する必要がある。

Insightface

ReactorやIP-Adapterにおいて必須となるライブラリーであるが、自動でインストールもされず、更にはネットワーク経由でのpip installも効かない厄介な代物である。whlファイルをローカルにダウンロードして、python_embeded\python.exe -m pip install "ローカル上のパス"を実行する必要がある。また、当然最新のComfyUIにおいてはPython 3.12用が必要。

was-node-suite-comfyui

下図のように、was_suite_configファイルに、ffmpegをインストールしたパスの設定が必要。当然、それとは別に環境変数への追記も必要。

ComfyUI-WD14-Tagger

初回ロード時に、onnxruntime-gpuではなく、cpu用のonnxruntimeライブラリーがインストール(※拡張機能のインストール順次第でその状態になっていることがある)されていると、cpu用ライブラリーを使いに行って、しかもその設定が保存されてしまう為、以降激遅になる。

初回ロード時は必ずcpu動作用のonnxtuntimeを削除し、onnxruntime-gpuのみがインストールされている状態で行う事。ただし一度激遅状態に陥ってしまった場合は、一度拡張機能フォルダ自体を削除し、かつonnxruntime-gpuのみが有効になっている状態でtaggerを使用する。

ComfyLiterals

custom_nodesフォルダの「ComfyLiterals」フォルダそのものを、"\ComfyUI\web\extensions"フォルダにコピーする必要がある。

ComfyUI_ADV_CLIP_emb

カスタムが必要というよりも、どのノードで必要かわからない、かつ必要ない場合もあるのに、「! No module named 'custom_nodes.ComfyUI_ADV_CLIP_emb'」というエラーが出た時には必要になる拡張機能

ComfyUI-NAI-styler

数あるComfyUIのCustom Nodes関連エラーの中でも、極めつけに意味不明なエラー。「Error. No naistyles.csv found when connect comfyui web」とエラーが出た時には、何と自分でCustom Nodes自体を自作する必要がある。但し、簡単に作成できる。以下のファイルを解凍して使用すること。

念のため、作成手順は以下参照。

image-resize-comfyui

現時点、最悪のエラーがこれ。ノードウィンドウが下のように変形してしまい、元に戻らない。原因不明、対処も不明。ノードを再インストールしても無駄。ComfyUIそのものを新規でクリーンインストールすると直るが、最悪に手間がかかる。

ComfyUI-Custom-Scripts

Broken nodes

原因は不明だが、破損すると下図のようになる。カスタムノード自体を一度削除して再インストールすれば直る。尚、何故か同時にComfyUI Manegarも破損する為、そちらも再インストールする。

Fixed ComfyUI-Custom-Scripts

LCM_Inpaint_Outpaint_Comfy

2024年9月時点で、diffusers 0.28.2までしか対応しない。diffusersを更新すると、以下のエラーが出る。

Traceback (most recent call last):
  File "D:\USERFILES\ComfyUI\ComfyUI\nodes.py", line 1993, in load_custom_node
    module_spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "D:\USERFILES\ComfyUI\ComfyUI\custom_nodes\LCM_Inpaint-Outpaint_Comfy\__init__.py", line 1, in <module>
    from .LCM_Nodes import NODE_CLASS_MAPPINGS
  File "D:\USERFILES\ComfyUI\ComfyUI\custom_nodes\LCM_Inpaint-Outpaint_Comfy\LCM_Nodes.py", line 9, in <module>
    from .LCM.LCM_reference_pipeline import LatentConsistencyModelPipeline_reference
  File "D:\USERFILES\ComfyUI\ComfyUI\custom_nodes\LCM_Inpaint-Outpaint_Comfy\LCM\LCM_reference_pipeline.py", line 33, in <module>
    from diffusers.models.unet_2d_blocks import CrossAttnDownBlock2D, CrossAttnUpBlock2D, DownBlock2D, UpBlock2D
ModuleNotFoundError: No module named 'diffusers.models.unet_2d_blocks'

このエラーはわかるか

MistoControlNet-Flux-dev

ComfyUI Managerに登録されてこない拡張機能である為、自ら手動でgit cloneして導入する必要がある。

CLIPSeg

2024年11月現在、transformers を4.60.1以降に更新すると、動作しなくなる。動作可能な最新版は、4.45.2。2024年12月以降、4.47.0以降ではこの問題は解決したが、「こういうエラーが起きる可能性がある」と認識しておく必要がある。

comfyui-ollama

一般的に生じるものか固有の問題かは不明だが、2024年現在初期状態で正常処理できない。

修正した以下のファイル上書きが必要。

WaveSpeed

非常に多岐にわたる問題が発生する為、以下の記事を参照する事。

Reactor

Pytorch2.6.0以降において、モデルロード時にエラーを起こす為、以下の記事を参照する事。

Impact Pack

Fixing Protobuf

Layer_Style_Advancedの更新において、protobufのバージョンが5.29に固定されてしまう時に、FaceDetailer(Pipe)ノードがエラーを起こす。protobを再度更新する事で、直る。

かなりの頻度で発生するので、以下対策記事を参照する事。

fixed Impact-Pack for ComfyUI V3

Fixed Impact Pack for new API of ComfyUI

Impact Subpack

Pytorch2.6.0以降において、Skin Detailerのモデルロードでエラーが発生する場合、以下記事を参照する事。

Florence2

Archive of fixing Florence2 Loader to transformers 4.50.0

For loading Florence2 on Flash-Attention

Fixed Florence-2 for newest ComfyUI

Prompt Composer

Ultimate SD Upscale

5D tensor support

WAN2.x系やQwen Image系の拡大で発生するテンソル不一致エラー

Fixed Ultimate SD Upscale

comfyui-ollama

ollamaの更新によって、Ollama GenetateノードでThinking Mode非対応のLLMが問答無用で弾かれるようになってしまったので、その条件を除外する為の改造。

comfyui_patches_ll

LanPaint

マスクエリア外に編集がかかってしまう問題に対処した。

Comfyui-zhenzhen

Nunchaku

Fixed Nunchaku PulID

Nunchaku for Python3.13.x

Fixed nunchaku to Pytorch2.9.0

Archives of fixed Nunchaku1.02&ComfyUI-nunchaku1.02 to newest ComfyUI

TensorRT Upscaler

Ollama

Fixed RES4LYF for Flash Attention-2 on Pytorch2.11.0+cu130

Resolution Master

segment-anything-2

SeedVR2

Fixed Torch Compile node of SeedVR2

Fixed SeedVR2&VideoHelperSuite to generate a large size video clip.


いいなと思ったら応援しよう!