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.

9 stars

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

$curl -o ~/.claude/skills/infinitetalk/SKILL.md --create-dirs "https://raw.githubusercontent.com/exiao/skills/main/video/infinitetalk/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/infinitetalk/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How infinitetalk Compares

Feature / AgentinfinitetalkStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

Use when judging content quality OR editing/improving existing copy: shareability, readability, voice, cuttability, angle, copy sweeps.

editor-in-chief

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

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

9
from exiao/skills

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'.