Nodes/comfyui-ltx2-efficient/LTX2 Efficient Sampler Pro πŸš€
ComfyUI Node

LTX2 Efficient Sampler Pro πŸš€

The FFN

By kakachiex2Β·Created 7 months agoΒ·Updated 7 months agoΒ· 10
LTX2 Efficient Sampler Pro πŸš€
  • model
  • latent_video
  • positive
  • negative
  • sigmas
  • LATENT
β—„seed0β–Ί
β—„steps20β–Ί
β—„cfg4.00β–Ί
β—„sampler_nameβ–Ύβ–Ί
β—„denoise1.00β–Ί
β—„optimization_presetThermal Auto-Scaleβ–Ί
β—„target_temp70β–Ί
β—„freeze_ratio0.30β–Ί
β—„thermal_throttletrueβ–Ί
β—„context_slice_methodKeep Last 4096 (Slot 2 - LTX Connector)β–Ί
β—„ffn_chunks8β–Ί
β—„max_shift2.05β–Ί
β—„base_shift0.95β–Ί
β—„terminal0.10β–Ί
β—„stretchtrueβ–Ί
β—„frame_rate25.00β–Ί

The regular LTX2EfficientSampler keeps your GPU cool by freezing attention and throttling. This one, LTX2EfficientSamplerPro, goes after a different and arguably more important bottleneck: the feed-forward network. In LTX-2, the FFN expands the hidden dimension 4x - roughly 4096 tokens to 16384 - and that intermediate tensor is where peak VRAM actually lives. The Pro sampler chunks that computation, cutting the memory hit per layer by up to ~8x at the cost of some speed. It's the same pack, same idea, one more lever, and honestly the lever most low-VRAM users actually need.

What's different from the regular sampler

Same core inputs: model, latent_video, positive, negative, seed, steps, cfg, sampler_name, denoise, the optimization_preset list, target_temp, freeze_ratio, thermal_throttle, and context_slice_method. What it drops: frame_stride, attention_window, and the optimization_engine selector - the Pro keeps things simpler. What it adds:

  • ffn_chunks - the headline feature, default 8. This splits each FFN's sequence dimension into N chunks and runs them sequentially, so the big 16384-wide intermediate never exists at full size. Higher = less VRAM but slower; 1 disables chunking entirely. On the author's own bug log the machine is an RTX 2060 6GB, so this is tuned for that kind of territory.
  • CFGGuider-based sampling - the Pro uses ComfyUI's CFGGuider path, the same one SamplerCustomAdvanced uses. That matters because it properly handles LTX-2's combined audio-video NestedTensor latents, which the plain path trips over. If you're feeding it audio-video latents from LTXVConcatAVLatent, this is the sampler variant that's built for them.
  • The same model patching for attention_mask and context slicing (7680 β†’ 4096) that the pack's standalone LTX2ModelPatcher provides, built in.

The FFN chunking itself is credited in the source to ox1111's comfyui_ltx-2_vram_memory_management project - a known technique for LTX-2 specifically - so this isn't a made-up knob; it's a real memory-management trick wrapped in a sampler.

Wiring it up

[UnetLoaderGGUF / UNETLoader] --MODEL--> [LTX2EfficientSamplerPro] --LATENT--> [LTX2TemporalVAEDecode] --IMAGE--> [SaveVideo]
[DualCLIPLoader]               --positive/negative-->/

It outputs a plain LATENT, so it drops into the same graph as the non-Pro sampler. If your latent comes from a combined audio-video source, route it through LTX2SeparateAVLatent first to pull the video half out (or just feed the Pro the combined latent - it's the one that handles it natively).

Installation

The pack installs once and all ten nodes come with it: ComfyUI Manager, search "LTX2 Efficient", or manually:

cd ComfyUI/custom_nodes/
git clone https://github.com/kakachiex2/comfyui-ltx2-efficient
cd comfyui-ltx2-efficient
pip install -r requirements.txt

Then restart. requirements.txt is just pynvml (optional). No model files - you bring your own LTX-2 checkpoint, text encoder, and VAE via ComfyUI-LTXVideo. And note the README's manual clone URL has a typo pointing at a differently-named repo; the command above is the correct one.

Troubleshooting

  • Slower than the regular sampler - that's expected and the point: ffn_chunks trades speed for VRAM. If you have headroom, lower it to 4 or 2.
  • Still OOM - raise ffn_chunks to 12-16 rather than dropping resolution, then fall back to a leaner optimization_preset if needed.
  • Audio-video decode breaks downstream - make sure you're recombining with LTX2CombineAVLatent before hitting a LTXVDecodeAV-style node, or the audio half of the latent is gone.

Is the πŸš€ earned? Sort of. It's the same freezing-and-throttling as the base sampler, but the FFN chunking is a real addition that the base node lacks, and the CFGGuider path fixes a genuine audio-video pain point. For anyone on 8GB or less, I'd reach for this one over the plain sampler.

Categoryvideo/ltx2

Inputs (21)

NameTypeDefaultDescription
modelMODELβ€”
latent_videoLATENTβ€”
positiveCONDITIONINGβ€”
negativeCONDITIONINGβ€”
seedINT00–18446744073709550000β€”
stepsINT201–10000β€”
cfgFLOAT4.000–100β€”
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
denoiseFLOAT1.000–1β€”
optimization_presetCOMBOThermal Auto-Scale7 options: Quality - Fast (RTX 3080+), Quality - Balanced (RTX 3060/3070), Quality - RTX 2060 6GB, Quality - Cool (RTX 2060 6GB), Quality - Ultra Cool (Low Power GPUs), Thermal Auto-Scale, +1
target_tempINT7050–85β€”
freeze_ratioFLOAT0.300–1β€”
thermal_throttleBOOLEANtrueβ€”
context_slice_methodCOMBOKeep Last 4096 (Slot 2 - LTX Connector)For Gemma+LTX Connector: use Last 4096. For T5+Gemma: use First 4096.
ffn_chunksoptINT81–24[PRO] Number of chunks for FFN processing. Higher = less VRAM but slower. 1=disabled.
sigmasoptSIGMASConnect LTXVScheduler output here to override internal scheduler
max_shiftoptFLOAT2.050–100FlowMatch max shift (same as LTXVScheduler)
base_shiftoptFLOAT0.950–100FlowMatch base shift (same as LTXVScheduler)
terminaloptFLOAT0.100–0.99Sigma terminal value after stretching
stretchoptBOOLEANtrueStretch sigmas to [terminal, 1] range
frame_rateoptFLOAT25.000–1000Frame rate for conditioning (same as LTXVConditioning)

Outputs (1)

NameTypeDescription
LATENTLATENTβ€”