Two-shot talking-character video on LTX-2.3 — shot 2 is a TRUE audio+video extension of shot 1, not a cut. The last ~3 seconds of shot 1's video and audio become latent context, so the model generates forward from an ongoing utterance: the voice carries over by construction, identity holds, and the join is a continuous take. The character speaks in a reference voice you supply.
Core ComfyUI nodes plus one node from ComfyUI-KJNodes (LTXVAudioVideoMask), which powers the extension.
A word on expectations. This is a bleeding-edge pipeline — a 22B audio+video model on consumer hardware. It works, but your first clean render will likely take some tuning to YOUR machine. Every setting that matters is documented in note blocks inside the workflow, so the guidance travels with the graph. If you get stuck, comment here or open a GitHub issue — I answer.
Quick fixes — read this first
Nearly every problem reported with this workflow is one of these.
Second shot doesn't lip-sync — voiceover over a barely-moving face
Why: You are on v1.x, which chained shots on shot 1's decoded last frame. That guide is pixel-continuable, so the sampler copies it instead of animating. Structural — no setting fixes it.
Fix: Update to v2.0+. Shot 2 is now a true audio+video latent extension.LTXVAudioVideoMasknode is missing (red)
Why: v2 uses one node from ComfyUI-KJNodes for the extension.
Fix: Install ComfyUI-KJNodes. Everything else is core ComfyUI.Burned-in subtitles or captions appear
Why: The graph ships at cfg 1, and at cfg 1 negative prompts are inert on distilled models — your negative is doing nothing.
Fix: Raise cfg to about 1.3 on both CFGGuider nodes.The voice comes out British
Why: LTX drifts to a British accent unless told otherwise.
Fix: Name it affirmatively in the positive prompt: “in a casual American accent”.The model reads your scene description aloud
Why: Nothing told it which words are spoken.
Fix: Keep the exclusivity block: “She is the only person speaking, and the only voice on the audio track is hers … nothing else is read aloud.”Audio and video durations drift apart after changing length
Why: In v1 the audio latent did not follow thelengthprimitive — a silent desync.
Fix: Fixed in v2. Changelength, then set the AV-extend node'svideo_end_time/audio_end_timeto(length + 72) / 25. At the shipped 241 that is 12.52; for ~20 s use length 265 and 13.48.Length change errors out
Why: LTX-2.3 hard constraints.
Fix: Frames must be 8n+1 (121, 241, 265, 329…) and both dimensions divisible by 32.Output is mush, or the face wanders
Why: Wrong checkpoint class.
Fix: This graph's 8-step sigma ladder assumes a distilled LTX-2.x checkpoint. A non-distilled one will not resolve in 8 steps.Out of VRAM, or renders crawl
Why: A bf16 LTX-2.3 checkpoint is ~40 GB of weights.
Fix: Pick an fp8 checkpoint inUNETLoader, and drop resolution before you drop steps.
The one people miss most: cfg 1 makes your negative prompt do nothing. If you are fighting burned-in text, that is why.
What you get
SETUP -> SHOT 1 -> [last ~3s of video AND audio as latent context]
-> SHOT 2 (extends it) -> FINISH (join + refine) -> FINALWhat you need
A distilled LTX-2.x checkpoint
The LTX-2.3 VAEs and a Gemma-3-12B text encoder
The TalkVid ID-LoRA for reference-voice mode
Two settings worth knowing
cfg ships at 1, which makes negative prompts inert. Raise to ~1.3 if you need one.
length drives everything except the AV-extend end times, which are
(length + 72) / 25. At 241 that is 12.52; for ~20 s use 265 and 13.48.
Everything else I've published
JoyAI-Echo multishot patch — nodes, releases, issues
LTX-2.3 Multishot Lite — the core-node workflow
Support this work
Everything I publish — workflows, merges, quants, patches — is free and stays free. The models are non-commercial by license and I have no plans to change that.
If something here saved you an evening:
GitHub Sponsors — recurring, no platform cut
Ko-fi — one-off, no account needed
Liberapay — recurring, open-source and non-profit
Bug reports are worth as much as money. Most of the fixes in these packages exist because somebody posted a log.
Description
Comments (5)
Thanks for posting this core only version. Question. In your opinion what do you think we are giving up by using core only WFs vs WFs that use all those custom nodes? Quality? Speed? Efficiency? I tend to keep using very old versions of WFs becuz I've had new custom nodes bork my entire comfy install. When I load a new WF and see it requires tons of new nodes I've never heard of, I get this Jenga feeling. Thanks.
Ha, I get the feeling, I've been in the same boat when I first started getting into all this. For my personal workflows, and the custom nodes I've created, you're missing out on long-form videos. You can get up to five-minute-long videos with no identity or voice drift. I designed this specifically because I'm running an AI sci-fi web show, and I wanted longer episodes.
I think my models will provide quality and speed, regardless of which workflows you use. I am doing my best to build models for everyone for whatever hardware they might have.
That said, my main workflow isn't "easy mode" and can absolutely be a huge pain in the arse to get setup. If anyone opens a discussion in HF or Github and has trouble, I try to be on it right away and help as much as I can.
Honestly, even this "easy" workflow is probably a little more advanced than most, but it uses mostly core node packs, plus just the ComfyUI-LTXVideo pack - which I imagine anyone playing with LTX already has or will need anyway.
Feel free to ask questions, I am happy to help.
P.S. I am updating all of my models tonight as well. I included reference audio in this specific workflow, and noticed lip sync was a little off, so I've been rebuilding models all day to get it fixed.
@joeygambino Thanks for the great explaination, I tend to create short clips but I have been meaning to try longer more complex projects. I will look out for your updates. Thanks again!
Should I wait for a V3, or you think we're good with V2?
I think we are good at the moment. If you find anything specific you think could be improved, definitely let me know. I am personally not using this workflow myself, it was a user request, so while I tested extensively to make sure all the pieces work, it doesn't mean you or someone else won't try to do something I didn't encounter yet.