Infinitalk
Infinitalk models are called through one unified, asynchronous job API. Start a task with POST /api/generate, then poll GET /api/generate/{taskId} until it finishes. This family exposes 1 endpoint.
Overview
Every endpoint shares the same envelope — only model and the input fields change. Run any from the Models Market playground.
Authentication
Create an API key at /api-keys, then send it as a Bearer token. Requests from the browser while logged in also work via the session cookie.
Authorization: Bearer <YOUR_API_KEY>Create Task
POST https://api.lithovas.com/api/generateBody: { "model": "<slug>", "input": { … } }
Response: { "taskId": "<id>", "state": "waiting" }
Query Result
GET https://api.lithovas.com/api/generate/<taskId>Response: { "taskId", "state": "waiting" | "success" | "fail", "resultUrls": [ … ], "creditsConsumed", "failMsg", "balance" }
state becomes success or fail. Failed tasks are not billed.Endpoints
| Model | Task | model slug |
|---|---|---|
| InfiniTalk | Lip Sync | infinitalk/from-audio |
InfiniTalk · Lip Sync
infinitalk/from-audioimage_urlstringrequiredURL of the input image (resized/center-cropped if needed)
audio_urlstringrequiredThe URL of the audio file for lip-sync generation
promptstringrequiredText guidance for video generation (max 5000 chars)
resolutionenum<string>optionalOutput video resolution option
seednumberoptionalRandom seed for reproducibility (10000-1000000)
curl -X POST https://api.lithovas.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "infinitalk/from-audio",
"input": {
"image_url": "https://example.com/input.jpg",
"audio_url": "https://example.com/reference.mp3",
"prompt": "A cinematic red panda surfing through neon rain at dusk.",
"resolution": "480p",
"seed": 42
}
}'