Doss Motion Settings | LTX 2.5
The LTX control panel that stops you from counting frames by hand
- positive_prompt
- negative_prompt
- duration_seconds
- fps
- frame_count
- seed
- motion_strength
- image_adherence
LTX is the speed tier of local video - seconds per clip where Wan takes minutes - but it's always been a pain to steer. The official Motion Track workflow exists to fix that, and the catch is it wants a pile of primitives wired together: a prompt, a duration, a seed, an FPS, an I2V strength, a sample count that has to be exactly right. That's the job of Doss Motion Settings | LTX 2.5. It's one node that collects everything the LTX side of your workflow needs and hands each value out as its own typed output, plus a frame_count it computes for you.
Here's the part people trip over that this node quietly solves: LTX's VAE does 8x temporal compression, so valid frame counts are always 8n+1. Five seconds at 24fps is 121 frames (the classic LTX clip length). Get that wrong and you either crash or you get a glitchy, choppy clip that jumps in 8-frame blocks. This node computes it for you with 1 + floor(duration * fps / 8) * 8, and exposes the result as a frame_count output. No mental math, no calculator, no "why is my video stuttering."
The inputs that actually matter
It's a short list, and most of it is self-explanatory:
- positive_prompt (multiline) and negative_prompt - your text, passed straight through. LTX is pickier than SD about prompts, so be specific about camera and motion.
- duration_seconds - 1 to 20, in 0.5 steps, default 5. This drives the frame math.
- seed - standard, with a
control_after_generaterandomize button. It's your seed-hunting dial, and with LTX that's the highest-leverage knob you have. - motion_strength - 0 to 1.5, default 1. How hard the motion control pushes the output. Above 1 is the "make it obvious" zone.
- image_adherence - 0 to 1, default 0.7. How tightly the result sticks to the starting frame. The community's usual starting point for I2V strength is around 0.8, so the default is in the right neighborhood.
- fps - just 24 or 30, default 24.
What wires where
The node emits all eight values as separate outputs: positive_prompt, negative_prompt, duration_seconds, fps, frame_count, seed, motion_strength, image_adherence. The one you'll reach for most is frame_count - feed it straight into the LTX sampler's sample count and never think about it again. image_adherence and motion_strength go to the LTX conditioning side of the graph; the prompt outputs usually feed a text encoder or conditioning node.
Honest framing: this is a bundle of primitives, not magic. You could wire each value by hand and get the same result. What you get for using it is a single, labeled panel and - the real win - the frame math done correctly, every time. For a workflow you'll run dozens of times while hunting seeds, that's worth the two minutes.
Install
It ships in the Doss Node Suite pack, which has zero third-party runtime dependencies (the whole thing is stdlib Python plus browser JavaScript - nothing to pip, no model downloads). Either way, restart ComfyUI after installing:
- ComfyUI Manager - search for "Doss Node Suite" and install.
- Manual - clone into custom nodes:
cd C:\AI\ComfyUI\custom_nodes
git clone https://github.com/JamesDanielDoss/Doss-Node-Suite.git ComfyUI-Doss-Node-Suite
Then restart ComfyUI and search for Doss. The three LTX nodes sit under the ⚡ Doss Node Suite/LTX-2.5 category.
Where people get burned
The big one: this node is one third of a set. Settings alone generates nothing. You still need the official LTX model, the Motion Track IC-LoRA, and Lightricks' ComfyUI-LTXVideo nodes - and this node's frame_count is meant to feed the pack's Resolve Motion Tracks node, not a sampler you wired by guesswork. Second gotcha: if the number in your sampler doesn't match the derived frame count, you've re-created the stutter problem the node exists to prevent. Wire the frame_count output, don't type a number you eyeballed. And if you load a saved workflow and the panel looks wrong, update the pack - older versions had a sync bug where the visible controls showed stale defaults after ComfyUI restored a workflow.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| positive_prompt | STRING | — | |
| duration_seconds | FLOAT | 5.01–20 | — |
| negative_prompt | STRING | — | |
| seed | INT | 420–9223372036854776000 | — |
| motion_strength | FLOAT | 1.000–1.5 | — |
| image_adherence | FLOAT | 0.700–1 | — |
| fps | COMBO | 24 | 2 options: 24, 30 |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |
| duration_seconds | FLOAT | — |
| fps | FLOAT | — |
| frame_count | INT | — |
| seed | INT | — |
| motion_strength | FLOAT | — |
| image_adherence | FLOAT | — |