# Ltx v2.3 | Lipsync LTX-V2.3 Lipsync generates a talking video using an image and an audio file. The uploaded image naturally lip-syncs to the audio while displaying realistic facial expressions. ## API Information - **Model Slug:** ltx-v2-3-lipsync - **Branded URL:** https://www.eachlabs.ai/ltx/ltx-v2-3/ltx-v2-3-lipsync - **Provider:** Lightricks - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** 720p pricing: $0.0375/second - **Estimated Processing Time:** 140 seconds - **Last Updated:** 2026-08-16 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/ltx-v2-3-lipsync ## Pricing - **Charge Type:** dynamic - **Pricing Details:** 720p pricing: $0.0375/second ### Pricing Rules | Condition | Pricing | | --- | --- | | resolution eq_i "720p" | 720p pricing: $0.0375/second | | resolution eq_i "1080p" | 1080p pricing: $0.05/second | | resolution eq_i "480p" | 480p pricing : $0.025/second | ## Input Schema No input parameters documented. ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "ltx-v2-3-lipsync", "input": {} }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Ltx v2.3 | Lipsync Overview** Ltx v2.3 | Lipsync, from provider LTX in the ltx-v2.3 family, transforms static images into dynamic talking videos by syncing lips to provided audio files. This **image-to-video** model solves the challenge of creating realistic facial animations for content creators needing quick, expressive talking heads without complex filming. Its primary differentiator is generating natural lip movements and facial expressions that closely match audio inputs, producing high-quality results ideal for short-form videos. Available on **each::labs** (eachlabs.ai), Ltx v2.3 | Lipsync streamlines video production for social media, marketing, and educational content. Users upload an image and audio to receive a lip-synced video with lifelike expressions, making it a go-to for efficient **LTX image-to-video** workflows. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.