comfy status monitor
This commit is contained in:
@@ -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`
|
||||
|
||||
Поставить задачу на генерацию видео в очередь.
|
||||
|
||||
@@ -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 (без авторизации) |
|
||||
|
||||
**Пример потока:**
|
||||
```
|
||||
|
||||
@@ -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 сразу."""
|
||||
|
||||
Reference in New Issue
Block a user