Χρήση API για την Κλήση ComfyUI

1. Υποβολή Καθηκόντων Σχεδίασης

Για να υποβάλετε ένα καθήκον σχεδίασης, πρέπει να χρησιμοποιήσετε το παρακάτω αίτημα POST:

POST /prompt

Παράμετροι αιτήματος:

  • client_id string Ένα αναγνωριστικό καθήκοντος που δημιουργείται από τον πελάτη για να προσδιορίσει τον εκκινητή του καθήκοντος
  • prompt json Δεδομένα JSON που περιέχουν παραμέτρους σχεδίασης

Παράδειγμα

{
  "client_id": "unique_client_id",
  "prompt": {
    "width": 768,
    "height": 512,
    "text": "Ένα όμορφο τοπίο"
  }
}

2. Χρήση WebSocket για Λήψη Κατάστασης Καθήκοντος

Αφού υποβάλετε το καθήκον, μπορείτε να λάβετε ενημερώσεις σε πραγματικό χρόνο μέσω WebSocket. Συνδεθείτε στη διεύθυνση:

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

Μόλις συνδεθείτε, θα λάβετε πληροφορίες σχετικά με την κατάσταση εκτέλεσης του καθήκοντος, την πρόοδο κ.λπ.

Μορφή Δεδομένων

  • Δεδομένα κειμένου: Χρησιμοποιούνται για να ειδοποιούν για αλλαγές στο καθήκον, τρέχοντα βήματα εκτέλεσης και πρόοδο.
  • Δυαδικά δεδομένα: Χρησιμοποιούνται για τη μετάδοση προεπισκοπήσεων παραγόμενης εικόνας.

Παράδειγμα Κώδικα Python

Παρακάτω είναι ένα παράδειγμα κώδικα που χρησιμοποιεί Python και τη βιβλιοθήκη πελάτη WebSocket για να υποβάλει ένα αίτημα σχεδίασης και να λάβει αποτελέσματα:

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"Λήψη: {message}")

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

# Υποβολή αιτήματος σχεδίασης
prompt_data = {
    "width": 768,
    "height": 512,
    "text": "Ένα όμορφο τοπίο"
}
queue_prompt(prompt_data)