Comfy によるカスタムノードの読み込み方法
Comfy 起動時、custom_nodes ディレクトリ内の Python モジュールをスキャンし、読み込みを試みます。
モジュールが NODE_CLASS_MAPPINGS をエクスポートしている場合、カスタムノードとして扱われます。
Python モジュールとは、__init__.py ファイルを含むディレクトリのことです。
モジュールは、__init__.py で定義された __all__ 属性にリストされた内容をエクスポートします。
init.py
__init__.py は、Comfy がモジュールのインポートを試みるときに実行されます。カスタムノード定義を含むモジュールとして認識されるためには、NODE_CLASS_MAPPINGS をエクスポートする必要があります。エクスポートされており(かつインポート中にエラーが発生しなければ)、モジュール内で定義されたノードが Comfy で利用可能になります。コードにエラーがある場合、Comfy は続行しますが、そのモジュールの読み込み失敗を報告します。そのため、Python コンソールを確認してください!
非常にシンプルな __init__.py ファイルは以下のようになります:
from .python_file import MyCustomNode
NODE_CLASS_MAPPINGS = { "My Custom Node" : MyCustomNode }
__all__ = ["NODE_CLASS_MAPPINGS"]
NODE_CLASS_MAPPINGS
NODE_CLASS_MAPPINGS は、カスタムノード名(Comfy インストール全体で一意である必要があります)を対応するノードクラスにマップする dict でなければなりません。
NODE_DISPLAY_NAME_MAPPINGS
__init__.py は NODE_DISPLAY_NAME_MAPPINGS をエクスポートすることもできます。これは、同じ一意の名前をノードの表示名にマップします。
NODE_DISPLAY_NAME_MAPPINGS が提供されていない場合、Comfy は一意の名前を表示名として使用します。
WEB_DIRECTORY
クライアント側コードをデプロイする場合は、JavaScript ファイルが見つかるパス(モジュールからの相対パス)もエクスポートする必要があります。これらをカスタムノード内の js という名前のサブディレクトリに配置するのが一般的です。
.js ファイルのみ が提供されます;.css や他のタイプをこの方法でデプロイすることはできません
Comfy の以前のバージョンでは、__init__.py が JavaScript ファイルを Comfy メインの web
サブディレクトリにコピーする必要がありました。これを行うコード仍未見かけることがあります。行わないでください。