カスタムノードを使用すると、新機能を実装し、より広いコミュニティと共有できます。
カスタムノードは他の Comfy ノードと同様に、入力を受け取り、処理を行い、出力を生成します。
非常に複雑なタスクを実行するカスタムノードもありますが、多くのノードは単一の機能のみを実行します。以下は、画像を受け取って反転させるシンプルなノードの例です。
カスタムノードの例:
クライアント - サーバーモデル
Comfy はクライアント - サーバーモデルで動作します。サーバー側は Python で書かれており、データ処理、モデル、画像拡散などすべての実際の処理を担当します。クライアント側は Javascript で書かれており、ユーザーインターフェースを担当します。
Comfy は API モードで使用することもでき、この場合、ワークフローは非 Comfy クライアント(他の UI やコマンドラインスクリプトなど)からサーバーに送信されます。
カスタムノードは以下の 4 つのカテゴリに分類できます:
サーバー側のみ
大多数のカスタムノードは純粋にサーバー側で動作し、入力と出力のタイプを指定する Python クラスを定義し、入力処理して出力を生成する呼び出し可能な関数を提供します。
クライアント側のみ
少数のカスタムノードはクライアント UI の変更を提供しますが、コア機能は追加しません。名前にもかかわらず、システムに新しいノードを追加しないものさえあります。
独立したクライアントとサーバー
カスタムノードは、追加のサーバー機能と追加の(関連する)UI 機能(新しいデータタイプを処理するための新しいウィジェットなど)を提供できます。ほとんどの場合、クライアントとサーバー間の通信は Comfy のデータフロー制御によって処理できます。
連携したクライアントとサーバー
少数のケースでは、UI 機能とサーバーが直接相互に作用する必要があります。
クライアント - サーバー通信を必要とするノードは、API 経由での使用と互換性がありません。