Avatar talking video
Cloud-based agent skills for creating AI avatar talking-head videos and short-form reels (skills.sh format)
npx -y skills add puntorigen/avatar-skills --skill avatar-talking-videoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate a talking-head avatar video from a line of text. Stage 1 synthesizes the text in the avatar's cloned voice via the voice-clone skill (reusing the avatar's trained voice, or training one from a source recording if it has none). Stage 2 feeds a camera-angle image (from avatar-camera-angles) plus the generated mp3 to prunaai/p-video-avatar on Replicate at 720p (or 1080p) and saves the lip-synced MP4 under <avatar>/generated-videos/ with a manifest.json. Use when the user wants a talking avatar / talking-head video, a lip-synced clip of an avatar saying some text, to animate a camera-angle still into a speaking video, or mentions "video del avatar hablando", "avatar que hable", "talking head", "lip sync", or p-video-avatar.
SKILL.md
5.7 KB, as published. Nobody here has run it
Avatar Talking Video
Turn text → a lip-synced talking-head video of an avatar, in two stages:
- Voice (TTS). Delegates to the
voice-cloneskill to speak the text in the avatar's cloned voice. It reuses the avatar's already-trained voice, or trains one from--sourceif the avatar has none. - Video (lip-sync). Sends a camera-angle image (
image, from theavatar-camera-anglesskill) plus the generated mp3 (audio) toprunaai/p-video-avataron Replicate. Whenaudiois supplied it drives the speech directly (the model's own voice settings are ignored), so lip-sync follows the cloned voice exactly.
Output lands in <avatar>/generated-videos/ with a manifest.json recording
the text, voice, image, audio, and video params.
Requirements
pip3 install -r requirements.txt(Replicate client). Thevoice-cloneskill must be installed (its TTS does stage 1); install its requirements too.- A Replicate API token, shared with the other Replicate skills (voice-clone,
gpt-image-2, avatar-video-reel, …) and discovered automatically. To set/refresh:
python3 scripts/setup_key.py YOUR_REPLICATE_API_TOKEN.
Inputs you need
- An avatar folder (e.g.
lolo/) — the one containing avideos/dir. It is auto-inferred from--image/--audio, or pass--avatar-dir. - A camera-angle image — produce it first with
avatar-camera-angles(a front-ish, clean portrait works best). Pass it with--image. If omitted,<avatar>/frames/frame_0001.pngis used. - The text to say (positional or
--text-file). The avatar must have a trained voice, or pass--sourceso stage 1 trains one first.
Usage
# Text -> cloned-voice audio -> talking-head video, from a camera angle
python3 scripts/generate_video.py "Hola, soy Lolo y te cuento algo." \
--image lolo/angles/skill_test/lolo_push_in.png
# 1080p + happy delivery + a custom visual prompt
python3 scripts/generate_video.py "Big news today!" \
--image lolo/angles/skill_test/lolo_push_in.png \
--resolution 1080p --emotion happy \
--video-prompt "The person is talking and smiling warmly."
# Reuse an existing mp3 (skip TTS) — just lip-sync it to the angle
python3 scripts/generate_video.py \
--audio lolo/generated-audios/001_hola.mp3 \
--image lolo/angles/skill_test/lolo_push_in.png
# Avatar has no voice yet: train it first from a clean voice clip
python3 scripts/generate_video.py "Hello there" \
--image lolo/angles/skill_test/lolo_push_in.png \
--source lolo/videos/2026-05-16_12-25-46_voice/voice_concat.mp3
Key options
| Option | Default | Description |
|---|---|---|
text / --text-file | — | What the avatar says (drives stage-1 TTS). |
--audio PATH | — | Use this mp3/wav directly and skip TTS. |
--image PATH | <avatar>/frames/frame_0001.png | Camera-angle / portrait image (image input). |
--avatar-dir | auto | Avatar folder (else inferred from --image/--audio). |
--resolution | 720p | 720p or 1080p (1080p ≈ 2× the cost). |
--video-prompt | The person is talking. | What the person is doing while speaking. |
--emotion | auto | TTS delivery (forwarded to voice-clone). |
--language-boost | detect | TTS language (auto-detected; forwarded). |
--voice-id / --name / --source | — | Pick / train the voice (forwarded to voice-clone). |
--negative-prompt | — | What to avoid (e.g. subtitles, text, watermark). |
--seed | — | Reproducible generation. |
--disable-prompt-upsampling | off | Use --video-prompt verbatim. |
Output (in <avatar>/generated-videos/)
| File | What it is |
|---|---|
<NNN>_<slug>.mp4 | The talking-head video (auto-numbered) |
manifest.json | items[] mapping each video → text, voice_id, image, audio, resolution, video_prompt, and the rest of the params |
Stage 1 also leaves the generated audio in <avatar>/generated-audios/ (the
voice-clone skill's own output). Report the video path, the voice_id used, and
the resolution when done.
Notes
audiooverrides voice settings. Because we always passaudio, the model'svoice/voice_script/voice_languageinputs are intentionally unused — lip-sync follows the cloned-voice mp3.- Cost is per second of output: 720p ≈ $0.025/s, 1080p ≈ $0.045/s.
- Image quality matters. A clean, front-ish angle preserves identity best; heavy angles or occlusion hurt lip-sync and likeness.
- Per-shot reels: generate several angles with
avatar-camera-angles, run this skill once per angle with the same text/voice, then stitch the clips.
Related skills
voice-clone— stage-1 TTS / voice training.avatar-camera-angles— produce theimageinput.avatar-frames— extract a clean reference frame.