Infinitetalk Fast Video To Video
Playground
Try it on WavespeedAI!Audio-driven infinitetalk-fast turns one video plus audio into realistic talking or singing videos with lip-sync. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
infinitetalk-fast Video-to-Video
What is InfiniteTalk?
InfiniteTalk creates new videos by combining an input silent video and an audio track. It ensures precise lip synchronization while aligning head, face, and body movements with the audio. With optional masking and prompting, you can control which areas move and how the scene appears. The model also maintains visual identity for natural and consistent results.
Why it looks great
- Accurate lip synchronization: matches lip motion precisely to the audio.
- Full-body coherence: aligns head pose, facial expressions, and posture with speech.
- Mask control: optional mask images let you define which regions can move.
- Instruction following: prompts can guide style, pose, or behavior.
- Identity preservation: ensures consistent visual identity across all frames.
How to Use
- Upload the audio file.
- Upload a video as the base.
- (Optional) Upload a mask image to control which regions can move.
- (Optional) Write a prompt to guide the style, pose, or expressions.
- Set the seed if you want reproducibility.
- Submit the job and download the generated video.
Note
- Max clip length per job: 10 minutes
- Processing speed: ~10–30 seconds of wall time per 1 second of video (varies by resolution and queue load)
More Versions
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/video-to-video" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"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. |
| video | string | Yes | - | The video for generating the output. | |
| mask_image | string | No | - | Optional mask image to specify the person in the video to animate. | |
| prompt | string | No | - | The positive prompt for the generation. | |
| 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 |