---
name: avatar-long-speech
description: "A speaker of any length on MiniMax H3 Max Turbo — silent 2 s stub from the picture (image-to-video), then extend-video per ≤ 14 s voice piece with output continuation (only the new footage, assembled here — sharper than extended), the piece in reference_audio_urls and its words + acting beats in the prompt, the stub cut off; an illustrative plan format, prompts and limits. Part of the avatar reference set."
---

These creative references describe source experiments with external tools. Use your own supported account and tools; this download installs no automation. Settings and timings are experimental observations, not current FlashBoards availability. Use only media and voices you have permission to use.

# avatar-long-speech · stub + extend chain

Inputs are the person's own: {picture} (the first frame), {speech} voiced with their {voice}.

## Steps

1. Split the speech with your supported audio editor: pieces cut at pauses (silence −35 dB ≥ 0.3 s), even, 2…14 s, each with `audio_url`, `seconds` and the transcribed `words`.
   If there is no pause in reach, shorten the speech or raise the maximum piece length to at most 15 s.
2. Attach {picture} through your supported external tool.
3. Write an illustrative assembly plan — one prompt per piece (template below), `words` without the `[tags]`. This JSON is not an installed runner or FlashBoards API:
   ```json
   {"name": "speaker-clip", "image_url": "<picture url>", "stub_duration": 2, "parts": [{"audio_url": "<piece 1>", "seconds": 10.6, "prompt": "<prompt 1>"}]}
   ```
4. Request the stub and extend each piece through your supported external tool, following the settings below; assemble the continuations and remove the stub.

What it does: stub `minimax/h3-max-turbo/image-to-video` · `duration 2` · `768P` · `prompt_expansion_mode disabled` → for every piece `minimax/h3-max-turbo/extend-video` · `video_url` = the clip so far · `reference_audio_urls: [piece]` · `duration` = piece + 0.2 s · **`output: continuation`** · `enable_prompt_expansion: false` → the returned clip starts with a 1.625 s repeat of the source's end: cut it by frames (39 at 24 fps), append the new footage to the clip so far, re-encode that once (CRF 12) and upload it as the next source → at the end cut at the stub's end (or up to 0.6 s earlier if the speech starts there) − 0.1 s, re-encode x264 CRF 16.

**Always `continuation`, never `extended`.** `extended` returns the whole clip re-generated and re-encoded at every step, so the picture softens step after step; with `continuation` every piece is kept as it came out and the clip is assembled here. Same generation time (measured below). The source used `"output": "extended"` only for comparison; select the output mode explicitly in your supported external tool.

## Source stub prompt

```text
One continuous take from the given first image. The <man/woman/person> stays still and silent, looking straight into the lens, lips closed, one soft natural blink. The camera holds still. Everything stays exactly as in the first image. Quiet room tone only, no voice, no music.
```

## Piece prompt (standing / sitting talking head)

```text
The same <man/woman/person> <starts/keeps> talking straight into the camera, casual and alive, like recording a story for <their> followers. Audio 1 is <their> voice: <they> say(s) exactly these words, <their> lips exactly in sync with Audio 1: "<the piece's words>" <acting beats tied to words>. The framing is slightly crooked and wobbles a little, like a handheld phone. <Their> face, hair and clothes, the place and the light stay exactly as in the video. One continuous shot, no cuts, no music, no text on screen.
```

- `<acting beats tied to words>`: one beat per word or pause of the piece — "A small breath and a <mood> smile before '<first word>'. On '<word>' <they> lean(s) in closer to the lens… <They> laugh(s) after '<word>'… On '<question>' <they> raise(s) <their> eyebrows and pause(s), waiting."
- "starts" for piece 1, "keeps" for the rest.

## Measured

| | Result |
|---|---|
| Speech in the clip | the input file: correlation 0.96–0.98 on words (control AAC 1.000) |
| Laughs, sighs, pauses | re-timed: correlation 0.50–0.58, the clip drifts +1…+3 s a minute |
| Stub frames | the model may put its own noise there (0.3–1.6 s) — always cut |
| Sharpness, `continuation` vs `extended` (same stub, voice, prompts, 768P) | frame by quarters of the clip 198 / 185 / 157 / 161 vs 179 / 147 / 114 / 132; the face 259 / 223 / 181 / 179 vs 239 / 210 / 138 / 163 (variance of the Laplacian, 1 frame a second) |
| Still softens along a chain | the face loses ≈ 30 % from the first to the last quarter in both modes — the model drifts from the picture; for long talks cut to a fresh stub (another angle) every 25–50 s (`avatar-podcast`) |
| Source-listed resolutions | 480P · 768P · 1080P · 2K; the chain measurements below used 768P |
| Time | 26–42 s per piece, ≈ 4 min a minute; `continuation` adds an upload of the clip so far (seconds) |

## Limits

- Audio per piece 2–15 s; the source clip ≤ 60 s (≈ a minute of speech per chain), ≤ 50 MB.
- Lips follow the clip's own sound — publish the clip's audio, not the original track.

## Example run (reference only — never reuse its files, prompts, voices or images for a person)

The filenames below are historical output labels, not delivered or required files. Use your own picture, permissioned speech pieces, per-piece prompts and assembled outputs; no author-specific chain runner is supplied.

- Demo character Mara Vale, 9.10.2026: start frame from the worked example (laundromat), line from the worked example (27 s, tags `[mischievously] [laughs] [sighs]`), pieces `t2_a1.mp3` / `t2_a2.mp3`, clips `t2_ext1.mp4`, `t2_ext2.mp4` (30.7 s).
- Podcast «Slow Talk», 9.10.2026 evening: medium-shot segment (4 pieces, 49.7 s) run twice on the same stub — `extended` (`chain_a.mp4`) and `continuation` (`chain_a_cont.mp4`); side by side `cmp_extended_vs_continuation.mp4`. The numbers in «Measured» are from this pair.
