{"record":{"id":"e24cb6e00118067b","repo":"Comfy-Org/ComfyUI","slug":"minimum-supported-duration-for-seedance-1-5-pro-is","errorCode":null,"errorMessage":"Minimum supported duration for Seedance 1.5 Pro is 4 seconds.","messagePattern":"Minimum supported duration for Seedance 1\\.5 Pro is 4 seconds\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"comfy_api_nodes/nodes_bytedance.py","lineNumber":1520,"sourceCode":"            is_api_node=True,\n            price_badge=PRICE_BADGE_VIDEO,\n        )\n\n    @classmethod\n    async def execute(\n        cls,\n        model: str,\n        prompt: str,\n        resolution: str,\n        aspect_ratio: str,\n        duration: int,\n        seed: int,\n        camera_fixed: bool,\n        watermark: bool,\n        generate_audio: bool = False,\n    ) -> IO.NodeOutput:\n        if model == \"seedance-1-5-pro-251215\" and duration < 4:\n            raise ValueError(\"Minimum supported duration for Seedance 1.5 Pro is 4 seconds.\")\n        validate_string(prompt, strip_whitespace=True, min_length=1)\n        raise_if_text_params(prompt, [\"resolution\", \"ratio\", \"duration\", \"seed\", \"camerafixed\", \"watermark\"])\n\n        prompt = (\n            f\"{prompt} \"\n            f\"--resolution {resolution} \"\n            f\"--ratio {aspect_ratio} \"\n            f\"--duration {duration} \"\n            f\"--seed {seed} \"\n            f\"--camerafixed {str(camera_fixed).lower()} \"\n            f\"--watermark {str(watermark).lower()}\"\n        )\n        return await process_video_task(\n            cls,\n            payload=Text2VideoTaskCreationRequest(\n                model=model,\n                content=[TaskTextContent(text=prompt)],\n                generate_audio=generate_audio if model == \"seedance-1-5-pro-251215\" else None,","sourceCodeStart":1502,"sourceCodeEnd":1538,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_api_nodes/nodes_bytedance.py#L1502-L1538","documentation":"Raised by ByteDanceTextToVideoNode when model is 'seedance-1-5-pro-251215' and the duration widget is below 4. Seedance 1.5 Pro cannot generate clips shorter than 4 seconds; the node validates this before building the '--duration' prompt suffix and calling the video API.","triggerScenarios":"Selecting seedance-1-5-pro-251215 with duration=3 (or lower) on the text-to-video node; durations are otherwise constrained by the widget but 3s is valid for older Seedance models.","commonSituations":"Reusing a workflow tuned for Seedance 1.0 (which allows 3-12s) after switching the model dropdown to 1.5 Pro; trying to save credits with a short clip.","solutions":["Set duration to at least 4 seconds for seedance-1-5-pro-251215.","Switch to a non-1.5-Pro model if a 3-second clip is a hard requirement."],"exampleFix":"// before\nmodel: seedance-1-5-pro-251215\nduration: 3 // -> raises\n\n// after\nduration: 4 // passes","handlingStrategy":"validation","validationCode":"if model == 'seedance-1-5-pro-251215':\n    duration = max(duration, 4)  # or raise, per your policy","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Clamp duration to >=4 when the 1.5 Pro model is selected.","Parameterize duration per model in workflow templates."],"tags":["bytedance","seedance","video","duration-validation","api-nodes"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}