Browse Source

comfy status monitor

master
e-maks 3 days ago
parent
commit
c2b43d0c7b
  1. 35
      API-GUIDE.md
  2. 3
      README.md
  3. 30
      server.py

35
API-GUIDE.md

@ -93,6 +93,41 @@ Health check сервера. **Не требует аутентификации. @@ -93,6 +93,41 @@ Health check сервера. **Не требует аутентификации.
---
### `GET /comfyui/status`
Детальная проверка статуса ComfyUI. **Не требует аутентификации.**
**Response (ComfyUI доступен):**
```json
{
"comfyui": "ok",
"ready": true,
"error": null,
"timestamp": 1234567890
}
```
**Response (ComfyUI недоступен):**
```json
{
"comfyui": "unavailable",
"ready": false,
"error": "Connection failed: Connection refused",
"timestamp": 1234567890
}
```
**Поля:**
- `comfyui` — статус (`ok` / `unavailable`)
- `ready` — готов ли ComfyUI принимать задачи (`true` / `false`)
- `error` — описание ошибки (если есть)
- `timestamp` — текущее время сервера (unix)
**Использование:**
Проверяй этот endpoint перед отправкой задач, чтобы убедиться что ComfyUI запущен.
---
### `POST /run`
Поставить задачу на генерацию видео в очередь.

3
README.md

@ -148,7 +148,8 @@ python client.py \ @@ -148,7 +148,8 @@ python client.py \
| `/run` | POST | Поставить задачу в очередь → `{"id": "...", "status": "IN_QUEUE"}` |
| `/status/<id>` | GET | Получить статус: `IN_QUEUE` / `IN_PROGRESS` / `COMPLETED` / `FAILED` |
| `/purge/<id>` | POST | Удалить задачу из памяти (освободить RAM) |
| `/health` | GET | Health check (без авторизации) |
| `/health` | GET | Health check API + ComfyUI (без авторизации) |
| `/comfyui/status` | GET | Детальная проверка ComfyUI (без авторизации) |
**Пример потока:**
```

30
server.py

@ -462,6 +462,36 @@ def health(): @@ -462,6 +462,36 @@ def health():
})
@app.route("/comfyui/status", methods=["GET"])
def comfyui_status():
"""Детальная проверка статуса ComfyUI — без авторизации."""
result = {
"comfyui": "unavailable",
"ready": False,
"error": None,
"timestamp": int(time.time())
}
try:
# Проверка HTTP доступности
url = f"http://{COMFY_HOST}:{COMFY_PORT}/"
response = urllib.request.urlopen(url, timeout=5)
# Проверка что ComfyUI отвечает корректно
if response.status == 200:
result["comfyui"] = "ok"
result["ready"] = True
else:
result["error"] = f"HTTP {response.status}"
except urllib.error.URLError as e:
result["error"] = f"Connection failed: {str(e.reason)}"
except Exception as e:
result["error"] = str(e)
return jsonify(result)
@app.route("/run", methods=["POST"])
def run_job():
"""Отправляет задачу в очередь. Возвращает job_id сразу."""

Loading…
Cancel
Save