// MEDIA LAB
Grounding makes a persona think. Media makes it present. Some media ships in Revive today: real voices, video replies, retrieved artwork, and AI-generated portraits. The rest is a media pipeline that a sister project proved end to end. It is ready to be pointed at the personas.
None of this is a mockup. Each capability below runs in production, together with the RAG APIs and Discord bots.
Each persona speaks through its own ElevenLabs voice. Send a voice message, and it returns through Whisper transcription, a grounded RAG answer, and text-to-speech in character. Sagan and Walter Russell use voice clones, not stock voices. Russell's clone comes from a lecture tape he recorded at Swannanoa in 1953.
Gabriella 2.0's "Gabriella Pro" voice was not set once. We calibrated it across several listening sessions until it sounded correct.
Gabriella 2.0, Sagan, Decode, and Walter Russell hold live spoken conversations. The channel streams speech-to-text into Claude, and it streams ElevenLabs audio back out, at about two seconds of latency. Sagan's channel mixes background music under his answers.
/vid repliesGabriella 2.0 answers with video. ffmpeg merges a looping mp4 of her portrait with a new TTS answer. A spoken reply arrives as a short talking clip, not an audio file. This shows that persona video works here today.
Leonardo has an image-retrieval system. It pulls pieces from his own catalog and pairs them with his replies. When he speaks about anatomy or flight, the applicable sketch comes with the answer.
Some faces on this site are AI-generated portraits from the image stack below. Not all are. A persona's face can also come from the record. Imagery a mind owns (artwork from its corpus, photographs, sketches) can enter the system too, so the mind can answer with its own pictures. The avatars in the strip below this grid are those exact files, live on each page.
The portraits, as shipped
These are the real avatar files served across the site. The pipeline below can set these portraits in motion.
A sister project proved this five-stage media pipeline end to end. Each script and API key is in place. It has not been pointed at the personas yet, but nothing new must be built.
Generate the key frames.
gpt-image-2Voice the script in the persona's voice.
ElevenLabsAlign frames to the narration.
whisper-1Animate the stills into moving shots.
Grok ImagineCut it all into the finished reel.
reel sequencer| Stage | Tool | What it does | Discipline worth keeping |
|---|---|---|---|
| 1 · Stills | OpenAI gpt-image-2 |
Manifest-driven generation. A TSV lists each frame and its prompt, and the script renders them in a batch. Raw PNGs stay archived. Finals ship as web JPEGs. | Each prompt ends with a "no lettering / signage / watermarks" guard sentence. Without it, the model invents text in the frame. --quality high runs about 6 times slower than low. |
| 2 · Narration | ElevenLabs eleven_turbo_v2_5 |
Reads a script line by line from a JSON manifest, in the persona's own voice. This produces one recorded narration track. | An --estimate mode prices a run from the character count, with no API call. You know the cost before you spend a credit. |
| 3 · Timing | OpenAI whisper-1 |
Forced alignment. It transcribes the recorded narration with word-level timestamps. It then aligns the transcript to the known script, and it recovers a real start and end time per line. | All sync derives from this data. On-screen text tracks the voice exactly, and no timing is estimated by hand. Whisper bills per minute of audio, not per character. |
| 4 · Motion | xAI Grok Imagine grok-imagine-video |
Turns a still into a short motion clip. The system submits an image-to-video job and polls until it finishes. This is how a portrait becomes animated: a face that breathes and blinks. | $0.05/s flat ($0.08/s on v1.5), with a cap of 15 s per clip. Real cost is about 1.4 times the estimate, because the quote omits an image-input fee. Trust the per-job log, not the estimate. |
| 5 · Assembly | JS reel sequencer | Plays the narration track against the sequence of stills and clips, cut to the voice. Subtitles render on the video itself. Each asset is base64-inlined, so the page makes no external requests. | Beats lock to narration onset times, not to a timer. The picture does not drift ahead of the voice. Short clips slow down with playbackRate to fill their beat, and they do not freeze early. |
Stages 1 through 3 can run in any order. Stages 4 and 5 are sequential. The chain is a sister project's proven production path. It is not a Revive feature yet, but the scripts, the manifests, and each API key are in place. To point it at a persona is a configuration job, not a build. The stage-by-stage write-up is in the public repo as media-pipeline.md. The voice side, async and real-time, is voice-pipeline.md.
Each item below is assembled from the stages above. The questions are which stages, and what the cost is. Where a per-second price exists, the estimate is included.
Each mind's portrait, breathing and blinking on the personas page. An idle loop replaces a static headshot. The stills exist. Only the motion is new.
A narrated short that shows how a persona is rebuilt from its sources. The persona's own voice tells it, over its own portrait and stills. This uses the full pipeline.
The real roundtable transcripts, cut into short reels, with word-synced subtitles over the speakers' portraits. The audio is recorded persona voice. The timing comes from forced alignment.
Emily retrieves her actual verses. Each one becomes a typographic card. Her voice reads the poem, and the text appears as she speaks. There is no performance and no motion. The poem is heard and seen.
Leonardo retrieves works from his catalog with his replies. Add narration and light motion, and a retrieved sketch becomes a short piece, with his commentary on his own work.
Grounding is not only a text idea. A persona's face and voice should come from what the persona was, and they should be calibrated with intent, not set to a default. Gabriella 2.0's voice shows this. We did not guess the tuning values (stability 0.75, similarity 1.0, style 0.20, speed 0.88). We reached them by ear over several sessions. Portraits, motion, and narration need the same care before they represent a mind.