DEV Community

AI-KSK
AI-KSK

Posted on

LTX 2.3 Without the Guesswork: 7 ComfyUI Graphs, 8 Steps vs 15, and Why Non-Accelerated Wins for Text-to-Video

LTX 2.3's official ComfyUI examples were updated, and the update creates a decision problem: single-stage or two-stage, distilled or full, text-to-video or image-to-video, GGUF or FP8. This episode answers it with seven graphs that cover every branch, plus an opinion that is easy to miss: for text-to-video the author throws the accelerated route away.

Evidence note: this episode ships seven workflow JSON files, and the parameter values below are read from them. Where the author's spoken recommendation differs from a file's stored value, that is called out.

When this is useful

  • You want LTX 2.3 with audio and you need to know which of the seven graphs to open first.
  • You are on a 24GB-class card and need the quantized path (GGUF Q4_K_S plus FP8 Gemma 3).
  • You already have a good first frame and want to keep character consistency instead of re-rolling the whole clip.

The shape of the release: two categories, two stages

LTX 2.3 splits into text-to-video and image-to-video, and each splits again into single-stage (sample straight to output) and two-stage (sample, then upscale). Single-stage means output resolution equals your input width and height. Two-stage adds an upscale group at the end.

The distilled track and the full track can run in the same graph, which is what "dual-track" means here: the graphs place a distilled sampler and a full sampler side by side so you can compare seeds on identical inputs.

The seven graphs, as shipped

Graph Nodes Active backbone Sampling Empty latent
t2v single-stage dual-track 42 GGUF Q4_K_S 8-step distilled + 15-step full, side by side 1920x1088x121
t2v non-accelerated + 2-stage upscale (author's pick) 43 GGUF Q4_K_S 15-step, then a 3-step upscale pass 960x544x121, x2
t2v distilled 2-stage upscale 40 GGUF Q4_K_S 8-step, then a 3-step upscale pass 960x544x121, x2
i2v single-stage dual-track 42 GGUF Q4_K_S 8-step distilled + 15-step full 736x1280x121
i2v distilled 2-stage upscale 40 GGUF Q4_K_S 8-step, then a 3-step upscale pass 544x960x121, x2
i2v single-stage optimal (author's pick) 32 FP8 transformer 15-step 736x1280x121
i2v single-stage distilled optimal (author's pick) 30 FP8 transformer 8-step 736x1280x121

All seven use fps 24, a frame-count primitive at 161, VHS_VideoCombine at crf 19 / yuv420p, and ResizeImageMaskNode set to scale the longer dimension to 512 on the image path.

Model files the graphs expect

  • Backbone, FP8: ltx-2.3-22b-dev_transformer_fp8.safetensors
  • Backbone, quantized: ltx-2-3-22b-dev-Q4_K_S.gguf (via UnetLoaderGGUF)
  • Text encoder: gemma_3_12B_it_fp8_e4m3fn.safetensors + ltx-2.3_text_projection_bf16.safetensors, loaded through DualCLIPLoader with type ltxv
  • Video VAE: LTX23_video_vae_bf16.safetensors
  • Audio VAE: LTX23_audio_vae_bf16.safetensors
  • Distilled LoRA: ltx-2.3-22b-distilled-lora-384.safetensors at 0.5 on the distilled path, 0.2 on the full path
  • Image-to-video adapter: LTX-2-Image2Vid-Adapter.safetensors at 1.0
  • Upscaler: ltx-2.3-spatial-upscaler-x2-1.0.safetensors

The split into Transformer, video VAE, audio VAE, Gemma and text projection is what makes the low-VRAM path possible: swap the backbone to GGUF and the text encoder to a smaller Gemma variant and the rest stays put.

What actually differs between the graphs

  1. Distilled versus full. Distilled paths use a hand-written sigma ladder of 8 values ending at 0 (so 8 steps, 1.0 down to 0.0) with euler_ancestral_cfg_pp and CFG 1. Full paths use LTXVScheduler at 15 steps with ClownSampler_Beta.
  2. The dual-track idea. Put both on the same seed and the same prompt, and the difference is not subtle. The author reports that the 15-step full result tracked the prompt's intent far better and was much more stylised, while acknowledging the subject itself came out odd. The 8-step accelerated text-to-video result, in his words, drifted into uncanny valley.
  3. Two-stage is img2img for video. The upscale group injects noise at 0.85 and re-denoises through 0.7250, 0.4219, 0.0 in three steps with euler_cfg_pp. Because it re-denoises, it hallucinates detail that was not there. That is why it is sharp and why it moves away from your source.
  4. Image conditioning strength. The LTXVImgToVideoConditionOnly node holds 0.7 in the first stage, which is the official value the author quotes, and 1.0 in the upscale stage of the two-stage i2v graphs.
  5. Guidance. MultimodalGuider sits at 28 with separate video and audio parameter blocks (VIDEO 3 ... 0.9, AUDIO 7 ... 0.7), so audio and video are guided independently.

Step by step

  1. Pick the branch. Text-to-video: open the non-accelerated + 2-stage upscale graph. Image-to-video: open single-stage optimal (30-32 nodes, small and fast) and only go two-stage if you need resolution.
  2. Set length and rate. fps 24, frame count via the primitive; width and height define output resolution on single-stage graphs.
  3. Choose the backbone. GGUF Q4_K_S for low VRAM, FP8 for quality. The shipped files keep both loaders and flip one to bypass, so switching is a single node toggle.
  4. Write the prompt. The prompt encoder accepts a plain description; the positive encoder is CLIPTextEncode, negative is separate.
  5. Run and compare. On dual-track graphs, run once and compare the two outputs before touching anything else.
  6. Upscale only if needed. The upscale group roughly doubles the shorter side and then re-denoises, so expect the result to look better lit and more detailed but less faithful to the input frame.
  7. For characters, prefer single-stage i2v. The author's finding: single-stage keeps identity very high, at the cost of smaller motion.

Parameter basis

Read from the seven JSON files in 工作流及封面(视频198):

Parameter Value
Distilled sigma ladder 1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0 (8 steps)
Full-track scheduler LTXVScheduler 15 steps, 2.05, 0.95, true, 0.1
Upscale sigma ladder 0.85, 0.7250, 0.4219, 0.0 (3 steps)
Samplers euler_ancestral_cfg_pp (distilled), euler_cfg_pp (upscale), ClownSampler_Beta 0.25 / exponential res_2s / 94
CFG 1
Distilled LoRA weight 0.5 distilled path, 0.2 full path
i2v conditioning 0.7 first stage, 1.0 upscale stage
Frames / fps frame primitive 161, fps 24
Video output crf 19, yuv420p

Limits

  • The author's verdict is not a benchmark. 8 vs 15 steps is a visual judgement on a handful of clips, reported in the video, not a measured comparison.
  • Limbs are still weak. The author states plainly that LTX 2.3's limb rendering is behind Wan 2.2 at the time of recording, and that both i2v routes showed limb breakage.
  • Two-stage trades fidelity for detail. Because the upscale group re-denoises from 0.85, the output is not a faithful enlargement.
  • Adapter LoRAs are opportunistic. LTX 2.3 accepts some LTX 2 LoRAs, but the author notes results are not consistently positive, so he keeps the adapter optional and bypassed by default in the shipped files.
  • Node counts differ by 2 between the "optimal" pair (32 vs 30) because one carries a distilled sigma node set; do not read the count as a capability difference.

Episode resources

Top comments (0)