LTX2.3 Long-Form MV: A For-Loop That Turns Six Images and One Song Into a Minute of Video
Generating a music video longer than a single LTX2.3 window means looping, and looping means solving the boring parts: slicing the audio per segment, walking image and prompt indices, and stitching without a visible cut.
This episode's graph does all of that in one 133-node workflow. The author reports a one-minute result from six images and one song.
Evidence note: one workflow JSON ships with the episode; its node graph and sampler settings are quoted below. Timing and capability claims are the author's, as reported in the video.
When to use it
- You have a song and a set of consistent character images and want a music video, not a clip.
- You want per-shot prompts and per-shot durations rather than one long prompt.
- You can accept segment-level stitching instead of true single-pass generation.
What is different in this workflow
- For-loop over segments: each loop walks an image index, a prompt index and an audio window; the author's slicing expression is
b * a(segment seconds x index). - Audio is cut, not repeated: every pass renders 0-10s, 10-20s, 20-30s of the song.
- Two prompt layers: a batch prompt list (one line per shot, six preset) feeding Prompt Relay, plus a global prompt.
- Four render passes: base generation, 2x latent upscale, subtitle/watermark removal, final 2x upscale. The author says this will be simplified to three.
- Motion control LoRA is wired in, so camera instructions in the global prompt actually bind.
Step by step
- Load images: one image = one loop, three images = three loops. Per-image shot length is set below (the author uses 10 s).
- Load the song with
LoadAudio; the loop only renders as much as the audio allows. - Fill the batch prompt list, one line per shot; fill the global prompt for the whole piece.
- To add shots, copy-paste an image input block and reconnect - indices increment automatically.
- Run. Pass 1 generates, pass 2 doubles resolution, pass 3 strips burned subtitles, pass 4 doubles again.
- If identity drifts, tighten the camera wording in the global prompt; the motion-control branch is always connected, so camera instructions always apply.
Parameter basis
- Graph:
ForεΎͺη―Ltx2.3ιΏMVθͺε¨ηζε·₯δ½ζ΅.json, 133 nodes. - Checkpoint:
CheckpointLoaderSimple->ltx-2.3-22b-dev-dare-ties-distilled-1.1.safetensors. - LoRAs:
ltx-2.3-22b-ic-lora-motion-track-control-ref0.5.safetensors(1.0),LTX2.3_Crisp_Enhance.safetensors(1.0),Ltx2.3-Licon-VBVR-I2V-390K-R32.safetensors(1.0). - Samplers:
KSamplerSelectvalueseuler_ancestral_cfg_pp,euler_cfg_pp,euler_ancestral;CFGGuiderCFG 1 on all four;SamplerCustomAdvancedwithManualSigmaslists, e.g.1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0for the base pass and0.85, 0.7250, 0.4219, 0.0for the refinement passes. - Frame rate: 24 fps (author states 24 in the video).
- Timing: per-shot 10 s; 6 shots ~ 1 minute.
- Latent handling:
LTXVConcatAVLatent/LTXVSeparateAVLatentper pass,SetLatentNoiseMaskandSolidMaskfor the masked passes,LTXVLatentUpsamplerfor the doubles.
Limits
- Segment stitching is not free: the author tested a 21:9 input and still calls identity slightly reduced - camera control is the countermeasure.
- No first/last-frame loop: the author says LTX2.3's first/last loop is less smooth than his Wan2.1 version; no post-hoc video extension either, because it decays.
- Longer than ~1 minute is a waiting game even with the loop.
- Four render passes are heavy; the author himself calls the graph bloated.
- Shot images were made with GPT Image 2 ("G2.0") in the demo; any consistent character images work.
Episode resources
- RunningHub - for-loop LTX2.3 long MV: https://www.runninghub.ai/post/2055888057307549697/?inviteCode=rh-v1111
- YouTube:
- Bilibili: https://www.bilibili.com/video/BV1CSLJ6vEMQ
Comments
No comments yet. Start the discussion.