API'yi ComfyUI Çağırmak

1. Çizim Görevlerini Göndermek

Bir çizim görevi göndermek için aşağıdaki POST isteğini kullanmalısınız:

POST /prompt

İstek parametreleri:

  • client_id string Görev başlatıcısını tanımlamak için istemci tarafından oluşturulan bir görev kimliği
  • prompt json Çizim parametrelerini içeren JSON verisi

Örnek

{
  "client_id": "unique_client_id",
  "prompt": {
    "width": 768,
    "height": 512,
    "text": "Güzel bir manzara"
  }
}

2. Görev Durumunu Almak için WebSocket Kullanma

Görevi gönderdikten sonra, WebSocket üzerinden gerçek zamanlı güncellemeler alabilirsiniz. Aşağıdaki adrese bağlanın:

ws://<your_server>:<port>/ws?client_id=unique_client_id

Bağlandıktan sonra, görev yürütme durumu, ilerleme vb. hakkında bilgi alacaksınız.

Veri Formatı

  • Metin verisi: Görev değişikliklerini, mevcut yürütme adımlarını ve ilerlemeyi bildirmek için kullanılır.
  • İkili veri: Üretilen resim önizlemelerini iletmek için kullanılır.

Python Örnek Kodu

Aşağıda, bir çizim talebi göndermek ve sonuçları almak için Python ve WebSocket istemci kütüphanesi kullanan örnek kod bulunmaktadır:

import websocket
import json
import uuid

server_address = "127.0.0.1:8188"
client_id = str(uuid.uuid4())

def queue_prompt(prompt):
    p = {"client_id": client_id, "prompt": prompt}
    data = json.dumps(p).encode('utf-8')
    req = urllib.request.Request(f"http://{server_address}/prompt", data=data)
    response = urllib.request.urlopen(req)
    return json.loads(response.read())

def on_message(ws, message):
    print(f"Received: {message}")

ws = websocket.WebSocketApp(f"ws://{server_address}/ws?client_id={client_id}",
                            on_message=on_message)
ws.run_forever()

# Çizim talebini gönder
prompt_data = {
    "width": 768,
    "height": 512,
    "text": "Güzel bir manzara"
}
queue_prompt(prompt_data)