メインコンテンツへスキップ

Comfy クライアントの拡張

Comfy は拡張機制を通じて変更できます。拡張を追加するには、以下が必要です:
  • Python モジュールから WEB_DIRECTORY をエクスポートし、
  • 1 つ以上の .js ファイルをそのディレクトリに配置し、
  • app.registerExtension を使用して拡張を登録します。
これら 3 つのステップは以下に記載します。拡張の追加方法を確認したら、コードを呼び出すために利用可能な hooks を確認するか、必要に応じて様々な Comfy objects の説明を確認するか、あるいは直接 example code snippets にジャンプしてください。

WEB_DIRECTORY のエクスポート

Comfy Web クライアントは、カスタムノードディレクトリ内にサブディレクトリ(慣例的に js と呼ばれます)を作成し、WEB_DIRECTORY をエクスポートすることで拡張できます。そのため、__init__.py には以下のような内容を含める必要があります:
WEB_DIRECTORY = "./js"
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]

.js ファイルの含め方

すべての Javascript .js ファイルは、Comfy Web ページの読み込み時にブラウザによって自動的に読み込まれます。拡張機能のあるファイルを指定する必要はありません。
ウェブページに追加されるのは .js ファイル_のみ_ です。他のリソース(.css ファイルなど)は extensions/custom_node_subfolder/the_file.css でアクセスでき、プログラム的に追加できます。
そのパスにはサブフォルダの名前は含まれ_ません_。WEB_DIRECTORY の値はサーバーによって挿入されます。

拡張の登録

拡張の基本的な構造は、Comfy のメイン app オブジェクトをインポートし、app.registerExtension を呼び出すことです。この際、一意の name と、Comfy コード内のフックによって呼び出される 1 つ以上の関数を含む辞書を渡します。 完全で、単純で、かつ「厄介な」拡張は以下のようになります:
import { app } from "../../scripts/app.js";
app.registerExtension({ 
	name: "a.unique.name.for.a.useless.extension",
	async setup() { 
		alert("Setup complete!")
	},
})