メインコンテンツへスキップ
PR #8041 以降、ComfyUI は特定のフロントエンドインターフェースを必要とせずに(フロントエンドなしで実行することも可能です)、ComfyUI アカウント API キーを通じて組み込みの有料パートナーノードを直接使用できるようになりました。 これにより、以下を組み合わせるワークフローを作成できます:
  • ローカル OS モデル
  • カスタムノードコミュニティのツール
  • 人気のある有料モデル
その後、プロンプトを Comfy webserver API に送信するだけで、すべてを一緒に実行でき、すべてのオーケストレーションを処理させることができます。 これは、Comfy をバックエンドサービスとして使用したいユーザー、コマンドライン経由で実行したいユーザー、独自のフロントエンドを持つユーザーなどに役立ちます。

前提条件

ComfyUI アカウント API キーを使用して有料パートナーノードを呼び出すには、以下が必要です:
重要: このページでは、ワークフロー内の有料パートナーノードへのアクセスに使用される ComfyUI アカウント API キー について説明します。代わりにカスタムノードをレジストリに公開したい場合は、ノードの公開 を参照してください。
有料パートナーノードを呼び出すために ComfyUI アカウント API キーを使用するには、まず ComfyUI Platform でアカウントを登録し、API キーを作成する必要があります。 対応する機能をテストするために、ComfyUI アカウントに十分なクレジットがあることを確認する必要があります。

クレジット

アカウントのクレジットを購入する方法については、クレジットセクションを参照してください

Python 例

以下は、Python コードを使用してパートナーノードを含むワークフローを ComfyUI API に送信する方法の例です:
"""ComfyUI をヘッドレスモードまたは代替フロントエンドで実行する際にパートナーノードを使用する

API キーをプロンプトに含めることで、パートナーノードを含む ComfyUI ワークフローを実行できます。
API キーは、ペイロードの `extra_data` フィールドに追加する必要があります。
以下に、その方法の例を示します。

詳細情報:

- パートナーノードの概要:https://docs.comfy.org/tutorials/partner-nodes/overview
- API キーを生成するには、こちらにログインしてください:https://platform.comfy.org/login
"""

import json
from urllib import request

SERVER_URL = "http://127.0.0.1:8188"

# パートナーノードを含むプロンプト/ジョブ(「API 形式」のワークフロー)があります。
workflow_with_api_nodes = """{
  "11": {
    "inputs": {
      "prompt": "A dreamy, surreal half-body portrait of a young woman meditating. She has a short, straight bob haircut dyed in pastel pink, with soft bangs covering her forehead. Her eyes are gently closed, and her hands are raised in a calm, open-palmed meditative pose, fingers slightly curved, as if levitating or in deep concentration. She wears a colorful dress made of patchwork-like pastel tiles, featuring clouds, stars, and rainbows. Around her float translucent, iridescent soap bubbles reflecting the rainbow hues. The background is a fantastical sky filled with cotton-candy clouds and vivid rainbow waves, giving the entire scene a magical, dreamlike atmosphere. Emphasis on youthful serenity, whimsical ambiance, and vibrant soft lighting.",
      "prompt_upsampling": false,
      "seed": 589991183902375,
      "aspect_ratio": "1:1",
      "raw": false,
      "image_prompt_strength": 0.4000000000000001,
      "image_prompt": [
        "14",
        0
      ]
    },
    "class_type": "FluxProUltraImageNode",
    "_meta": {
      "title": "Flux 1.1 [pro] Ultra Image"
    }
  },
  "12": {
    "inputs": {
      "filename_prefix": "ComfyUI",
      "images": [
        "11",
        0
      ]
    },
    "class_type": "SaveImage",
    "_meta": {
      "title": "Save Image"
    }
  },
  "14": {
    "inputs": {
      "image": "example.png"
    },
    "class_type": "LoadImage",
    "_meta": {
      "title": "Load Image"
    }
  }
}"""


prompt = json.loads(workflow_with_api_nodes)
payload = {
    "prompt": prompt,
    # `api_key_comfy_org` をペイロードに追加します。
    # 複数のクライアントを処理する場合は、まず関連するユーザーからキーを取得できます。
    "extra_data": {
        "api_key_comfy_org": "comfyui-87d01e28d*******************************************************"  # 実際のキーに置き換えてください
    },
}
data = json.dumps(payload).encode("utf-8")
req = request.Request(f"{SERVER_URL}/prompt", data=data)
request.urlopen(req)

関連ドキュメント