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`
|
### `POST /run`
|
||||||
|
|
||||||
Поставить задачу на генерацию видео в очередь.
|
Поставить задачу на генерацию видео в очередь.
|
||||||
|
|||||||
@@ -148,7 +148,8 @@ python client.py \
|
|||||||
| `/run` | POST | Поставить задачу в очередь → `{"id": "...", "status": "IN_QUEUE"}` |
|
| `/run` | POST | Поставить задачу в очередь → `{"id": "...", "status": "IN_QUEUE"}` |
|
||||||
| `/status/<id>` | GET | Получить статус: `IN_QUEUE` / `IN_PROGRESS` / `COMPLETED` / `FAILED` |
|
| `/status/<id>` | GET | Получить статус: `IN_QUEUE` / `IN_PROGRESS` / `COMPLETED` / `FAILED` |
|
||||||
| `/purge/<id>` | POST | Удалить задачу из памяти (освободить RAM) |
|
| `/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"])
|
@app.route("/run", methods=["POST"])
|
||||||
def run_job():
|
def run_job():
|
||||||
"""Отправляет задачу в очередь. Возвращает job_id сразу."""
|
"""Отправляет задачу в очередь. Возвращает job_id сразу."""
|
||||||
|
|||||||
Reference in New Issue
Block a user