Utilitzant l'API per trucar a ComfyUI

1. Enviant tasques de dibuix

Per enviar una tasca de dibuix, cal utilitzar la següent sol·licitud POST:

POST /prompt

Paràmetres de la sol·licitud:

  • client_id string Un ID de tasca generat pel client per identificar qui inicia la tasca
  • prompt json Dades JSON que contenen els paràmetres de dibuix

Exemple

{
  "client_id": "unique_client_id",
  "prompt": {
    "width": 768,
    "height": 512,
    "text": "Un paisatge bonic"
  }
}

2. Utilitzant WebSocket per rebre l'estat de la tasca

Després d'enviar la tasca, podeu rebre actualitzacions en temps real mitjançant WebSocket. Connecteu-vos a l'adreça següent:

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

Un cop connectat, rebreu informació sobre l'estat d'execució de la tasca, el progrés, etc.

Format de dades

  • Dades de text: S'utilitzen per notificar canvis en la tasca, passos d'execució actuals i progrés.
  • Dades binàries: S'utilitzen per transmetre previsualitzacions d'imatges generades.

Exemple de codi Python

A continuació es mostra un exemple de codi utilitzant Python i la biblioteca de client WebSocket per enviar una sol·licitud de dibuix i rebre resultats:

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

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

# Enviar sol·licitud de dibuix
prompt_data = {
    "width": 768,
    "height": 512,
    "text": "Un paisatge bonic"
}
queue_prompt(prompt_data)