JoyLTX Retake (redo part of a clip)
Redo a moment of a finished clip without touching the rest
- model
- clip
- video_vae
- audio_vae
- images
- audio
- images
- audio
- info
You rendered an 8-second take, the actor did everything right, and then the line at second five came out wrong. Regenerating the whole clip risks ruining the parts that were perfect. JoyLTX Retake exists so you don't have to: feed it the finished clip's frames and audio, pick a time window, write a prompt for just that moment, and only the window is regenerated. Everything outside stays frozen as raw latents. It's the temporal equivalent of inpainting, and it's the pack's answer to "redo the one bad stretch" without a full re-roll.
The required inputs are the pieces of the finished clip - images (frames in order), audio (from the same take), plus the usual model, clip, video_vae, audio_vae. Then the interesting trio: prompt (write it as a shot prompt; the model only sees this text plus the frozen material either side), start_seconds and end_seconds (the window, snapped to the latent grid - 8 frames, 1/3 s at 24 fps). The tooltip on end_seconds is worth quoting: a window under about a second has too little room to differ from what's already there. Give the moment room.
mode is where the value is, because audio and video are independent branches and you can redo just one:
video + audioredoes the moment completely.video onlykeeps the performance - voice, timing, room tone untouched - and changes what the camera sees. It still cuts together.audio onlykeeps the picture and changes the line. Known limit, stated honestly in the source: the voice inside the window gets re-rolled from the prompt, so it can come back as a different speaker. Describe the voice precisely and reroll seeds until it matches; a voice-carry lever is future work. Also keep the new line close in length to the old, because lip movement is whatever was rendered.
The mechanics are the inverse of the multishot join. The AV-extend in Multishot pins a head and paints the rest; Retake pins everything except the window. The clip is encoded to audio+video latents, a noise mask marks 1 where the sampler may paint and 0 where it's frozen to what's already in the latent, and a single denoising pass over the window runs on the distilled 8-step schedule (sigmas default 1.0, 0.99375, ...). Outputs are images, audio, and an info string that logs what happened and how long it took.
Gotchas, grounded: end_seconds must be after start_seconds or it errors. The defaults (0 to 3 seconds) are a sane starting window. And because the model sees only your prompt plus the frozen frames either side, continuity is free - the window inherits the established room, lighting and voice from the frozen material. It ships with the JoyLTX25 pack; there's a JoyLTX25_Retake_TEST.json workflow in the repo so you can see the wiring before you rebuild it yourself.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| video_vae | VAE | — | |
| audio_vae | VAE | — | |
| images | IMAGE | The finished clip's frames, in order. | |
| audio | AUDIO | That clip's audio. Must be the same take as the frames. | |
| prompt | STRING | What should happen in the window. Write it as a shot prompt - the model only sees this text plus the frozen material either side. | |
| negative | STRING | pc game, console game, video game, cartoon, childish, ugly | — |
| start_seconds | FLOAT | 0.00–600 | Where the retake starts. Snapped down to the latent grid (8 frames, 1/3 s at 24 fps). |
| end_seconds | FLOAT | 3.00.1–600 | Where it ends. Snapped up to the grid. A window under about a second has too little room to differ from what is already there. |
| mode | COMBO | video + audio (redo the moment) | 3 options: video + audio (redo the moment), video only (keep the performance), audio only (keep the picture) |
| seed | INT | 00–18446744073709550000 | — |
| sampler_name | COMBO | euler_ancestral | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| sigmas | STRING | 1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0 | distilled 8-step schedule |
| video_cfg | FLOAT | 1.000–20 | — |
| audio_cfg | FLOAT | 1.000–20 | — |
| frame_rate | FLOAT | 2412–60 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| audio | AUDIO | — |
| info | STRING | — |