Add new footage
Make a shot or a scene that wasn’t in the episode, from the episode’s own frames and pictures, so it slots in between two real moments.
Version 1 (2026-10-15): the same steps as this page, with every download’s link and checksum. sha256 9c4a53b5ad92c182dfa80ea3b8d2b9418a9afb0046077d3aa29223fa7148e766, also in the manifest.
What you need
- A creator invitation and the extension, as for every guide.
- ComfyUI v0.39.0, with the H3 models (Set up ComfyUI). For one shot:
minimax_h3_fl2va_pruned_int8_convrotand thefl2v_turbo_8stepLoRA, plus the shared text encoder and VAEs. - A 16 GB GPU with 32 GB of system RAM and a pagefile of about 32 GB or more. Close Chrome, OBS, games and other heavy apps while it generates.
- An image model (FLUX.2, Krea 2 Turbo or Qwen Image 2.1) for any frame you re-stage.
- The momentGo to step
- The framesGo to step
- RunGo to step
- FinishGo to step
- CheckGo to step
1. Pick the moment
- In Creator tools, Insert at a point: Start and Resume are the same frame. Export the project folder: you get
first-frame.png(the frame before your new footage) and the episode’s frame rate (how). - Seamless extension: the new shot leaves the episode’s picture and comes back to it.
- Cutaway: a new shot that doesn’t need to land back on the same frame (a flashback, a vision, another place).
2. Make the frames
- First frame: the episode still at exactly the workflow size. The exact-size still workflow scales it to cover 1024 × 576 (or 768 × 576 for a 4:3 show) and crops the overflow from the center (
seamless-still-1024x576.json,seamless-still-768x576.json). - Last frame (seamless extension): the same still, so the camera returns to where it started; or a designed end frame that leads back into the episode.
- A re-staged first frame (cutaway): make it from a real still of the episode, not from words alone. Text-only stills drifted off the show’s look and set in our tests.
- Keep the episode’s look by starting from an episode frame. The anchored frame sets the grain, contrast and brightness: in our test they came within about 5–8% of the episode with no look words at all. Edit a real still rather than describing the look.
- Name the period, and what mustn’t be there: “an ancient-world village … no modern buildings, roads or vehicles”. In our test a modern town appeared behind a character from the ancient world.
- Frame the still the way you want the shot: the clip keeps the first frame’s framing, and the prompt can’t widen it.
- Small marks (a scar, a tattoo): describe them tightly, or leave them out. In our test one scar became two long gashes.
3. Run the workflow
Seamless extension
Download the first/last-frame workflow
1024 × 576, 124 frames. Runs on 16 GB GPU + 32 GB RAM + 32 GB+ pagefile: an RTX 5070 Ti (16 GB) finished a 124-frame clip in about 2½ minutes (peak about 15.5 of 16.3 GB). GPU sizes
Cutaway (start image only)
Download the start-image-only workflow
1024 × 576, 124 frames. Runs on 16 GB GPU + 32 GB RAM + 32 GB+ pagefile: an RTX 5070 Ti (16 GB) finished a 124-frame clip in about 3 minutes (peak about 15.5 of 16.3 GB). GPU sizes
| Node | Set it to |
|---|---|
200 LoadImage | Your first frame |
201 LoadImage | Your last frame (first/last-frame workflow only) |
136 MiniMaxH3ImageToVideo | The prompt; 1024 × 576 (16:9) or 768 × 576 (4:3); the length (124, 141 … 362) |
130 CreateVideo | Leave it at 23.976, the rate the model makes. For a 25 fps (PAL) episode, convert the finished clip afterwards (step 4); don’t set 25 here, or the lips drift from the voice |
129 RandomNoise | A new seed for each take |
Leave the rest: 8 steps, res_multistep / simple, LoRA strength 1. To try prompts quickly, set steps on 124 BasicScheduler to 4 (about 1½ minutes per clip), then back to 8 for the take you keep.
The prompt
Start from the template for your kind of shot, with:
Photoreal science-fiction visual effects shot from a {YEAR} television series. {WHAT IS IN THE FRAME, AS IN THE STILL}. The camera glides steadily in toward {SUBJECT}, travels close along {DETAIL}, then eases smoothly back out to the exact starting framing, {SUBJECT} small and centerd again. Slow, continuous camera move. Subtle film grain. Sound: {AMBIENCE}, no music.Late-1990s live-action television science-fiction scene with film grain, in {PLACE AS IN THE FIRST FRAME}. {WHAT HAPPENS, IN ORDER}. {CAMERA: slow push in / static / slow pan}. No text. Sound: {AMBIENCE AND EFFECTS}, no music.- one camera move, or “a still camera”. If you don’t say, the camera can drift quickly;
- the light, in period terms (“lit only by lanterns, deep shadows”). In our look tests it was the only line that helped. Texture words (“16 mm grain”, “old TV softness”) made no measurable or visible difference: the model ignores them. New shots come out about 12% more saturated than the episode.
- the show’s era (“late-1990s television”);
- “no text” and “no music”;
- what must stay the same to the end (“the red emergency light stays on throughout”; in our test it faded to white halfway otherwise);
- the people in the frame, by what they wear and do. Never “no people”;
- any spoken line in
<d>[English]…</d>, with how it’s said.
Run it: about 2½ minutes per 124-frame clip with first/last frame, about 3 with the start image only, on a 16 GB card (it uses nearly all of the card’s memory). A longer moment is better as one clip, up to 362 frames, than as several clips joined: lower the size (768 × 576) if it runs out of memory. For 2.2 and 2.3, per 124-frame clip at 1024 × 768: about 3¼ minutes with the last frame only (one run, including loading the model), about 2¼ with pictures and a start frame, about 2 with pictures and both ends free.
2.1 A longer scene: several clips joined
- Plan the shots first: who speaks, what they say, and how each shot leads to the next:
- a continuous move where the camera would keep rolling (first/last-frame: first frame = the previous shot’s last frame, last frame = the next shot’s first frame; the frame export workflow saves both,
seamless-frame-export.json); - a motivated cut between speakers;
- a hard cut only for a jump in time or place.
- a continuous move where the camera would keep rolling (first/last-frame: first frame = the previous shot’s last frame, last frame = the next shot’s first frame; the frame export workflow saves both,
- The room: a still of the location from the episode, with every person removed, as the base for every shot. In our test a room made from a description didn’t match the episode’s set.
- Speaking shots: the start-image workflow, two takes per line; keep the one whose speech fits. Each clip makes its own voice, so keep a speaker’s lines in as few shots as you can.
Late-1990s live-action television science-fiction scene with film grain, in {THE ROOM, AS IN THE PICTURE}. Close-up of {CHARACTER}, {LIGHTING ON THE FACE}. It (S1), in a {VOICE: soft, calm, even}, says: <d>[English]{THE LINE}</d> Its mouth moves with the words. Static camera. Sound: {THE ROOM'S HUM} under the voice, no music.Late-1990s live-action television science-fiction scene with film grain, in {THE ROOM}. {WHAT THE PEOPLE DO DURING THE MOVE}. The camera pushes slowly and smoothly in, past {FOREGROUND}, until {CHARACTER} fills the frame in a close-up, about to speak. One continuous camera move, no cut. Sound: {THE ROOM'S HUM}, murmured voices without words that fade to quiet, no music.- Join: in an editor with separate sound tracks (Shotcut, DaVinci Resolve):
- trim each shot to its line;
- drop the doubled frame at a continuous move;
- L- and J-cuts at speaker changes;
- a 0.15 s fade-out on each outgoing clip;
- a muffled room-tone bed at about −12 dB under the dialogue.
- Every piece must be the same size, and each piece’s sound exactly as long as its picture. The join adds sounds end to end, so 24 ms extra per shot put a later scene’s sound 72 ms late in our test.
With ffmpeg instead of an editor
This joins two shots with each clip’s sound at its own picture time (so voices stay on the lips), a 0.15 s fade-out on the outgoing clip, and a low-passed room-tone bed. It was tested with ffmpeg 6.1 and 8.1. For more shots, add each one the way shot 2 is added, with these rules (tested on a 5-shot scene):
- Chained move (its first frame repeats the shot before):
trim=start_frame=1on the picture andatrim=start=0.041708on the sound. At a cut: no trim on either. adelay= the shot’s first frame in the joined scene × 2002 (samples per frame at 48 kHz and 23.976 fps): 248248 for a shot starting at frame 124.- A fade-out on every clip that has another after it:
afade=t=out:st=…:d=0.15, withst= that clip’s own length in seconds (after any trim) minus 0.15. - The bed:
aloop=loop=-1in place ofloop=2(which covers only about 18 seconds);atrim=0:$Dstill cuts it to length. D= the joined scene’s frames × 1001/24000, andamix=inputs=the number of shots + 1.
FPS=24000/1001
L1=248248 # shot 1's length in samples at 48 kHz: 124 frames × 1001/24000 s × 48000
D=10.301958 # output length: (124 + 123) frames × 1001/24000
ffmpeg -y -i shot1.mp4 -i shot2.mp4 -filter_complex "\
[0:v]setpts=N/($FPS)/TB[v0];\
[1:v]trim=start_frame=1,setpts=N/($FPS)/TB[v1];\
[v0][v1]concat=n=2:v=1:a=0,format=yuv420p[v];\
[0:a]aresample=48000,asplit[a0r][bsrc];\
[a0r]afade=t=out:st=5.02:d=0.15[a0];\
[1:a]aresample=48000,atrim=start=0.041708,asetpts=PTS-STARTPTS,adelay=${L1}S:all=1[a1];\
[bsrc]atrim=1.0:4.0,asetpts=PTS-STARTPTS,lowpass=f=900,asplit[f][r0];[r0]areverse[r];\
[f][r]concat=n=2:v=0:a=1,aloop=loop=2:size=288000,atrim=0:$D,volume=-12dB[bed];\
[a0][a1][bed]amix=inputs=3:normalize=0:duration=longest,apad,atrim=0:$D[a]" \
-map "[v]" -map "[a]" -r $FPS -c:v libx264 -crf 18 -g 24 -keyint_min 24 -sc_threshold 0 \
-c:a aac -b:a 192k -movflags +faststart scene.mp4The bed is cut from shot 1 at 1.0–4.0 s: pick a stretch with no speech, and change atrim=1.0:4.0 to it. The bed is at −12 dB, under dialogue. For a scene with no speech, use volume=-3dB.
2.2 A transition at one or both ends
- The new footage starts on the episode’s frame and leaves it (the transition is at its end): anchor the start only, with the start-image workflow
h3-i2v-first-frame.16gb.json(the episode’s last frame as200 LoadImage). In our test the camera drifted from the last frame out into the night jungle. - It comes from somewhere and lands on the episode’s frame (the transition is at its start): anchor the end only, with the last-frame-only workflow. Load the first frame of the shot it leads into in Last frame (the first frame of the shot this transition leads into). In our test a descent through the canopy landed exactly on the next shot’s first frame, in place of a fade.
Download the last-frame-only workflow (16:9) 4:3 version
h3-fl2va-last-frame-only.16gb.json - Both ends are transitions (a cutaway that fades in and out): neither end is fixed. Use the pictures workflow: the 2.3 workflow without a start frame, with the same picture inputs. In our test it made a mood-matched cutaway of a lantern.
Download the pictures workflow (16:9) 4:3 version
h3-ref2v-pictures.16gb.json - In the prompt, say how the shot enters or leaves (a descent, a drift, a move away) and how the camera moves (below).
2.3 Add context: people or places the frames don’t show
- When the first and last frames don’t show every person and place the scene needs, give the model pictures cut from the episode (the set, the people in it), plus a picture of anyone new, not descriptions.
Download the pictures + start frame workflow (16:9) 4:3 version h3-ref2v-pictures-start-frame.16gb.json
| Node | Set it to |
|---|---|
| Picture 1 (a person or place cut from the episode, or a fictional person) | The new character’s picture, or a person or place from the episode |
| Picture 2 (a person or place cut from the episode) | Another person or place from the episode |
| Picture 3 (a place or person cut from the episode) | The set, cut from the episode |
| Start frame (e.g. the last frame of the episode shot this new shot follows) | The episode frame the new shot starts from |
- In our test a new character stepped into the real dinner, matching his picture, and the diners were kept and reacted.
- Pictures of a place must show no people: crop them out, or make an empty still of the set. A still with someone up and moving brings their action into the new shot: in one test the model copied it. With people-free crops of the same place, the people already in the scene stayed still and only the new character moved through.
- In the prompt, say what the people in the scene are doing, and what must not happen: “the diners stay seated and talk quietly; nobody gets up; nobody enters”.
- If the new character must be clearly seen, say where they walk and that they stay fully in frame. In one test the new figure crossed just inside the top edge, half out of frame.
- In those tests the joins were seamless: the start, chained and landing frames were all within about 2–3/255 of their targets, and a chained continuation (2.1) cut back into the original cleanly.
Camera and light, for every new shot (from the 2.2 and 2.3 tests):
- Say the camera move, or “the camera holds still, wide”: in one shot the camera pushed in despite “hold wide”. Make the line strong (“static camera, no zoom, no push-in, the framing stays wide throughout”).
- Keep the episode’s light: name it (“dim warm lamplight, deep shadows, as in the episode”). In one test the set came out brighter than the episode’s.
- Check the edges: a cropped extra figure appeared briefly at the frame edge in one shot.
4. Finish
- The add-a-scene finish workflow, the one for your episode’s shape (
seamless-add-scene-finish.jsonfor 16:9,seamless-add-scene-finish-4x3.jsonfor 4:3):- set Cover + center crop to the Start still size to your Start still’s pixel size;
- set the Sound level by ear.
- It delivers the sound at 48 kHz, exactly as long as the picture.
- For a 25 fps (PAL) episode, convert the finished clip by repeating frames, with its sound trimmed to the picture. Replace 5.160 with the new frame count ÷ 25 (124 frames become 129).
ffmpeg -i finished.mp4 -vf fps=25 -af "aresample=48000,atrim=end=5.160,apad=whole_dur=5.160" -c:a aac -ar 48000 finished25.mp45. Check
- Look at every face in the result. The automatic check compares with your source, and can pass a recast face that moves the same way.
- The ends: for a seamless extension, the first and last frames match your still with no jump.
- The look: the color, grain and sharpness sit with the episode, nothing from the wrong period appears, and nothing morphs or has text.
- The flicker check (how), then watch it at full speed.
- Preview clip… on the episode, and build the edit (Start and Resume are the same frame).
When it doesn’t work
| You see | Fix |
|---|---|
| The new shot looks too clean or modern next to the episode | Start from an episode frame (it sets the grain and contrast), and describe the light in period terms; texture words don’t work. New shots can come out a little more saturated than the episode |
| Something from the wrong period in the background | Name the period, and add “no modern buildings, roads or vehicles” to the still’s and the clip’s prompt |
| The shot isn’t as wide (or as close) as you asked | The clip keeps the still’s framing: make the still at the framing you want |
| The camera drifts fast | “A still camera” or “a slow, smooth move” in the prompt |
| A small detail came out exaggerated | Describe it tightly, or leave it out |
| A light or color changes halfway | Say what must stay the same to the end, or change the seed |
| The camera pushes in although you asked for a still, wide shot | Make the camera line strong: “static camera, no zoom, no push-in, the framing stays wide throughout”; a new seed |
| The new set is brighter than the episode | Name the episode’s light in the prompt (“dim warm lamplight, deep shadows”); use a picture of the set from the episode |
| A part of a figure appears at the edge for a moment | Check the edges by eye; a new seed |
| Someone in the new shot does what they’re doing in your place picture (2.3) | The place picture had people in it: crop them out, or use an empty still of the set; say in the prompt what people do and what must not happen (“nobody gets up”) |
| The new shots look stretched or squashed | The finish was for the other shape; check the first frame of each piece before joining |
| The voice drifts off the lips later in the scene | A piece’s sound is longer than its picture: finish every piece with the finish workflow, and use the trimmed 25 fps command |
| A speaker’s voice changes between shots | Each clip makes its own voice: keep a speaker’s lines in as few shots as you can |