π π £π § Generate Video MotionCache
LTX-2.3 frames, audio and all, without the decode stage
- 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 theLtx23MotionCacheconfig 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 intoVHS_VideoCombineor 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_ROOTnot 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, raisemin_update_ratio, lowermotion_threshold. - No audio in the output - your sampling config isn't set to generate audio. The node can only return what the run produced.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| transformer | LTX_TRANSFORMER | β | |
| vae_decoder | LTX_VIDEO_VAE_DECODER | β | |
| config | LTX_SAMPLING_CONFIG | β | |
| motion_cache | LTX23_MOTION_CACHE_CONFIG | β | |
| vae_encoderopt | LTX_VIDEO_VAE_ENCODER | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | β |
| audio | AUDIO | β |
| motioncache_stats | STRING | β |