A presenter makes a deck, a product or a launch feel like someone talking to you. First
question, asked plainly: who presents, and will they record themselves or be an AI
avatar? Never assume it's the person you're talking to (a cofounder, the account exec
who owns the deal), and never reuse an avatar from another job without asking: look in
this machine's earlier job folders (their notes, character/, refs/), show what you
find, and ask to reuse it.
Routes
| Route | Pick it when | Cost and time | What you get | Load |
|---|---|---|---|---|
| An AI avatar of a real person | They should present but won't record: a personalized sales video, a launch video ("AI Nora, CEO") | H3 Max 768P about $0.094/s of track at list, a voice clone about $1 (elevenlabs-clone-a-voice); a few hours | A still from their own photos, their voice or a picked one, one lip-synced take of the whole track | guide-depict-real-people-and-places, elevenlabs-clone-a-voice, the Process below |
| A designed presenter | No real person: a training module, an explainer, a brand character | The same renders | A locked still from a character sheet or an approved still | guide-edit-a-frame-before-animating, the Process below |
| The person on camera | They'll record a quick webcam read; nothing generated | Free, about 10 minutes for the cut | Their own take, cut to its best lines | guide-cut-best-takes, then Layouts below |
Process (the avatar routes)
- The still (
guide-edit-a-frame-before-animating,nano-banana-restage-for-new-aspect): a 3:4 portrait, three-quarter body to mid-thigh below the hands (waist up for a person beside real slides), centred, facing the camera, closed-mouth smile, an even margin of plain backdrop either side wide enough for open arms. A real person comes from one or two of their own recent photos, never a generated stand-in. Recompose on nano banana Pro at 3:4, 2K, then fit it to 768×1024. Remove any badge, pin or invented logo now with a local patch (nano-banana-remove-small-object,python-crop-and-paste-back): every chunk is pinned to this exact still, so changing it later re-renders all of them. Gate: the presenter (or the person) approves the still. - The voice. Their own, cloned with their consent from about 30 s of varied speech
on a good microphone (
elevenlabs-clone-a-voice), or a library voice (guide-cast-a-voice), saying plainly that it won't sound like them. Gate: an audition line. Then the track (guide-voice-a-script); sections voiced separately are joined with a 0.3 s lead-in, 0.6 s between sections and a 0.8 s tail, then leveled to −16 LUFS (ffmpeg-normalize-loudness), and its word times read (python-read-word-timings). Save the still and the voice inrefs/and record them with the job's notes. - A layout seen moving first: before any lip sync, the presenter's layouts move in
the first look or the storyboard with the still in them (
hn4a-compositor, The first look;hn4a-compositor-storyboard). It is free; the lip sync isn't. - The whole track as one take: chunks at sentence pauses
(
python-plan-lipsync-chunks) → every chunk rendered at once on the same still, pinned first and last, 768P, the chunk's words in the prompt, one gesture beat per chunk and no finger counting (h3-max-lipsync-a-still) → each checked as it lands, a steady drift retimed, other lag re-synced (veed-v2-resync-existing-take), a chunk still moving at its cut re-rolled → joined on one 24 fps grid with 5-frame dissolves and checked whole (python-assemble-lipsync-chunks). Gate:review_approvewith the assembled talking head and its lip-sync plot, flagged spans in thebrief. - Into the layouts (below).
Layouts
The take is made once and used every way; never render a presenter per layout.
| Layout | Use it for | How |
|---|---|---|
| Full frame | The opening and the sign-off; an ad's first line, the presenter full-bleed behind one headline | Cover the frame, max(W/sw, H/sh) |
| Window or box | Beside real slides: a 400×533 box in a side strip, a frame in the brand colour | A crop of the take, no matte |
| Cutout | Big beside a slide or over a set: 810×1080 on the greeting, 698×930 for the rest | A real matte: python-matte-a-talking-head (free) or birefnet-matte; never a colour key |
| Bubble | Over product screens and slides: 270–400 px, a 6 px ring | The face crop on the take's own px; the move into it: hn4a-compositor-motion-graphics, references/presenter-moves.md |
- One take, two framings when a piece goes from full frame to a bubble: place the 3:4 still on a 16:9 canvas where the presenter should stand, replace the whole background with nano banana Pro (left two-thirds calm for a title), and lip-sync both the 16:9 image and a 3:4 crop of it around the face from the same track. The bubble gets more face pixels (265 source px in a 320 px bubble, against 199 from the 16:9 take) and the same set.
- Never the same layout twice in a row; the move between them is one move (a 0.5 s overlap, or one keyframed box).
- The bubble goes on the side the presenter looks toward: looking right at their screen, a bottom-right bubble looked away from the UI; bottom-left looked into it.
- Nothing covers the words: a still per layout, checked for a head or bubble over a slide's text or the end card's tagline (a big cutout over a full-size end card hid it; shrink the card to 1280×960).
Choosing
- 3:4 at 768P: H3 Max prices per second by tier whatever the shape, and 3:4 768P puts 157 px of face against 167 px for 16:9 1080P, at half the price. 3:4, not 9:16: open-arm gestures reach about ±35% of the frame height from the centre line, and 9:16 clips them. 3:4 1080P (×1.31 face) is the upgrade for a layout that shows the presenter large.
- Lip sync from a still plus audio, not ref2vid: one presenter, a long script, both
ends pinned so the chunks join (
guide-lipsync-video). - Prompts from the script, never the transcript: speech-to-text misspells names and writes "$2.99" for "two ninety-nine".
- The person on camera when they'll record: a quick webcam read cut to its best takes is real and free; an avatar is for when they won't, or for many personalized copies.
Revisions: the chunk is the unit of change
Map every note to chunks and fix each chunk end to end; never patch audio or video by hand. Words wrong or changed: re-voice only that chunk, match the old chunk's level, pad 0.25 s each side and check its words by transcription; re-render the chunk; re-join, which moves everything after it. Then shift every cue after the changed chunk by its length change and re-render only the spans that changed.
Avoid
- No words in the lip-sync prompt: H3 renders a silent face.
- Finger counting on "First / Second / Finally": H3 holds up three on a line with no third item; ban it outright.
- A colour-keyed cutout: it eats skin and hair edges.
- A full-frame edit to remove a badge: the frame comes back nudged everywhere.
- Trimming each chunk with
-t, or hard cuts at the seams. - A real person generated from a description instead of their own photos.
Related
guide-lipsync-video: every lip-sync route, including fixing a real take's mouth.guide-show-a-product-on-screen: the screens the presenter talks over.workflow-slide-deck-presenter: a presenter beside built slides, end to end.


