Infinitetalk Video To Video
Playground
Try it on WavespeedAI!InfiniteTalk is an audio-driven conversational AI video generation model. Create talking or singing videos from a single video 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 minutes.
Features
InfiniteTalk 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.
Pricing
Output Resolution | Cost per 5 seconds | Max Length |
---|---|---|
480p | $0.15 | 10 minutes |
720p | $0.30 | 10 minutes |
Billing Rules
- Standard Rate: $0.03 per second
- HD (720p) Rate: $0.06 per second (Double the Standard Rate)
- Minimum Charge: All videos are billed for a minimum of 5 seconds (costing at least $0.15).
- Billing Cap: To keep your costs predictable, billing is capped at 600 seconds (10 minutes).
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.
- Select the output resolution (480p or 720p).
- 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/video-to-video" \
--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. |
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. | |
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 |