# LatentSync - Core.Today AI API > ByteDance's open-source lipsync — re-syncs a video's mouth movements to any audio track using latent diffusion. State-of-the-art open lipsync quality for dubbing and localization. - **Provider**: ByteDance - **Model ID**: bytedance/latentsync - **Category**: Video Generation - **Credits**: 220 per run (runtime grows with video length) - **Speed**: Slow - **Quality**: High ## Features - Video + audio → lip-synced video - State-of-the-art open-source lipsync - Latent diffusion mouth re-generation - Guidance scale control ## Use Cases - Video dubbing and localization - Fixing TTS-narrated presenter videos - Music video lip-sync - Marketing video language swaps ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Optional - **video**: string - Input video with a visible face - **audio**: string - Audio track to sync the lips to - **guidance_scale**: number (default: 1) - Guidance scale for generation - **seed**: integer (default: 0) - Random seed (0 for random) ## Examples ### Dub a Presenter Video Sync a presenter's lips to a new Korean voiceover ```json { "model": "bytedance/latentsync", "input": { "video": "https://example.com/presenter.mp4", "audio": "https://example.com/korean-voiceover.mp3" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Works best with front-facing, well-lit faces - Pair with a TTS model (e.g. ElevenLabs) to build a full dubbing pipeline - Longer videos take proportionally longer to process - Only process videos of people who have consented ## Documentation https://replicate.com/bytedance/latentsync