Infinitetalk Fast Multi
Playground
Try it on WavespeedAI!InfiniteTalk fast multi converts a single image and two audio inputs into multi-character talking or singing videos. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
InfiniteTalkFast multi
What is InfiniteTalk?
InfiniteTalk creates videos with accurate lip sync while matching head, face, and body movements to the audio. It maintains identity across unlimited-length videos and also allows image-to-video creation, transforming 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.
How to Use
- Upload the left and right audio files.
- Upload your image (The image should clearly show two people).
- Select the speaking order (left to right, right to left, or meanwhile).
- Write the prompt if needed.
- Submit the job and download the results once they’re 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-fast/multi" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"order": "meanwhile",
"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 |
|---|---|---|---|---|---|
| left_audio | string | Yes | - | - | The audio of the persion on the left for generating the output. |
| right_audio | string | Yes | - | - | The audio of the persion on the right for generating the output. |
| image | string | Yes | - | The image for generating the output. | |
| prompt | string | No | - | The positive prompt for the generation. | |
| order | string | No | meanwhile | meanwhile, left_right, right_left | The order of the two audio sources in the output video, "meanwhile" means both audio sources will play at the same time, "left_right" means the left audio will play first then the right audio will play, "right_left" means the right audio will play first then the left audio will play. |
| 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 |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | 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.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 |