Nodes/CRT-Nodes/LTX Unified Sampler (CRT)
ComfyUI Node

LTX Unified Sampler (CRT)

One node, the entire LTX 2.3 pipeline — audio, depth, upscale and all

By PGCRT·Created 2 years ago·Updated 2 days ago· 132
LTX Unified Sampler (CRT)
  • models_pipe
  • config_pipe
  • images
  • audio
workflow_modeI2V
qualityStandard
live_previewfalse
frame_count_from_audiofalse
vae_decode_tiledtrue
unload_model_before_vae_decodetrue
low_vramtrue
megapixels_target1.0
aspect_ratio16:9 (Landscape)
frame_count161
v2v_modeDepth Control
v2v_guide_strength0.60
v2v_aspect_ratio16:9 (Landscape)
legacy_sampler_maineuler
legacy_sampler_refineeuler
steps9
generated_audio_gain_db-12.0
firstframe_strength0.70
legacy_compat_1false
legacy_compat_20.25
legacy_compat_3true
legacy_compat_410
legacy_compat_58
legacy_compat_68.0

LTX 2.3 is the Lightricks release that finally made the model competitive: 22B parameters, synchronized audio and video in one model, a rebuilt VAE with sharper detail, and the I2V that actually moves. It's genuinely the best local video model for a lot of people now. But "one model" doesn't mean one node - a proper LTX 2.3 workflow is a small forest of encoders, VAEs, guides, upscalers and samplers. This node's job is to fold that forest into a single box.

You hand it a models pipe and a config pipe from the pack's sibling nodes, pick a mode, and it runs the whole generation: conditioning, sampling, latent upscaling, refinement, VAE decode, and it hands you back images and the audio track.

How it works

The Unified Sampler implements LTX 2.3's two-stage default: generate at half resolution, run the latent upscaler, then a refinement pass. The hq toggle skips all that and does one full-resolution pass instead - maximum quality, longer run. Along the way it manages the pieces that make LTX 2.3 memory-friendly: low_vram unloads the text encoder after conditioning and the VAEs before sampling (they reload for decode), unload_model_before_vae_decode frees the diffusion model before decode, and vae_decode_tiled cuts peak VRAM during decode at the cost of time.

The mode switch drives everything:

  • I2V - image-to-video from a first frame.
  • T2V - pure text-to-video.
  • V2V - video-to-video, with its own sub-modes: Depth Control (a depth guide conditions the output), Outpaint, or Upscale, tuned by v2v_guide_strength.

Audio is first-class here. frame_count_from_audio derives the video length from your source audio instead of the frame_count widget, and generated_audio_gain_db trims the synthesized audio track's level - negative defaults exist because LTX's generated audio tends to come in hot.

The inputs that matter

The two pipe inputs are non-negotiable: models_pipe (LTX23_US_MODELS_PIPE, from the pack's LTX 2.3 US Models Pipe node) and config_pipe (LTX23_US_CONFIG_PIPE, from LTX 2.3 US Config). Everything else is knobs:

  • workflow_mode - I2V / T2V / V2V.
  • hq - one-pass full-res vs. two-stage.
  • megapixels_target and aspect_ratio - the output canvas, with a big list of presets.
  • frame_count - length, default 161 (the LTX-friendly 8n+1 shape).
  • steps - defaults to 9, right for the distilled model.
  • depth_mouth_mask, mouth_mask_expand, mouth_mask_blur - lip-motion influence on the depth guide, for lipsync work. The three older mouth inputs (mouth_detect_megapixels, mouth_single_item, mouth_detect_chunk_size) are deprecated and ignored, per their tooltips - don't waste time tuning them.

Outputs are images (IMAGE) and audio (AUDIO). Wire them to a Save Video With Path-style saver.

Installing it

Install the pack: ComfyUI Manager → search CRT-Nodes, or git clone https://github.com/PGCRT/CRT-Nodes.git into custom_nodes plus pip install -r requirements.txt, then restart. The models themselves come from the AutoDL loader nodes (LTX 2.3 Model, VAEs, Gemma 3 + projection text encoders), which auto-download on first run.

Where people get burned

VRAM is the whole game. LTX 2.3 is 22B plus a 12B-class Gemma 3 text encoder - the KB's LTX history is a graveyard of OOM threads. Leave low_vram on, and if you still hit walls, the pack's GGUF Q4 model node exists precisely to get this running on smaller cards. Also: the deprecated mouth inputs are a classic trap because they look functional. They're compatibility shims, hardcoded internally - set depth_mouth_mask and the expand/blur values and ignore the rest.

CategoryCRT/LTX2.5

Inputs (26)

NameTypeDefaultDescription
models_pipeLTX23_US_MODELS_PIPE
config_pipeLTX23_US_CONFIG_PIPE
workflow_modeCOMBOI2VSelect image-to-video, text-to-video, or video-to-video execution. Required config inputs depend on this mode.
qualityCOMBOStandardDraft: half-resolution pass + latent upscale + refinement (fastest). Standard: full-resolution single pass. Max: full-resolution pass plus a short self-refinement pass for extra detail.
live_previewBOOLEANfalseAnimated true-pace video preview during sampling via the auto-downloaded taeltx approximation. Adds per-step decode overhead - disabled by default.
frame_count_from_audioBOOLEANfalseWhen source audio is connected, derive the video length from its duration instead of frame_count.
vae_decode_tiledBOOLEANtrueDecode video latents in tiles to reduce peak VRAM at the cost of additional processing time.
unload_model_before_vae_decodeBOOLEANtrueUnload the diffusion model after sampling and before VAE decode to reduce decode-time VRAM.
low_vramBOOLEANtrueUnload CLIP after conditioning and VAEs before sampling, then reload VAEs for decode. Depth Anything V3 is always unloaded immediately after depth estimation.
megapixels_targetFLOAT1.00.1–16Target output area in megapixels before model-specific dimension quantization.
aspect_ratioCOMBO16:9 (Landscape)20 options: 1:1 (Square), 2:3 (Portrait), 3:4 (Portrait), 4:5 (Portrait), 5:7 (Portrait), 5:8 (Portrait), +14
frame_countINT1611–4096Requested output length. LTX requires 8k+1 frames; invalid values are normalized automatically and reported in the console.
v2v_modeCOMBODepth ControlDepth Control follows scene depth; Outpaint expands the canvas; Upscale performs guided video enlargement. Each optional mode needs its matching model pipe input.
v2v_guide_strengthFLOAT0.600–1Strength of the V2V depth guide. Higher values follow the source structure more closely.
v2v_aspect_ratioCOMBO16:9 (Landscape)20 options: 1:1 (Square), 2:3 (Portrait), 3:4 (Portrait), 4:5 (Portrait), 5:7 (Portrait), 5:8 (Portrait), +14
legacy_sampler_mainSTRINGeulerReserved compatibility value; ignored.
legacy_sampler_refineSTRINGeulerReserved compatibility value; ignored.
stepsINT99–9Legacy compatibility value. LTX 2.3 distilled inference now always uses its fixed trained sigma schedule.
generated_audio_gain_dbFLOAT-12.0-60–24Gain applied to generated audio after decode, in decibels.
firstframe_strengthFLOAT0.700–1Influence of the connected first-frame anchor during generation. Zero disables anchoring. The two-stage refinement pass always re-anchors the raw image at full strength.
legacy_compat_1BOOLEANfalseReserved compatibility value; ignored.
legacy_compat_2FLOAT0.250.25–0.25Reserved compatibility value; ignored.
legacy_compat_3BOOLEANtrueReserved compatibility value; ignored.
legacy_compat_4INT1010–10Reserved compatibility value; ignored.
legacy_compat_5INT88–8Reserved compatibility value; ignored.
legacy_compat_6FLOAT8.08–8Reserved compatibility value; ignored.

Outputs (2)

NameTypeDescription
imagesIMAGE
audioAUDIO