From 6720b9076b7a315ecbf36b9d0230c4dddd0cc366 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 26 Mar 2026 21:26:31 -0400 Subject: [PATCH] Fixed timed out --- modules/videoUpscaler.py | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/modules/videoUpscaler.py b/modules/videoUpscaler.py index 7bfefa1..7188d4d 100644 --- a/modules/videoUpscaler.py +++ b/modules/videoUpscaler.py @@ -147,15 +147,30 @@ class videoUpscaler: # Extract task UUID for polling taskUUID = genConfig[0]["taskUUID"] + max_poll_seconds = 2400 # 40 minutes + started_at = rwUtils.time.time() # Poll for video completion while True: + if rwUtils.time.time() - started_at > max_poll_seconds: + raise TimeoutError( + f"Video upscale timed out after {max_poll_seconds} seconds. " + f"Task UUID: {taskUUID}" + ) + # Check for interrupt before each poll comfy.model_management.throw_exception_if_processing_interrupted() # Poll for video result pollResult = rwUtils.pollVideoResult(taskUUID) print(f"[Debugging] Poll result: {pollResult}") + + if not isinstance(pollResult, dict): + # Keep polling if transport layer returned empty/invalid payload. + for _ in range(10): + comfy.model_management.throw_exception_if_processing_interrupted() + rwUtils.time.sleep(0.1) + continue # Check for errors first if pollResult and "errors" in pollResult and len(pollResult["errors"]) > 0: @@ -172,11 +187,22 @@ class videoUpscaler: if status == "success": if "mediaURL" in video_data or "videoURL" in video_data or "videoBase64Data" in video_data: - videos = rwUtils.convertVideoB64List(pollResult, 1920, 1080) + out_width = width if useDimension == "custom" else video_data.get("width", 1920) + out_height = height if useDimension == "custom" else video_data.get("height", 1080) + videos = rwUtils.convertVideoB64List(pollResult, out_width, out_height) # SaveVideo expects a single video object, not a tuple return (videos[0],) if len(videos) > 0 else (None,) + raise Exception( + "Video upscale returned success without mediaURL/videoURL/videoBase64Data. " + f"Response: {rwUtils.safe_json_dumps(video_data, indent=2)}" + ) + if status in ("failed", "error", "cancelled", "canceled"): + raise Exception( + "Video upscale failed with terminal status " + f"'{status}'. Response: {rwUtils.safe_json_dumps(video_data, indent=2)}" + ) - # If status is "processing", continue polling + # If status is "processing" (or unknown transient), continue polling # Check for interrupt before waiting comfy.model_management.throw_exception_if_processing_interrupted()