One hand-drawn watercolor portrait. One voice line. No rigging, no face capture, no 3D — just a still picture and an audio track, and the character's mouth moves in sync with the words. Real assets, end-to-end on Livepeer's sync-lipsync-v3 cap (Sync Labs sync-3).
heygen-twin and talking-head are tuned for photoreal humans. sync-lipsync-v3 drives any still — an illustration, a painted character, a single animated frame, a mascot — and lip-syncs it to whatever audio you give it. The video analog of "give your storybook narrator a voice." Draw the character once; let it speak forever.
Left: the static input — a single watercolor-and-ink portrait from gpt-image, front-facing, clean face. Right: the sync-lipsync-v3 output — the same illustration, now lip-syncing to a gemini-tts voice line. Unmute to hear it. The mouth shapes track the phonemes; everything else stays drawn.
Voice line: "I'm just a drawing — but Storyboard gives me a voice." Spoken by gemini-tts (voice "Aoede"), then driven onto the still by sync-lipsync-v3. No keyframes, no rig — the lipsync is generated from the audio.
heygen-twin may read more lifelike.)gemini-tts, chatterbox-tts (voice-clone), inworld-tts. Host local audio with host-local-file.sh first so it's a public URL.create_media(action:"lipsync", source_url:<still>, audio_url:<voice>, model_override:"sync-lipsync-v3") — or just mention "sync-3"/"sync-lipsync". The still is the source; the audio drives the mouth.ffmpeg-concat shots, ffmpeg-burn-subtitles for captions, ffmpeg-export to platform aspect. One drawn character can carry a whole explainer.Three talking caps live on Livepeer, and they don't overlap. Pick by what the face is:
Verdict: ships. A single drawn portrait + a voice line → a talking character with believable, audio-driven lipsync in ~4 minutes. The face stays exactly as drawn; only the mouth moves. The one cap on the network that lets illustrations speak.
Render long lines as several short clips — sync-3 is a slow ($8/min) cap, so keep each segment under ~10s and ffmpeg-concat them, rather than one long take. Available on MCP, the CLI, and the webapp via action:"lipsync" or by mentioning "sync-3" / "sync-lipsync".