Add to request header:
Authorization: Bearer YOUR_API_KEY
Lipsync model variant
lipsync-2: Standard qualitylipsync-2-pro: Higher qualitylipsync-2, lipsync-2-pro "lipsync-2"
Public URL of the input video file
Requirements:
"https://example.com/portrait-video.mp4"
Public URL of the input audio file
Requirements:
sync_mode)"https://example.com/speech.mp3"
Video-audio synchronization mode, determines output video duration
| Value | Behavior | Output Duration |
|---|---|---|
bounce | Video plays back and forth to match audio length | = audio duration |
loop | Video loops to match audio length | = audio duration |
cut_off | Audio is cut when video ends | = min(video, audio) |
silence | Video padded with silence at the end | = video duration |
remap | Audio timeline remapped to match video | = audio duration |
bounce, loop, cut_off, silence, remap "loop"
Mouth movement expressiveness control
0.0 - 0.3: Conservative, natural mouth movements0.4 - 0.6: Balanced expressiveness0.7 - 1.0: Exaggerated, dynamic mouth movements0 <= x <= 10.5
Whether to enable active speaker detection
When enabled, analyzes speaking segments in audio and only syncs mouth movements during speech. Improves realism for multi-person scenes or videos with silent segments.
false
HTTPS callback address after task completion
Callback Timing:
Security Restrictions:
2048 charactersCallback Mechanism:
10 seconds3 retries on failure"https://your-domain.com/webhooks/lipsync-completed"
Lipsync task created successfully
Task creation timestamp
1757165031
Task ID
"task-unified-1757165031-a1b2c3d4"
Actual model name used
"lipsync-2"
Specific task type
video.generation.task Task progress percentage (0-100)
0 <= x <= 1000
Task status
pending, processing, completed, failed "pending"
Task output type
video "video"
Usage and billing information