Comfy-Org/ComfyUI · warning · ValueError

Durations over 10s require a 720p or 1080p resolution and 24

Error message

Durations over 10s require a 720p or 1080p resolution and 24/25 FPS.

What it means

Client-side settings validation for LTX v2.5 nodes: durations above 10 seconds are only allowed at 720p/1080p resolutions and FPS of 24 or 25. If duration > 10 and fps > 25 or the resolution is 1440p/4K, a ValueError is raised before any API call.

Source

Thrown at comfy_api_nodes/nodes_ltxv.py:217


def _v25_seed_input() -> IO.Int.Input:
    return IO.Int.Input(
        "seed",
        default=42,
        min=0,
        max=0xFFFFFFFF,
        control_after_generate=True,
        tooltip="Seed to determine if node should re-run; "
        "actual results are nondeterministic regardless of seed.",
    )


def _v25_validate_settings(model: dict) -> None:
    if int(model["duration"]) > 10 and (
        int(model["fps"]) > 25 or model["resolution"] in ("2560x1440", "1440x2560", "3840x2160", "2160x3840")
    ):
        raise ValueError("Durations over 10s require a 720p or 1080p resolution and 24/25 FPS.")


class TextToVideoNode(IO.ComfyNode):
    @classmethod
    def define_schema(cls):
        return IO.Schema(
            node_id="LtxvApiTextToVideo",
            display_name="LTXV Text To Video",
            category="partner/video/LTXV",
            description="Professional-quality videos with customizable duration and resolution.",
            inputs=[
                IO.Combo.Input("model", options=list(MODELS_MAP.keys())),
                IO.String.Input(
                    "prompt",
                    multiline=True,
                    default="",
                ),
                IO.Combo.Input("duration", options=[6, 8, 10, 12, 14, 16, 18, 20], default=8),

View on GitHub (pinned to 1c6d8d45b3)

Solutions

  1. Set duration <= 10s, or keep duration > 10s with 1280x720/1920x1080 (portrait variants) and fps 25.
  2. If you need 30fps, keep duration at or below 10 seconds.
  3. For 4K/1440p output, generate at 1080p long-form and upscale elsewhere.

Example fix

// before
model = {"duration": 12, "fps": 30, "resolution": "1920x1080"}
// after
model = {"duration": 12, "fps": 25, "resolution": "1920x1080"}
Defensive patterns

Strategy: validation

Validate before calling

dur, fps, res = int(model["duration"]), int(model["fps"]), model["resolution"]
if dur > 10 and (fps not in (24, 25) or res in ("2560x1440", "1440x2560", "3840x2160", "2160x3840")):
    raise ValueError("Long durations need 720p/1080p at 24/25 FPS")

Type guard

def v25_settings_valid(model: dict) -> bool:
    if int(model["duration"]) <= 10:
        return True
    return int(model["fps"]) <= 25 and model["resolution"] not in (
        "2560x1440", "1440x2560", "3840x2160", "2160x3840",
    )

Prevention

When it happens

Trigger: Executing a v2.5 LTX node with model['duration'] > 10 while model['fps'] > 25 (e.g. 30) or model['resolution'] in {2560x1440, 1440x2560, 3840x2160, 2160x3840}. Note the check allows fps <= 25 but the message says 24/25 — fps below 24 may still be rejected by the API.

Common situations: Copying a short-form 30fps preset then raising duration to 12s; switching resolution widget to 4K without lowering duration; workflows that compute duration dynamically exceeding 10s only for some inputs.

Related errors


AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14). Data as JSON: /api/errors/c39b8bda52893dc7. Report an issue: GitHub.