Developer review / tests 12 October 2026

Help me tighten Hollywood.

Actual local runs against the Maria film baseline. Compare the footage and voices, then separate useful production roles from unproven claims.

Published 13 October 2026 · Apple M3 Ultra · 96 GiB unified memory · Local generation

Start with the result

Watch the film. Then compare the matched two-second speech clips and listen to the ending voices. A render completing is only the first gate; the hard part is keeping the performance consistent.

See the engineering questions · Download the results · Public source snapshot

Unfinished review cut — not a final film

Revision 2 is the latest complete export, not a quality-approved final. Lip synchronization is visibly poor, and both ending voices differ from their earlier performances. Those defects remain in this 59.833-second cut. Later model tests produced excerpts only; they have not been assembled into a corrected film. Images and voices are synthesized.

Read the repair plan

Compare the motion

Choose two diagnostic clips. Shared controls start them together; only the selected side is audible.

Ready. Playback alignment is approximate, not frame-locked.

Listen to the voices

Starting an audition pauses other media. Listen for identity, delivery and pronunciation—not merely successful generation.

What each tool actually proved

A successful runtime is evidence for a specific role. It is not a claim of finished-film quality.

Where developer help would matter

Keep the cast consistent

Persistent rigs and authored scenes

Unreal produced facial animation curves locally. The missing piece is a reusable Maria/Genie cast with a stable set, materials and lighting. I need a practical path from the current stylized characters to editable rigs, with controllable body acting.

Useful proof: the same character and lighting across three different lines and camera angles, with one editable scene and no identity reset.

Make dialogue drive the face

Lip timing and retargeting

Compare MuseTalk and LatentSync against exactly the same speech window. LatentSync runs after the memory and timing repairs, but has not earned replacement status. Audio2Face produces coefficients; a verified mapping to the character rig is still missing.

Useful proof: an aligned before/after clip, normal-speed listening, and a synchronization score with its limitations. Preserve the face, hands, receipt and background.

Diagnose the DubIt binding

Supplied speech is not locked

Two local runs changed the requested words. All 1,344 LoRA pairs mapped, but the target audio began from noise. A separate stage-two audio-freeze patch passed small CPU checks and remains uninstalled; it does not explain or fix the first-stage failure.

Useful proof: a minimal local reproduction that preserves the supplied words and timing. Compare raw generated audio before any original-audio remux.

Stabilize voice and review

Repeatable acceptance

Fish and Qwen produced the requested words. That does not establish speaker identity or a matching performance. Voice changes also change line duration, so the picture must follow the approved stems.

Useful proof: fixed references and transcripts, comparable loudness, identity and prosody review, and regression clips covering the ending as well as the opening.

Send the clip, timestamp, expected behavior and a concrete fix or experiment. Apple Silicon measurements are especially useful. Please distinguish a model being downloadable from an end-to-end pipeline that actually runs.

Send feedback to Justin · Browse the public source snapshot

The public repository is an earlier source-available snapshot, not the exact current development build. Upstream engines and models have their own authors and licenses; the links in the results identify relevant public projects. This page shares demonstrations and measurements, not model weights or a new license for those dependencies.

Plan to close the gap

The next deliverable is Revision 3 of this film. These are planned steps, not completed fixes. Keep the story, receipt/hand/fries joke and branded bumpers while repairing the performances.

1. Lock each character’s voice

Choose a clean earlier line for each character as the reference. Regenerate the two ending lines against those references and exact transcripts, using the local Fish/Qwen candidates already tested. Audition each ending line immediately after an earlier line at matched loudness.

Gate: the words, identity and delivery must match. Transcript accuracy alone does not pass this gate. Freeze the selected stems before changing picture timing; if neither candidate matches, keep the voice task open rather than silently substituting a speaker.

2. Repair a representative dialogue shot

Align the picture to the frozen speech, then compare the existing MuseTalk path and repaired LatentSync on the same complete spoken line. Inspect consonant closures, vowels, pauses and the silent listener at normal speed, with slow playback for diagnosis. Preserve the character, lighting and hand/phone composite.

Gate: visibly and audibly better than Revision 2, without face or scene damage. No automatic promotion because a render completed or a synchronization score improved. If both fail, use an editable mouth/face animation pass; a full 3D cast rebuild remains a separate, longer project.

3. Apply the winning repair to the film

Process each speaking shot against its approved stem, keep listeners quiet and rebuild the ending to the new line durations. Preserve the receipt, hand and fries, and match exposure and color across every cut. Reuse the existing opening and closing bumpers.

Gate: every spoken shot reviewed, including the ending; no repeated or frozen mouth motion used to cover a timing mismatch.

4. Review the complete Revision 3

Deliver a full export plus a matched Revision 2/3 ending comparison and a timestamped defect list. Check the whole film at normal speed for speaker identity, lip timing, listener behavior, character and lighting continuity, joke timing and audio transitions.

Gate: technical checks and audiovisual review are separate. The export stays a review candidate until Justin accepts it. Only then should it be labelled final or replace the page’s reference film.

Priority is a repaired film using the local tools already tested. More model downloads, DubIt integration research and persistent Unreal rigs are not prerequisites for attempting this revision.