【ComfyUI】ComfyUIをサービスに組み込む - API活用のすすめ
ComfyUIを直接操作して画像生成するのも良いですが、アプリのバックエンドとしても利用したいですよね。今回は、ComfyUIをAPIとして使用してみたいと思います。
1. ComfyUIの起動
まず、通常通りにComfyUIを起動します。起動は、notebookからでもコマンドからでも、どちらでも構いません。
ComfyUIは、起動した段階でAPIとして使用することができます。ベースURLは、"http://[IPアドレス]:[ポート番号]"になります。エンドポイントには、以下の種類があります。
/ws: WebSocketオブジェクトを返し、ステータスと実行メッセージを送信
/prompt: ワークフローにプロンプトをキューに入れる
/history/{prompt_id}: 指定されたprompt_idのキューまたは出力を返す
/view: 指定されたファイル名、サブフォルダ、タイプの画像を返す
/upload/image: ComfyUIに画像をアップロードする
2. workflowの準備
ComfyUIのAPIでは、workflowをpromptとして入力することで生成を実行します。まず、UI上でworkflowを作成し、それをAPI用のworkflowとして保存します。
API用のworkflowを保存するには、ComfyUIをdevmodeにします。devmodeにするには、コントローラの右上にある歯車マークをクリックし、コンフィグ画面を表示し、その中の[Enable Dev mode Options]にチェックを入れます。すると、コントローラに[Save (API Format)]が表示されるので、ここからAPI用のworkflow.jsonを手に入れます。これをコード内で使用します。
3. コードの準備
ComfyUIで用意している参考コードを利用したいと思います。以下のリンクからbasic_api_example.pyをダウンロードしてください。
basic_api_example.pyを改造して、workflowをjsonファイルから読み込むように変更しました。
import json
from urllib import request, parse
import random
import os
# ComfyUIのサーバーアドレスを設定
SERVER_ADDRESS = "127.0.0.1:6006"
# workflowへのパス
WORKFLOW_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'workflow_api.json')
# workflow_api.jsonファイルを読み込む
with open(WORKFLOW_PATH, 'r') as file:
prompt = json.load(file)
def queue_prompt(prompt):
p = {"prompt": prompt}
data = json.dumps(p).encode('utf-8')
req = request.Request(f"http://{SERVER_ADDRESS}/prompt", data=data)
request.urlopen(req)
# プロンプトの内容を変更する例
# CLIPTextEncodeノードのテキストを変更
prompt["6"]["inputs"]["text"] = "masterpiece best quality man"
# KSamplerノードのシードを変更
prompt["3"]["inputs"]["seed"] = random.randint(1, 1000000)
queue_prompt(prompt)
4. APIの実行
先ほど作成したコードを以下のコマンドで実行してみます。
python3 basic_api_example.py
ComfyUIのログを見ると、プロンプトを受け取って生成を実行していることが分かります。outputフォルダにも生成結果がしっかり保存されていました。
今回は、promptというエンドポイントのみを使用した簡単なプログラムにしましたが、応用すればサービスに組み込んで使用することができます。他のエンドポイントも利用してみましょう!
この記事でご紹介したAI技術の応用方法について、もっと詳しく知りたい方や、実際に自社のビジネスにAIを導入したいとお考えの方、私たちは、企業のAI導入をサポートするAIコンサルティングサービスを提供しています。以下のようなニーズにお応えします。
AIを使った業務効率化の実現
データ分析に基づくビジネス戦略の立案
AI技術の導入から運用までの全面サポート
専門家によるカスタマイズされたAIソリューションの提案
初回相談無料ですので、お気軽にご相談ください。以下のリンクからお問い合わせください。
この記事が気に入ったらサポートをしてみませんか?