Använda API för att anropa ComfyUI

1. Skicka rituppgifter

För att skicka en rituppgift behöver du använda följande POST-begäran:

POST /prompt

Begärningsparametrar:

  • client_id string Ett uppgifts-ID som genereras av klienten för att identifiera uppgiftens initiator.
  • prompt json JSON-data som innehåller ritparametrar.

Exempel

{
  "client_id": "unique_client_id",
  "prompt": {
    "width": 768,
    "height": 512,
    "text": "Ett vackert landskap"
  }
}

2. Använda WebSocket för att ta emot uppgiftsstatus

Efter att ha skickat uppgiften kan du ta emot realtidsuppdateringar via WebSocket. Anslut till följande adress:

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

När du har anslutit kommer du att få information om uppgiftens exekveringsstatus, framsteg osv.

Dataformat

  • Textdata: Används för att meddela uppgiftsändringar, aktuella exekveringssteg och framsteg.
  • Binärdata: Används för att överföra genererade bildförhandsvisningar.

Python Exempelkod

Nedan är ett exempel på kod som använder Python och WebSocket-klientbiblioteket för att skicka en ritförfrågan och ta emot resultat:

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"Mottaget: {message}")

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

# Skicka ritförfrågan
prompt_data = {
    "width": 768,
    "height": 512,
    "text": "Ett vackert landskap"
}
queue_prompt(prompt_data)