{"servers":[{"url":"https://api.modellix.ai/api/v1/vidu/lip-sync/async"}],"post":{"description":"Vidu lip sync model. Reanimates the lip movements in a video to match a replacement audio track. `video_url` is required. Provide `audio_url` as the new audio to sync lips to. Use `reference_face_image_url` to preserve face identity consistency across the video.","operationId":"viduLipSyncAsync","requestBody":{"content":{"application/json":{"examples":{"with_audio":{"summary":"Replace audio track","value":{"audio_url":"https://example.com/new-voiceover.mp3","video_url":"https://example.com/presenter-video.mp4"}},"with_reference_face":{"summary":"With reference face for identity","value":{"audio_url":"https://example.com/audio.mp3","reference_face_image_url":"https://example.com/face-reference.jpg","video_url":"https://example.com/video.mp4"}}},"schema":{"description":"Vidu lip sync request. Synchronizes lip movements in the source video to match the provided audio track.","properties":{"audio_url":{"description":"Replacement audio track URL. The model will reanimate the speaker's lips to match this audio.","example":"https://example.com/new-voiceover.mp3","minLength":1,"type":"string"},"reference_face_image_url":{"description":"Reference face image URL. When provided, the model uses this face to preserve identity consistency throughout the video.","example":"https://example.com/face-reference.jpg","minLength":1,"type":"string"},"video_url":{"description":"Source video URL containing the face to reanimate.","example":"https://example.com/talking-head.mp4","minLength":1,"type":"string"}},"required":["video_url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"code":0,"data":{"get_result":{"method":"GET","url":"https://api.modellix.ai/api/v1/tasks/task-vidu-lsync-001"},"model_id":"vidu/lip-sync","status":"pending","task_id":"task-vidu-lsync-001"},"message":"success"},"schema":{"properties":{"code":{"description":"Response code, 0 indicates success","example":0,"type":"integer"},"data":{"description":"Detailed data about the submitted asynchronous task.","properties":{"get_result":{"description":"API information to query the task result","properties":{"method":{"example":"GET","type":"string"},"url":{"example":"https://api.modellix.ai/api/v1/tasks/task-abc123","type":"string"}},"type":"object"},"model_id":{"description":"Model ID in `provider/model` format","example":"vidu/viduq3-mix-r2v","type":"string"},"status":{"description":"Task status","enum":["pending","processing"],"example":"pending","type":"string"},"task_id":{"description":"Unique task identifier for polling","example":"task-abc123","type":"string"}},"required":["status","task_id","model_id"],"type":"object"},"message":{"description":"Response message","example":"success","type":"string"}},"required":["code","message","data"],"type":"object"}}},"description":"Task submitted successfully"},"400":{"content":{"application/json":{"example":{"code":400,"message":"Invalid parameters: parameter 'reference_images' is required"},"schema":{"properties":{"code":{"example":400,"type":"integer"},"message":{"example":"Invalid parameters: parameter 'reference_images' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Invalid request parameters"},"401":{"content":{"application/json":{"example":{"code":401,"message":"Authentication failed: invalid API key"},"schema":{"properties":{"code":{"example":400,"type":"integer"},"message":{"example":"Invalid parameters: parameter 'reference_images' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Unauthorized - Invalid or missing API Key"},"429":{"content":{"application/json":{"example":{"code":429,"message":"Rate limit exceeded: 100 requests per minute, retry after 60 seconds"},"schema":{"properties":{"code":{"example":400,"type":"integer"},"message":{"example":"Invalid parameters: parameter 'reference_images' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Too many requests - Rate limit exceeded","headers":{"X-RateLimit-Limit":{"description":"Maximum requests per minute","schema":{"example":100,"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining quota in current window","schema":{"example":0,"type":"integer"}},"X-RateLimit-Reset":{"description":"Rate limit window reset time (Unix timestamp)","schema":{"example":1704067260,"type":"integer"}}}},"500":{"content":{"application/json":{"example":{"code":500,"message":"Internal server error"},"schema":{"properties":{"code":{"example":400,"type":"integer"},"message":{"example":"Invalid parameters: parameter 'reference_images' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Internal server error"}},"summary":"Vidu Lip Sync","x-mint":{"href":"vidu/lip-sync"}}}