Infinitetalk
Playground
Try it on WavespeedAI!InfiniteTalk is an audio-driven conversational AI video generation model. Create talking or singing videos from a single image and audio input. Our endpoint starts with $0.15 per 5 seconds (480p) or $0.3 per 5 seconds (720p) video generation and supports a maximum generation length of 10 minutes.
Features
InfiniteTalk
What is InfiniteTalk?
InfiniteTalk produces videos with precise lip sync, aligning the head, face, and body movements to the audio. It maintains identity across unlimited-length videos and also offers image-to-video generation, turning static photos into lively speaking or singing videos.
Why it looks great
-
Accurate lip synchronization: aligns lip motion precisely with audio, preserving natural rhythm and pronunciation.
-
Full-body coherence: captures head movements, facial expressions, and posture changes beyond the lips.
-
Identity preservation: maintains consistent facial identity and visual style across frames.
-
Image-to-video capability: turns static photos into realistic speaking or singing videos.
-
Instruction following: accepts text prompts to control scene, pose, or behavior while syncing to audio.
Pricing
Output Resolution | Cost per 5 seconds | Max Length |
---|---|---|
480p | $0.15 | 10 minutes |
720p | $0.30 | 10 minutes |
Billing Rules
-
Minimum charge: 5 seconds
-
Per-second rate = (price per 5 seconds) ÷ 5
-
Billed duration = video length in seconds (rounded up), with a 5-second minimum
-
Total cost = billed duration × per-second rate (by output resolution)
How to Use
- Upload the audio file.
- Upload the image (the person to animate).
- (Optional) Upload a mask_image to specify which regions can move.
- (Optional) Add a prompt to guide expression, style, or pose.
- Select the resolution (480p or 720p).
- Set the seed (set a fixed number for reproducibility).
- Submit the job and download the result once it’s ready.
Note
- Max clip length per job: up to 10 minutes
- Processing speed: approximately 10–30 seconds of wall time per 1 second of video (varies by resolution and queue load)
More Versions
Reference
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/infinitetalk" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "480p",
"seed": -1
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
Parameter | Type | Required | Default | Range | Description |
---|---|---|---|---|---|
audio | string | Yes | - | - | The audio for generating the output. |
image | string | Yes | - | The image for generating the output. | |
mask_image | string | No | - | Optional mask image to specify the person in the image to animate. | |
prompt | string | No | - | The positive prompt for the generation. | |
resolution | string | No | 480p | 480p, 720p | The resolution of the output video. |
seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
Response Parameters
Parameter | Type | Description |
---|---|---|
code | integer | HTTP status code (e.g., 200 for success) |
message | string | Status message (e.g., “success”) |
data.id | string | Unique identifier for the prediction, Task Id |
data.model | string | Model ID used for the prediction |
data.outputs | array | Array of URLs to the generated content (empty when status is not completed ) |
data.urls | object | Object containing related API endpoints |
data.urls.get | string | URL to retrieve the prediction result |
data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
data.status | string | Status of the task: created , processing , completed , or failed |
data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
data.error | string | Error message (empty if no error occurred) |
data.timings | object | Object containing timing details |
data.timings.inference | integer | Inference time in milliseconds |