infinitetalk
Generate a talking avatar video from a character image + audio file using InfiniteTalk via Fal.ai. Lip-syncs the audio to the character with full-body animation.
Best use case
infinitetalk is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate a talking avatar video from a character image + audio file using InfiniteTalk via Fal.ai. Lip-syncs the audio to the character with full-body animation.
Teams using infinitetalk should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/infinitetalk/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How infinitetalk Compares
| Feature / Agent | infinitetalk | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate a talking avatar video from a character image + audio file using InfiniteTalk via Fal.ai. Lip-syncs the audio to the character with full-body animation.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# InfiniteTalk
Animates a static character image to lip-sync + body-animate to an audio file. Runs via Fal.ai — cloud API, no GPU needed.
**API:** Fal.ai (`FAL_KEY` env var)
**Model ID:** `fal-ai/infinitalk` (image + audio → video)
---
## Quick Usage
```bash
uv run ~/clawd/skills/video-production/infinitetalk/scripts/generate_video.py \
--image ~/clawd/characters/max/face-ref-2026-03-03.png \
--audio ~/clawd/characters/max/audio/2026-03-03-episode-1.mp3 \
--prompt "A confident financial analyst explaining a market insight, expressive but composed" \
--output ~/clawd/characters/max/videos/2026-03-03-episode-1.mp4
```
---
## Parameters
| Flag | Required | Default | Notes |
|------|----------|---------|-------|
| `--image` | ✅ | — | Local path or URL to character image (PNG/JPG) |
| `--audio` | ✅ | — | Local path or URL to audio file (MP3/WAV) |
| `--prompt` | ✅ | — | Expression/behavior guide for the avatar |
| `--output` | — | `~/clawd/output/infinitetalk-<timestamp>.mp4` | Output MP4 path |
| `--resolution` | — | `720p` | `480p` or `720p` |
| `--acceleration` | — | `regular` | `none`, `regular`, or `high` |
---
## Prompt Tips
The prompt guides how the character moves and expresses — not what they say (that's from the audio).
Good prompts:
- `"A confident investor making a key point, direct eye contact, subtle hand gestures"`
- `"An energetic young analyst reacting to market news, expressive face"`
- `"A calm financial educator, measured delivery, slight nods"`
Bad prompts: vague descriptions like "a person talking" give generic results.
---
## Output
Prints the saved path on completion:
```
VIDEO: ~/clawd/characters/max/videos/2026-03-03-episode-1.mp4
```
---
## Pricing (via Fal.ai)
Billed per generation. A ~60-second video at 720p ≈ $0.20-0.50 depending on frame count.
- 145 frames (default) ≈ ~5 seconds of video. For longer scripts, increase `--frames`.
- Max frames: 721. For a 60-second script, audio length drives output length automatically.
---
## Setup
```bash
pip install fal-client
export FAL_KEY="your_key_here"
```
---
## In the Pipeline
1. Create character → `character-creation` skill (generates `face-ref.png`)
2. Write script → `content-strategy` (Video Series section)
3. Generate audio → `elevenlabs` sub-skill (generates `.mp3`)
4. **Generate video → this skill** (takes image + audio → MP4)
5. Schedule → PostBridge MCP (see below)
## Scheduling via PostBridge MCP
The InfiniteTalk output video is hosted on fal.ai storage as a public URL — pass it directly to PostBridge MCP. No separate media upload needed.
```bash
# 1. Get your social account IDs (one-time setup)
mcporter call postbridge.list_social_accounts
# 2. Schedule the video
mcporter call postbridge.create_post \
caption="Your caption here" \
social_accounts='["tiktok-account-id", "reels-account-id"]' \
media_urls='["https://v3.fal.media/files/.../<video>.mp4"]' \
scheduled_at="2026-03-04T14:00:00Z"
# 3. Check it posted
mcporter call postbridge.list_post_results
```
**Note:** `media_urls` accepts the fal.ai URL directly from InfiniteTalk output — no re-upload required.
Store account IDs in `~/clawd/characters/<slug>/config.json` under `accounts.postbridge_ids`.
---
## Character Directory Convention
```
~/clawd/characters/<slug>/
config.json ← character config (voice, appearance, accounts)
face-ref-YYYY-MM-DD.png ← use as --image input
audio/
YYYY-MM-DD-<title>.mp3 ← output from elevenlabs skill
videos/
YYYY-MM-DD-<title>.mp4 ← output from this skill
scripts/
YYYY-MM-DD-<title>.md ← episode scripts
```Related Skills
writer
Write content in Eric's voice — articles, blog posts, tweets, social media posts, marketing copy, newsletter drafts. Loads WRITING-STYLE.md and enforces kill phrases.
positioning-angles
Use when defining product positioning, choosing strategic angles, crafting value propositions, competitive positioning, product messaging, differentiation strategy, or go-to-market angles. Also use for 'how should I position my app', 'what angle should I use', 'painkiller vs vitamin', or 'market positioning'.
outline-generator
Use when generating outlines, article structures, content outlines, blog outlines, planning article sections, structuring posts, breaking down topics into sections, or organizing ideas for long-form content. Also use for 'outline this', 'structure this article', or 'plan the sections'.
last30days-open
Use only when the user explicitly asks for the open variant of last30days, including watchlists, briefings, and history queries. Sources: Reddit, X, YouTube, web.
last30days
Use when researching what happened in the last 30 days on a topic. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Produces expert-level summary with copy-paste-ready prompts.
hooks
Use when generating hooks, headlines, titles, and scroll-stopping openers for content. Also use when analyzing viral posts, Reels, TikToks, YouTube Shorts, or successful social examples to extract reusable hook patterns and improve hook guidance.
evaluate-content
Use when judging content quality OR editing/improving existing copy: shareability, readability, voice, cuttability, angle, copy sweeps.
editor-in-chief
Use when a first draft is complete and all Phase 1 gates are done: topic selected (seo-research), title approved (hooks), outline approved (outline-generator), draft written (writer). Runs autonomous diagnosis-prescribe-rewrite loop before Substack.
copywriting
Write or improve marketing copy for any surface: pages, ads, app stores, landing pages, TikTok/Meta scripts, push notifications, UGC. Combines page copy frameworks with direct response principles.
content-strategy
Use when building content strategy: hooks, angles, and ideas from what's trending now. Covers organic and paid creative across TikTok, X, YouTube, Meta, LinkedIn.
content-pipeline
Orchestrator for the 3-article content pipeline — runs research phase, spawns parallel article sub-agents, creates Typefully drafts. Use when running the full content pipeline (usually via cron at 3am).
yt-dlp
Download audio/video from YouTube and other sites using yt-dlp. Use when the user asks to download music, songs, albums, podcasts, or video from YouTube or similar platforms. Triggers on 'download song', 'get mp3', 'yt-dlp', 'youtube download', 'rip audio'.