handle errors
This commit is contained in:
@@ -159,24 +159,41 @@ def generate_video(prompt):
|
|||||||
ws_url = f"ws://{COMFY_HOST}:{COMFY_PORT}/ws?clientId={ws_client_id}"
|
ws_url = f"ws://{COMFY_HOST}:{COMFY_PORT}/ws?clientId={ws_client_id}"
|
||||||
|
|
||||||
ws = ws_client.WebSocket()
|
ws = ws_client.WebSocket()
|
||||||
ws.connect(ws_url)
|
try:
|
||||||
logger.info("🔌 WebSocket подключён к ComfyUI")
|
ws.connect(ws_url)
|
||||||
|
logger.info("🔌 WebSocket подключён к ComfyUI")
|
||||||
|
|
||||||
prompt_id = queue_prompt(prompt)["prompt_id"]
|
prompt_id = queue_prompt(prompt)["prompt_id"]
|
||||||
logger.info(f"📤 Prompt отправлен: {prompt_id}")
|
logger.info(f"📤 Prompt отправлен: {prompt_id}")
|
||||||
|
|
||||||
# Ждём завершения
|
# Ждём завершения
|
||||||
while True:
|
while True:
|
||||||
out = ws.recv()
|
try:
|
||||||
if isinstance(out, str):
|
out = ws.recv()
|
||||||
message = json.loads(out)
|
except ws_client.WebSocketConnectionClosedException:
|
||||||
if message["type"] == "executing":
|
# ComfyUI разорвал соединение — проверяем что случилось
|
||||||
data = message["data"]
|
logger.error(f"⚠️ ComfyUI закрыл WebSocket для prompt {prompt_id}")
|
||||||
if data["node"] is None and data["prompt_id"] == prompt_id:
|
raise RuntimeError(
|
||||||
break
|
"ComfyUI connection lost during generation. "
|
||||||
|
"Possible causes: Out of VRAM, workflow error, or ComfyUI crash. "
|
||||||
|
"Check ComfyUI logs: journalctl -u comfyui -n 100"
|
||||||
|
)
|
||||||
|
|
||||||
|
if isinstance(out, str):
|
||||||
|
message = json.loads(out)
|
||||||
|
if message["type"] == "executing":
|
||||||
|
data = message["data"]
|
||||||
|
if data["node"] is None and data["prompt_id"] == prompt_id:
|
||||||
|
break
|
||||||
|
|
||||||
ws.close()
|
ws.close()
|
||||||
logger.info("✅ Генерация завершена")
|
logger.info("✅ Генерация завершена")
|
||||||
|
except Exception as e:
|
||||||
|
try:
|
||||||
|
ws.close()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
raise
|
||||||
|
|
||||||
# Извлекаем видео
|
# Извлекаем видео
|
||||||
history = get_history(prompt_id)[prompt_id]
|
history = get_history(prompt_id)[prompt_id]
|
||||||
|
|||||||
Reference in New Issue
Block a user