Nodes/ComfyUI-LTX23-MotionCache/πŸ…›πŸ…£πŸ…§ Generate Video MotionCache
ComfyUI Node

πŸ…›πŸ…£πŸ…§ Generate Video MotionCache

LTX-2.3 frames, audio and all, without the decode stage

By starsFridayΒ·Created 3 months agoΒ·Updated 3 months agoΒ· 3
πŸ…›πŸ…£πŸ…§ Generate Video MotionCache
  • transformer
  • vae_decoder
  • config
  • motion_cache
  • vae_encoder
  • frames
  • audio
  • motioncache_stats

You want an LTX-2.3 clip with MotionCache-style acceleration and you don't want to babysit a decode stage. That's this node: it runs the same cached denoising loop as Ltx23SampleVideoMotionCache, but it decodes for you and hands back plain ComfyUI IMAGE frames - plus the audio, because LTX-2.3 generates that in the same pass. Frames go straight into VHS_VideoCombine and out comes a file.

LTX's whole pitch is iteration speed - generate many, keep the winner - and this node is built for exactly that loop: no latent plumbing between you and a playable video.

How it works

Mechanically it's the same MotionCache path as its sibling: it patches the LTX validation sampler's denoising loop, reuses the previous step's denoised x0 for low-motion tokens, and caches the CFG/STG deltas between forced refresh steps so the expensive guidance forwards don't rerun every step. The difference is the tail end - where Ltx23SampleVideoMotionCache returns a latent LTX_SAMPLED_VIDEO for you to decode, this node calls the sampler's generate() directly, which decodes internally. The video tensor comes back in ComfyUI's [F, H, W, C] layout ready for a video combiner.

The audio output is worth calling out specifically: it's a small dict of a waveform tensor plus its sample rate, produced when your config generates audio. In practice that plugs into VHS_VideoCombine's audio input and you get a clip with sound - one of the genuinely rare things local video models could do before LTX-2.

Inputs and outputs

Required inputs:

  • transformer (LTX_TRANSFORMER)
  • vae_decoder (LTX_VIDEO_VAE_DECODER)
  • config (LTX_SAMPLING_CONFIG)
  • motion_cache (LTX23_MOTION_CACHE_CONFIG - the object from the Ltx23MotionCache config node, where all the tuning lives)

Optional: vae_encoder (LTX_VIDEO_VAE_ENCODER). Technically optional on the schema, effectively mandatory - like its sibling, this node throws "vae_encoder is required for I2V / IC / Mask workflows" if you have image conditioning, a reference video, or a mask set without one connected. Keep it wired.

Outputs:

  • frames (IMAGE) - decoded frames, straight into VHS_VideoCombine or a preview node.
  • audio (AUDIO) - waveform + sample rate dict for LTX's generated audio. Empty dict if no audio in the run.
  • motioncache_stats (STRING) - the per-run stats summary. Average update ratio is the number to watch: near the top of its range means the cache barely engaged, near the bottom means you're over-reusing and motion may be smearing.

Choosing between the two sampler nodes

Same core, different exit. Use Ltx23GenerateVideoMotionCache when you want frames (and audio) directly - simplest possible path to a rendered clip. Use Ltx23SampleVideoMotionCache when your workflow already decodes LTX_SAMPLED_VIDEO later, e.g. because it has a dedicated decode/upscale stage. Don't chain both; you'd be decoding twice.

Installing

Same pack: starsFriday/ComfyUI-LTX23-MotionCache. Find it in ComfyUI Manager by searching "LTX23 MotionCache", or:

cd ComfyUI/custom_nodes
git clone https://github.com/starsFriday/ComfyUI-LTX23-MotionCache

Restart after cloning. No pip dependencies - but this node does import ltx_core and ltx_trainer from the LTX-2 source tree at runtime, same as its sibling. If they aren't installed as packages:

export LTX2_REPO_ROOT=/path/to/LTX-2

The path must contain packages/ltx-core/src, packages/ltx-trainer/src, and packages/ltx-pipelines/src. And remember the pack ships no LTX-2.3 weights - you need a working LTX-2.3 runtime (official ComfyUI-LTXVideo nodes) already in place, which at 22B you've clearly been through the mill to get working already.

Common issues

  • The I2V/IC/mask encoder error - same one as the sibling node. Connect a vae_encoder.
  • Import error on ltx_core/ltx_trainer - LTX2_REPO_ROOT not set, or the LTX source tree isn't importable.
  • Video looks frozen or smudged on fast motion - classic over-caching. Back off on the config node: lower refresh_interval, raise min_update_ratio, lower motion_threshold.
  • No audio in the output - your sampling config isn't set to generate audio. The node can only return what the run produced.
Categoryvideo/LTX-2.3/MotionCache

Inputs (5)

NameTypeDefaultDescription
transformerLTX_TRANSFORMERβ€”
vae_decoderLTX_VIDEO_VAE_DECODERβ€”
configLTX_SAMPLING_CONFIGβ€”
motion_cacheLTX23_MOTION_CACHE_CONFIGβ€”
vae_encoderoptLTX_VIDEO_VAE_ENCODERβ€”

Outputs (3)

NameTypeDescription
framesIMAGEβ€”
audioAUDIOβ€”
motioncache_statsSTRINGβ€”