AI Avatar
AI Avatar
Photo or video + audio → lip-synced talking video
AI Avatar drives one photo (or an input video) + one audio clip into a lip-synced talking video. Async task; poll for status after submitting.
Base URL:
https://api.aiclonevoicefree.com| Auth:Authorization: Bearer sk_...
POST /api/v2/avatar/digital-human
| Field | Type | Required | Notes |
|---|---|---|---|
image_url | string | ⬜* | Portrait photo URL (provide at least one of image_url / input_video_url) |
input_video_url | string | ⬜* | Input video URL (drive an existing video) |
audio_url | string | ✅ | Speech audio URL |
audio_duration_seconds | number | ✅ | Audio length (s), used for billing |
width | int | ⬜ | Output width, default 1280 |
height | int | ⬜ | Output height, default 720 |
Billing (video credits)
cost = ceil(audio_duration_seconds) × multiplier, where multiplier =5whenwidth ≥ 1000orheight ≥ 1000, else1(i.e. 1 credit/s SD, 5 credits/s HD).402at submit if insufficient; auto-refunded on failure.
Examples
- SD 854×480, 12s =
12 × 1= 12 credits - HD 1280×720, 12s =
12 × 5= 60 credits
Example
curl -X POST https://api.aiclonevoicefree.com/api/v2/avatar/digital-human \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://your-cdn.com/portrait.png",
"audio_url": "https://your-cdn.com/speech.mp3",
"audio_duration_seconds": 12,
"width": 1280,
"height": 720
}'Response 202
{
"task_id": "b1d2...-uuid",
"status": "pending",
"capability": "avatar",
"action": "digital-human",
"model": "digital-human"
}Getting the result
Poll GET /api/v2/avatar/tasks/{task_id}; videoUrl holds the finished clip when done:
{
"status": "completed",
"capability": "avatar",
"model": "digital-human",
"videoUrl": "https://.../result.mp4"
}See also AI Avatar Pro (HD direct output) and Dual Avatar.