Nodes/ComfyUI-FL-LTXTools/FL LTX Motion Boost
ComfyUI Node

FL LTX Motion Boost

LTX-Video has no motion knob — this node fakes one, and it mostly works

By filliptm·Created 4 months ago·Updated 4 months ago· 4
FL LTX Motion Boost
  • positive
  • negative
  • vae
  • positive
  • negative
  • vae
motion_intensity0.50
decode_noise0.025
decode_timestep0.050
base_frame_rate25
override_frame_rate-1

If you've generated more than one LTX-Video clip you've hit the wall: the model is absurdly fast, but there's no "how much motion" dial anywhere, so your scenes either crawl or go full weather-alert turbulence. FL LTX Motion Boost is a single node from the tiny FL LTX Tools pack that gives you exactly one slider for that problem - and it's a legitimately clever hack, not a marketing gimmick.

Here's the dirty secret. LTX-Video has no motion parameter because motion isn't one thing - it emerges from a bunch of interacting levers. The most reliable one is the frame_rate value baked into the conditioning, which the model reads through its RoPE temporal embeddings. Lower the frame rate and each output frame covers a bigger imaginary time slice, so the model packs more movement between frames. That's the whole trick: motion_intensity just lowers that frame rate for you, proportionally.

The math is on the tin. With the default base_frame_rate of 25, the final fps is base_frame_rate * (1.0 - motion_intensity * 0.6). So 0.0 gives you 25 fps (untouched), 0.5 gives you ~17.5 fps, and 1.0 drops you to 10 fps - the README's "chaotic" end. The node writes that value into both your positive and negative conditioning using the same pattern as ComfyUI's built-in LTXVConditioning, which is why the author calls it a drop-in replacement for that node. It also patches a clone of your VAE with two decode-time settings, decode_noise (default 0.025) and decode_timestep (default 0.05), which add per-frame stochasticity so boosted motion doesn't read as mechanical. The source ships in modules/vae_patcher.py and clones the wrapper rather than mutating your original VAE - a nice touch, since a utility node that silently changes your shared VAE reference would be a footgun.

The inputs that matter

You'll mostly touch three knobs:

  • motion_intensity (0.0–1.0, default 0.5) - the whole point. Start at 0.5, then think in small steps. 0.3–0.6 is the usable band for most clips; past 0.8 you're inviting flicker.
  • decode_noise (0.0–0.5, default 0.025) - VAE-side stochasticity. If boosted motion comes out jittery, this is your first lever.
  • decode_timestep (0.0–0.5, default 0.05) - leave it alone unless you know what you're doing; it's an LTX default for a reason.

The two optional ints are for control freaks. base_frame_rate (6–60, default 25) re-anchors the scaling; override_frame_rate (-1 or 6–60, default -1) lets you set a specific fps and ignores motion_intensity for that lever entirely. Outputs are positive, negative, and vae - splice the node between your text encoders and the sampler, and run the vae output into your VAE decode as usual.

Install

It's a one-trick pack, so setup is trivial. In ComfyUI Manager, search "FL LTX Tools" and hit install. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-LTXTools.git
cd ComfyUI-FL-LTXTools
pip install -r requirements.txt

Then restart ComfyUI. That requirements.txt is literally just torch>=2.0.0 - there are no extra dependencies, no model downloads, no patreon-gated weights. You still need an LTX model via the official ComfyUI-LTXVideo nodes; this pack only adds the motion logic on top.

Where people get burned

The VAE-side half of the node only works if the VAE you feed it is a genuine LTX CausalVideoAutoencoder - it checks for decode_noise_scale/decode_timestep attributes and silently passes through with a warning if they're missing. So it's built for the classic LTX-Video line (0.9.x / 13B era). If you're on LTX-2 or 2.3 with their newer latent space, expect the motion_intensity/frame-rate lever to still work but the decode-noise knobs to be dead weight. And remember this is one lever among several: LTX motion is famously finicky, and the community leans on seed-hunting and occasionally a Wan cleanup pass for fast, complex motion. This node won't fix that - it just makes one knob you'll actually reach for.

CategoryFL LTX Tools/Motion

Inputs (8)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
motion_intensityFLOAT0.500–10.0 = static (no motion boost), 0.5 = balanced default, 1.0 = maximum motion (lowers frame_rate ~60%).
decode_noiseFLOAT0.0250–0.5VAE decode noise scale. Adds organic per-frame stochasticity. 0.025 is the LTX default. Higher = more textural noise + smoother motion.
decode_timestepFLOAT0.0500–0.5VAE decode noise timestep. 0.05 is the LTX default.
base_frame_rateoptINT256–60Reference fps before motion_intensity scaling. Final fps = base_frame_rate * (1.0 - motion_intensity * 0.6).
override_frame_rateoptINT-1-1–60If >= 6, sets the conditioning frame_rate explicitly and ignores motion_intensity for this lever. -1 = auto.

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE