API का उपयोग करके ComfyUI को कॉल करना

1. चित्रण कार्य सबमिट करना

चित्रण कार्य सबमिट करने के लिए, आपको निम्नलिखित POST अनुरोध का उपयोग करना होगा:

POST /prompt

अनुरोध पैरामीटर:

  • client_id string एक कार्य आईडी जो क्लाइंट द्वारा उत्पन्न होती है ताकि कार्य प्रारंभकर्ता की पहचान की जा सके
  • prompt json चित्रण पैरामीटर शामिल करने वाला JSON डेटा

उदाहरण

{
  "client_id": "unique_client_id",
  "prompt": {
    "width": 768,
    "height": 512,
    "text": "A beautiful landscape"
  }
}

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"Received: {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": "A beautiful landscape"
}
queue_prompt(prompt_data)