Menggunakan API untuk Memanggil ComfyUI

1. Mengirim Tugas Menggambar

Untuk mengirim tugas menggambar, Anda perlu menggunakan permintaan POST berikut:

POST /prompt

Parameter permintaan:

  • client_id string ID tugas yang dihasilkan oleh klien untuk mengidentifikasi penggagas tugas
  • prompt json Data JSON yang mengandung parameter menggambar

Contoh

{
  "client_id": "unique_client_id",
  "prompt": {
    "width": 768,
    "height": 512,
    "text": "Lanskap yang indah"
  }
}

2. Menggunakan WebSocket untuk Menerima Status Tugas

Setelah mengirimkan tugas, Anda dapat menerima pembaruan secara real-time melalui WebSocket. Hubungkan ke alamat berikut:

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

Setelah terhubung, Anda akan menerima informasi tentang status eksekusi tugas, kemajuan, dll.

Format Data

  • Data teks: Digunakan untuk memberi tahu perubahan tugas, langkah-langkah eksekusi saat ini, dan kemajuan.
  • Data biner: Digunakan untuk mentransmisikan pratinjau gambar yang dihasilkan.

Contoh Kode Python

Di bawah ini adalah contoh kode menggunakan Python dan pustaka klien WebSocket untuk mengirim permintaan menggambar dan menerima hasil:

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()

# Mengirim permintaan menggambar
prompt_data = {
    "width": 768,
    "height": 512,
    "text": "Lanskap yang indah"
}
queue_prompt(prompt_data)