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 ファイルは以下のようになります:
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
サブディレクトリにコピーする必要がありました。これを行うコードを今でも見かけることがあります。そうしないでください。