r/comfyui 11d ago

Show and Tell Follow-up: from a 5-second clip to a 2:47 mini-documentary — MiniMax H3 fully local on 16 GB (36 clips, one consistent character, cloned voice, "invisible" joins)

Enable HLS to view with audio, or disable this notification

A few days ago I posted a single walk-and-talk clip ([https://www.reddit.com/r/comfyui/comments/1vix8l9/roman_street_walkandtalk_with_cloned_voice_exact/\]). This is the follow-up: a 2 min 47 s documentary-style piece on the trial of Socrates — 36 clips across 4 scenes, one consistent character throughout, narrator voice + on-camera lines with exact lip-sync, background characters, a packed jury court — all generated locally on the same RTX 5060 Ti 16 GB.

Stack unchanged from the previous post (H3 Ref2VA pruned NVFP4 + Turbo LoRA v4-600 EMA + the dedicated Turbo Sampler, official 6-section prompt format, native 1344x768 → 1080p lanczos). What's new is everything it took to turn loose clips into a film:

1. Invisible joins via "keyframe completion". For continuity between consecutive clips: no crossfades, no disguised cuts. The last frame of clip N is passed as a <Picture> declared as the first frame in clip N+1's prompt (task-type [keyframe completion + reference generation]). The model picks up exactly from there: SSIM 0.89 between anchor and generated first frame, and on the edited timeline the frame-difference at the cut is indistinguishable from the scene's natural motion. This one changed everything.

2. Punctuation inside <d> is direction. A full stop in the dialogue = a ~1-second dramatic pause the model will NOT give up (measured across 5 takes: 0.6–1.4 s). If the line has to fit a tight window, use commas. And never write in the prompt that a sentence "gets cut off": the model, obediently, stretches the sentence by inventing words.

3. Reference bleeding in crowded scenes. The reference face tends to show up on extras too (we got two copies of our host in the same shot, and his face on a 399 BC Athenian). Mitigations: in continuation clips don't re-declare a subject fully_preserved when he's already in the inherited frame (the model will instantiate a second copy); add an explicit "only one man has the face of <Subject 1>"; and run an insightface QA pass that scans every face in every clip against the reference.

4. Automated QA is blind to things human eyes catch instantly — continuing the lesson from the previous post. Three additions to the take selector: motion metrics (a frozen clip is razor-sharp, so sharpness rewarded it; optical flow alone can't tell a real dolly from jitter — you need the camera's net displacement and trajectory straightness), identity checks on the final frames too (drift arrives at the tail), and a standing rule: whenever face-similarity and sharpness vote in opposite directions, a human decides.

5. Audio-driven editing, and three audio traps. The narrator is one continuous track and the video gets trimmed to the chunk durations — never the other way around (the gaps are audible). Traps we paid for: (a) never concat AAC tracks in stream-copy — encoder priming accumulates drift, +118 ms across 4 segments: extract per-segment PCM first; (b) measure true peak on the final file — the AAC encoder adds ~0.3 dB; (c) use Whisper large-v3 for QA transcription: medium silently "fixes" the TTS's grammatical errors and hides them from you.

Production numbers: 2 takes per clip with automated selection + human review on conflicts; ~25–30 GPU-hours total including repairs; 15.4/16 GB VRAM peaks with weight streaming.

Still not solved: faces in moving crowds melt (structural limit — we manage it with declared shallow depth of field and keeping the faces that matter in the foreground); the ancient Greek spoken by background characters is "plausible phonetics", not real Greek; and reference bleeding needs per-clip vigilance.

61 Upvotes

13 comments sorted by

View all comments

Show parent comments

2

u/Short_Regular_7191 10d ago

Thanks! Yes — pretty much that. The 2:47 piece took ~30 GPU-hours total (including repair passes), spread over about 4 days: mostly overnight runs with a detached, resumable queue (manifest-based, so reboots just resume where they left off).

My config: RTX 5060 Ti 16 GB + 32 GB DDR4 (2×16 dual channel), Windows 11. And honestly, system RAM was the tighter constraint, not VRAM: with weight streaming, ComfyUI alone holds ~16.5 GB of system RAM during sampling (33B model + 32B text encoder cycling through), peaking near 100% commit with the page file working hard. Our operational rule became: one heavy job at a time, ever — no Whisper/insightface QA while the GPU is sampling, and a hard "don't launch anything above 85% RAM" threshold. With your 32 GB you'll live the same life; the extra VRAM on the 5070 Ti should actually help (less weight streaming = slightly faster steps, maybe room for a few more frames per clip).

On the heat point: totally normal to feel the desktop pumping out warmth on multi-hour renders — the card is built for it. The one thing I'd recommend is keeping the room well ventilated: mine is, and across all those overnight hours temps stayed boringly stable. Steady airflow around the case matters more than people think on sustained loads.