DEV Community

AI-KSK
AI-KSK

Posted on

LTX 2.3 Production Suite 2.5: IC Edit Strips Subtitles Between Render Tiers

The fix for burned-in subtitles is not a mask and not a crop. In suite 2.5 the Insight IC-LoRA cleanup stage sits between render tier two and tier three, so it repaints the decoded frame, reuses the LTX 2.3 weights that are already loaded, and costs one extra pass. Every graph in the suite now loads a TIES-merged checkpoint.

Evidence note: the eight workflow JSON files shipped with this episode were parsed directly. Node counts, checkpoint and LoRA filenames, sampler names, sigma schedules, CFG and latent sizes below come from those files, not from the narration.

When this is useful

  • Chinese talking-head clips, where the base model likes to bake garbled text into the frame once dialogue runs long.
  • Rescuing footage that already carries a platform watermark, without cropping away the composition.
  • Any of the five suite entries when the client will not accept visible text on screen.
  • Building your own graph: the cleanup stage is portable because it is the same LTX 2.3 family all the way down.

How this differs from the previous build

Suite 2.0 shipped in episode 233. 2.5 is not a new model — it is a new position in the pipeline plus a new checkpoint.

  • IC Edit moved between tier two and tier three. Previously the cleanup was a separate job on a finished file. Here it runs on the tier-two decode, so it shares the loaded weights and only adds one render pass.
  • The checkpoint changed. All eight graphs load ltx-2.3-22b-dev-dare-ties-distilled-1.1.safetensors, the TIES-merged variant introduced in this video, instead of the plain distilled 1.1 build.
  • Multi-image reference is re-tuned from the old first/last-frame graph. Image weights are all 1 and indices run 0,1,2,3; to go back to first/last-frame you spread those indices instead.

Running it

  1. Open the entry you need — the suite keeps five, plus two standalone cleanup graphs.
  2. Fill the exposed block in the lower-left: total prompt, segment prompts, negative prompt, frame count, frame rate.
  3. For digital-human entries, load audio rather than typing a duration; the graph reads the audio length and derives the frame count.
  4. For the standalone IC Edit graphs, load a clip that already has subtitles or a watermark, set frames at 24 per second, and run.
  5. To assemble your own 2.5 graph: insert the cleanup stage after the tier-two decode, feed it the separated audio, hand its latent to tier three.

Parameters, and where the numbers come from

Item Value in the shipped graphs
Checkpoint ltx-2.3-22b-dev-dare-ties-distilled-1.1.safetensors
Text encoder gemma_3_12B_it.safetensors
Samplers euler_ancestral_cfg_pp, euler_cfg_pp, euler_ancestral (one KSamplerSelect per tier)
CFG 1 (CFGGuider)
Sigma schedule, tier 1 1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0
Sigma schedule, light pass 0.85, 0.7250, 0.4219, 0.0
Sigma schedule, refine 1.0, 0.9375, 0.8125, 0.5625, 0.25, 0.0
Video latent 320x288, length 97
Audio latent 25 fps, 97 frames
NAG, single human scale 11, alpha 0.25, tau 2.5
NAG, dual human scale 15, alpha 0.4, tau 0.47
Image conditioning strength 0.7 and 1 (LTXVImgToVideoConditionOnly)
LoRA, VBVR Ltx2.3-Licon-VBVR-I2V-390K-R32.safetensors at 1.0
LoRA, crisp LTX2.3_Crisp_Enhance.safetensors at 1.0 (0.5 in multi-image reference)
LoRA, dual dialogue LTX2.3-IC-LORA-Dual-Character.safetensors at 0.75
LoRA, motion track ltx-2.3-22b-ic-lora-motion-track-control-ref0.5.safetensors at 1.0
LoRA, transition ltx2.3-transition.safetensors at 0.5

The 320x288 latent is the tier-one working size; two LTXVLatentUpsampler stages follow it, which is why the low starting resolution is not what you see in the output.

Honest limits

  • The near-total subtitle suppression is the author's report across a week of clips, not a measured success rate on a fixed test set.
  • The extra tier costs real time — roughly a minute more on a ten-second clip, again the author's own measurement.
  • Four LoRA modules exist in the Insight line (subtitle removal, watermark removal, upscale, repair); the suite uses two at once, and upscale/repair is a separate switch.
  • The text encoder is still Gemma 3 12B. The author calls it the weak link and suggests Gemma 4 might help, but that is speculation with no test behind it.
  • Feeding an empty audio latent instead of the separated original audio measurably hurts output on an audio-video-synchronous model — the author deliberately keeps the original audio.

Episode resources

RunningHub workflows

Top comments (0)