LTX-2.5 duration predictor: optional, and Sume sets seconds
LTX-2.5 has an optional duration predictor that sets the frame count from the prompt. Sume has no such mode: you send duration in whole seconds.

LTX-2.5 can pick a clip's length itself. Its Hugging Face card lists an optional duration predictor, an opt-in node that predicts length from the prompt and sets the frame count, and the CLI example says to omit --num-frames to let the duration head choose. Sume has no auto-duration mode for a named model: duration is an integer number of seconds, and the allowed range depends on the model.
LTX facts are from the LTX-2.5 model card and the LTX model page, read 2026-10-02. Sume facts are from Video generation and Video Router.
How does the LTX-2.5 duration predictor work?
The card says the predictor is optional and opt-in, and that it sets the frame count instead of a fixed-duration parameter. In the distilled pipeline you pass --duration-head-path pointing at ltx-2.5-duration-head-bf16.safetensors, a file in model_patches/ in the repo. If you leave out --num-frames, the head picks the length; if you set it, the value must satisfy frames % 8 == 1.
The LTX model page describes the same feature as Auto Duration: clip length is predicted from the described action. Neither page gives a range for the predicted length, so test your own prompts.
| Question | LTX-2.5 (open weights) | Sume (named model) |
|---|---|---|
| Who sets length? | You, or the optional duration head | You, with duration |
| Unit | Frames; must satisfy frames % 8 == 1 | Whole seconds |
| Range | Not stated on the card | Per model: wan-3.0 2 to 30, seedance-2.5 4 to 30, H3 5 to 15, Omni 3 to 10, others up to 15 |
| If you omit it | The duration head predicts, when installed | Sume Auto defaults to 8 seconds; read supported_durations for a named id |
How do I convert seconds to a valid LTX frame count?
The card's diffusers example uses 121 frames at 24 fps, which is a little over 5 seconds. A small helper rounds a target duration to the nearest valid count. The 24 fps value is the example's, not a rule.
Round to the nearest 8k + 1, never below 9, then check the result against your pipeline's own limits.
def ltx_frames(seconds: float, fps: float = 24.0) -> int:
k = max(1, round(seconds * fps / 8))
return k * 8 + 1
for s in (2, 5, 10):
n = ltx_frames(s)
print(s, "s ->", n, "frames, assert", n % 8 == 1)What changes if I call Sume instead?
Sume's OpenAPI describes duration as an integer from 2 to 30 with per-model limits, and the catalog's supported_durations array is the list to read per id. There is no LTX id in the OpenAPI model enum, so this is a comparison of controls, not a route. Pick the seconds you want, send duration, and let the model's range reject anything outside it.
Sources
Related posts
More in Models
- Is LTX-2.5 gated on Hugging Face? Agree, log in, then download
Yes: the LTX-2.5 repository is gated. Agree to share your contact details on the model page, run hf auth login, then hf download. It is free under $10M revenue.
- MAI-Image-2.6 output cap is 2,359,296 pixels; Sume sizes differ
MAI-Image-2.6 sets a 2,359,296-pixel ceiling and a 768-pixel minimum edge. Sume sets size per model with tiers, ratios and, for GPT models, custom pixels.
- MAI-Image-2.6 edits take 5 references; Sume takes 10 or 16
MAI-Image-2.6 in Foundry accepts up to five JPEG or PNG reference images per edit. On Sume, input_references tops out at 10, or 16 on GPT Image 2.5.
- MAI-Image-2.6 web_grounding flag: what Sume has instead
MAI-Image-2.6 can pull Bing results into an image when web_grounding is on. Sume has no such flag; here is how to pass current facts in the prompt instead.
Written by Sume