{"record":{"id":"5495fd89fcb54fee","repo":"Comfy-Org/ComfyUI","slug":"reference-video-i-is-too-short-dur-1f-s-mini","errorCode":null,"errorMessage":"Reference video {i} is too short: {dur:.1f}s. Minimum duration is 1.8 seconds.","messagePattern":"Reference video (.+?) is too short: (.+?)s\\. Minimum duration is 1\\.8 seconds\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"comfy_api_nodes/nodes_bytedance.py","lineNumber":2796,"sourceCode":"            max_px = SEEDANCE2_REF_VIDEO_PIXEL_LIMITS.get(model_id, {}).get(model[\"resolution\"], {}).get(\"max\")\n            if max_px:\n                for key in reference_videos:\n                    reference_videos[key] = downscale_video_to_max_pixels(reference_videos[key], max_px)\n\n        if model.get(\"auto_upscale\") and reference_videos:\n            min_px = SEEDANCE2_REF_VIDEO_PIXEL_LIMITS.get(model_id, {}).get(model[\"resolution\"], {}).get(\"min\")\n            if min_px:\n                for key in reference_videos:\n                    reference_videos[key] = upscale_video_to_min_pixels(reference_videos[key], min_px)\n\n        total_video_duration = 0.0\n        for i, key in enumerate(reference_videos, 1):\n            video = reference_videos[key]\n            _validate_ref_video_pixels(video, model_id, model[\"resolution\"], i)\n            try:\n                dur = video.get_duration()\n                if dur < 1.8:\n                    raise ValueError(f\"Reference video {i} is too short: {dur:.1f}s. Minimum duration is 1.8 seconds.\")\n                total_video_duration += dur\n            except ValueError:\n                raise\n            except Exception:\n                pass\n        if total_video_duration > limits[\"max_total_seconds\"]:\n            raise ValueError(\n                f\"Total reference video duration is {total_video_duration:.1f}s. \"\n                f\"Maximum is {limits['max_total_seconds']} seconds.\"\n            )\n\n        total_audio_duration = 0.0\n        for i, key in enumerate(reference_audios, 1):\n            audio = reference_audios[key]\n            dur = int(audio[\"waveform\"].shape[-1]) / int(audio[\"sample_rate\"])\n            if dur < 1.8:\n                raise ValueError(f\"Reference audio {i} is too short: {dur:.1f}s. Minimum duration is 1.8 seconds.\")\n            total_audio_duration += dur","sourceCodeStart":2778,"sourceCodeEnd":2814,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_api_nodes/nodes_bytedance.py#L2778-L2814","documentation":"Each reference video passed to the Seedance 2 reference node must be at least 1.8 seconds long. The node probes duration via video.get_duration() during pre-flight validation (after pixel checks) and rejects clips shorter than the provider minimum, enumerating the offending clip by 1-based position.","triggerScenarios":"A reference_videos entry whose probed duration is under 1.8s (e.g. a 1-second loop, a trimmed fragment, or a near-empty clip from a failed export).","commonSituations":"Using short loop clips as style references; downstream nodes that produce very short segments; cutting videos with frame-accurate editors that round down.","solutions":["Replace or extend the short clip so it is at least 2 seconds.","Loop the clip to reach the minimum duration before passing it as a reference."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"for key, video in reference_videos.items():\n    if video.get_duration() < 1.8:\n        raise ValueError(f\"clip {key} under 1.8s minimum\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Trim reference clips to at least 2 seconds.","Loop very short clips to reach the minimum before connecting them."],"tags":["bytedance","seedance","video","validation","duration","api-nodes"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}