InfiniteTalk API
InfiniteTalk API access for audio-driven talking-head animation, lip-sync, and portrait animation.
curl -X POST https://runapi.ai/api/v1/infinitetalk/audio_to_video \
-H "Authorization: Bearer $RUNAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "infinitetalk-from-audio",
"image_url": "https://cdn.runapi.ai/public/samples/portrait.jpg",
"audio_url": "https://cdn.runapi.ai/public/samples/voice.mp3"
}'
import { InfinitetalkClient } from "@runapi.ai/infinitetalk";
const client = new InfinitetalkClient();
const result = await client.audioToVideo.run({
model: "infinitetalk-from-audio",
image_url: "https://cdn.runapi.ai/public/samples/portrait.jpg",
audio_url: "https://cdn.runapi.ai/public/samples/voice.mp3",
});
<?php
require __DIR__ . "/vendor/autoload.php";
use RunApi\Infinitetalk\InfinitetalkClient;
$client = new InfinitetalkClient();
$result = $client->audioToVideo->run([
'model' => 'infinitetalk-from-audio',
'image_url' => 'https://cdn.runapi.ai/public/samples/portrait.jpg',
'audio_url' => 'https://cdn.runapi.ai/public/samples/voice.mp3',
]);
require "runapi/infinitetalk"
client = RunApi::Infinitetalk::Client.new
result = client.audio_to_video.run(
model: "infinitetalk-from-audio",
image_url: "https://cdn.runapi.ai/public/samples/portrait.jpg",
audio_url: "https://cdn.runapi.ai/public/samples/voice.mp3"
)
npx skills add runapi-ai/infinitetalk -g
# Claude Code
claude mcp add runapi -s user -- npx -y @runapi.ai/mcp
# Codex
codex plugin install runapi-mcp@agents
# Cursor / Windsurf / VS Code
npx @runapi.ai/mcp init cursor
InfiniteTalk is MeiGen-AI's audio-driven talking head animation model that generates lip-synced facial animations from an audio input and a reference image. It produces natural head movements and expressions synchronized to speech.
- Multiple variants for different speed, quality, and cost tiers
- Model skill includes docs, schemas, pricing, and setup notes
- Works with Claude Code, Codex, Gemini CLI, Cursor, and VS Code
- Single API key and unified billing across all variants
- Async task management with polling and webhook callbacks
- Failed generations are not charged
Pricing
Technical details
| Model ID | infinitetalk-from-audio |
| Provider | MeiGen-AI |
| Modality | video |
| Task type | asynchronous |
| Billing unit | second |
| API endpoint | /api/v1/infinitetalk/audio_to_video |
| Commercial license | Yes — included via API |
| Status | Operational |
Install the InfiniteTalk skill for app development
Load the model docs, schemas, pricing notes, and setup steps into your coding workspace.
# Install the model skill for app development workflows
npx skills add runapi-ai/infinitetalk -g
Install the InfiniteTalk skill for this app: 1. Add runapi-ai/infinitetalk with the skills installer. 2. Load SKILL.md in this workspace. 3. Use its docs, schemas, pricing notes, and setup steps when adding model features. 4. Confirm the install path when done.
From model skill to first result in four steps
Choose a model
Browse the model catalog and pick the model and variant that match your output type, quality bar, and latency target. Each variant page shows its model ID, pricing, and parameter constraints so you can compare before committing.
Configure
Set your RunAPI API key as an environment variable and install the model skill in your coding workspace. The skill loads docs, typed schemas, pricing notes, and setup steps so your agent has the right context from the start.
Call
Use the skill instructions to add the model feature inside your application. Send a POST request with your prompt, model ID, and parameters. RunAPI routes the request, manages the async lifecycle, and returns structured JSON.
Receive
Poll by task ID for completion, stream results end-to-end when supported, or configure a webhook callback URL to receive results automatically. The CLI provides a built-in wait command, and the SDKs offer both polling and callback patterns.
What is the InfiniteTalk API?
InfiniteTalk is MeiGen-AI's audio-driven avatar model, generating lip-synced animation from a portrait and audio input. Through RunAPI, it shares unified API access and billing.
Why route the InfiniteTalk API through RunAPI
One auth, every provider
A single RunAPI API key unlocks the whole model catalog across all providers. No separate accounts to create, no API keys to rotate per integration, and no credential management overhead. Add a new model to your app by changing one parameter.
Unified pricing & billing
Per-call pricing in USD, billed monthly into a single invoice. No subscription tiers, no minimum spend, and failed generations are never charged. The pricing page and check_pricing API show exact costs before you commit to a model.
Schema-first SDK
Typed schemas, parameter constraints, and setup notes are packaged in the model skill so your implementation starts from the right contract. The skill loads into Claude Code, Codex, Gemini CLI, Cursor, and VS Code — your agent knows the correct request shape before you write a line of code.
Common questions
Which variant should I start with?
Pick the cheapest variant that meets your quality bar. Most teams start on the fast variant and graduate to pro for production.
Is there a free tier?
New accounts get free first calls on every model. After that, pay per call.
Do you stream results?
Where streaming is available, RunAPI streams end-to-end.
How are failures billed?
Failed generations are not charged.
Are outputs cached?
Generated outputs are stored and retrievable by task ID. Inputs are not cached.
Can I use commercially?
Yes — commercial use is included for every variant unless a model license explicitly restricts it, which is called out on the variant page.
What about rate limits?
Per-key rate limits scale with usage tier. See pricing page for current limits.
Where can I report issues?
Open an issue on the public GitHub repo or email support.
If you like the InfiniteTalk API, try these
Start building with the InfiniteTalk API.
- audio_to_video