Usando a API para Chamar o ComfyUI

1. Enviando Tarefas de Desenho

Para enviar uma tarefa de desenho, você precisa usar a seguinte requisição POST:

POST /prompt

Parâmetros da requisição:

  • client_id string Um ID de tarefa gerado pelo cliente para identificar o iniciador da tarefa
  • prompt json Dados JSON contendo os parâmetros de desenho

Exemplo

{
  "client_id": "unique_client_id",
  "prompt": {
    "width": 768,
    "height": 512,
    "text": "Uma bela paisagem"
  }
}

2. Usando WebSocket para Receber o Status da Tarefa

Após enviar a tarefa, você pode receber atualizações em tempo real via WebSocket. Conecte-se ao seguinte endereço:

ws://<seu_servidor>:<porta>/ws?client_id=unique_client_id

Uma vez conectado, você receberá informações sobre o status da execução da tarefa, progresso, etc.

Formato de Dados

  • Dados de Texto: Usados para notificar mudanças na tarefa, etapas de execução atuais e progresso.
  • Dados Binários: Usados para transmitir pré-visualizações de imagens geradas.

Exemplo de Código em Python

Abaixo está um exemplo de código usando Python e a biblioteca cliente WebSocket para enviar uma solicitação de desenho e receber resultados:

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

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

# Enviar solicitação de desenho
prompt_data = {
    "width": 768,
    "height": 512,
    "text": "Uma bela paisagem"
}
queue_prompt(prompt_data)