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

概要

サブグラフを使用すると、ユーザーはノードを再利用可能でネスト可能なコンポーネントとしてグループ化できます。各サブグラフは UUID を持つ独自の LGraph です。ユーザー向けガイドについては、Subgraphs を参照してください。

ノード識別子

ComfyUI では 3 種類の異なるノード識別子タイプを使用します。誤ったものを使用すると、サイレント失敗(エラーなしで失敗すること)の原因となります。 拡張機能内からノードのロケーター ID を構築するには:

ノードのトラバース

現在のレイヤーのみ

すべてノードを再帰的に

ネストされたサブグラフに入るには、すべてのノードでコールバックを呼び出す再帰ヘルパーを使用します:
完全な例:

ルート vs アクティブグラフ

イベント

サブグレープレベルのイベント

subgraph.events でディスパッチされます:

キャンバスレベルのイベント

app.canvas.canvas (HTML キャンバス要素) でディスパッチされます:

リスニングパターン

ウィジェットのプロモート

SubgraphInput がサブグラフ内のウィジェットに接続されると、そのウィジェットのコピーが親サブグラフノードに表示されます。これにより widget-promoted が発生します。接続を削除すると widget-demoted が発生します。
ウィジェットのプロモート動作は依然として進化中であり、将来のリリースで変更される可能性があります。

クリーンアップ

ノードが削除されたときにすべてのイベントリスナーをクリーンアップするには、AbortController を使用します。
onRemoved は削除時だけでなく、サブグラフ変換時にも発生する可能性があります。構造変更間で状態を保持する必要がある場合は、ティアダウンロジックを保護してください。

関連項目