AI Avatar
Photo (or video) + audio → lip-synced talking video — Basic / Pro / MiniMax modes
AI Avatar drives one photo (or an input video) + one audio clip into a lip-synced talking video. Two endpoints are available; both are async tasks — poll for status after submitting. Files not on the public web? Get a 6-hour URL via File Upload first.
Base URL:
https://api.aiclonevoicefree.com| Auth:Authorization: Bearer sk_...
Three modes — pick a card to jump straight to it
Avatar Basic
Standard avatar — fast, from 1 credit/s, flexible size & quality
Avatar Pro
Up to 1536px HD lip-sync, with motion prompt and duration/framerate control
MiniMax
MiniMax H3 engine — stable lip-sync, high success rate; audio up to 1 minute
Which one to use
Avatar Basic (digital-human) | Avatar Pro (generate) | MiniMax (generate, engine=minimax) | |
|---|---|---|---|
| Input | Photo or existing video | Portrait photo only | Portrait photo only |
| Motion prompt | ❌ | ✅ | ✅ |
| Output size | Aspect ratio 9:16 / 16:9 / follow image, with standard / HD quality | Three quality presets: 720 / 1280 / 1536 — higher is sharper | Same as Avatar Pro |
| Length | Follows the audio | Fixed duration, or follow audio (≤ 35s billed) | Follows the audio, up to 60s |
| Billing | 1 or 1.5 credits per second | 1.5 / 2 / 2.5 credits per second | Flat 25 credits per second |
| Best for | Cheapest; can drive an existing video | Sharper output + motion control | Stable lip-sync, high success rate |
Avatar Basic: 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 (the server measures its duration for billing — nothing to pass) |
aspect_ratio | string | ⬜ | Video aspect ratio: 9:16 (portrait, default) / 16:9 (landscape) / original (follow the input image) |
quality | string | ⬜ | Quality: standard (fast, default) / hd (HD 960P, a bit slower) |
Billing (video credits)
cost = ceil(measured seconds) × multiplier— the server reads the actual audio length fromaudio_urlat submit; multiplier =1for standard quality,1.5for HD (i.e. 1 credit/s standard, 1.5 credits/s HD). Audio over 300s is rejected (audio_too_long); if the duration can't be read, submit fails withaudio_probe_failed(make sure the URL is publicly accessible).402at submit if insufficient; auto-refunded on failure.
Examples
- Standard 9:16 portrait (360×704), 12s =
12 × 1= 12 credits - HD 16:9 landscape (960×544), 12s =
12 × 1.5= 18 credits
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",
"aspect_ratio": "9:16",
"quality": "hd"
}'Response 202
{
"task_id": "b1d2...-uuid",
"status": "pending",
"capability": "avatar",
"action": "digital-human",
"model": "digital-human"
}Avatar Pro: POST /api/v2/avatar/generate
Turns one portrait photo + one audio clip into a lip-synced talking video, with an optional motion prompt, up to 1536px and 35 seconds.
| Field | Type | Required | Notes |
|---|---|---|---|
image_url | string | ✅ | Portrait photo URL |
audio_url | string | ✅ | Speech audio URL |
duration | int | ⬜ | 5/10/15/20/25/30/35, or 0 = follow full audio (length measured server-side); default 10 |
resolution | int | ⬜ | Quality preset 720 / 1280 / 1536 (higher = sharper); default 1280 |
framerate | int | ⬜ | 24 / 25 / 30; default 25 |
motion_prompt | string | ⬜ | Motion/expression description, ≤ 2000 chars; a default "speaking naturally" prompt is used if empty |
engine | string | ⬜ | "minimax" (case-insensitive) selects the MiniMax H3 engine; anything else uses the default LTX engine |
Billing (video credits, per second)
| Quality preset | Per-second rate |
|---|---|
720 | 1.5 |
1280 | 2 |
1536 | 2.5 |
cost = ceil(per-second rate × billable seconds). Billable seconds =durationwhenduration > 0, otherwise the server-measured audio length (capped at 35s).402at submit if video credits are insufficient; auto-refunded on failure.
Examples
- 1280px, 10s =
2 × 10= 20 credits - 1536px, 20s =
2.5 × 20= 50 credits
curl -X POST https://api.aiclonevoicefree.com/api/v2/avatar/generate \
-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",
"duration": 10,
"resolution": 1280,
"framerate": 25,
"motion_prompt": "speaking to the camera naturally with subtle expressions and head movement"
}'Response 202
{
"task_id": "1939...",
"status": "pending",
"capability": "avatar",
"action": "generate",
"model": "avatar-pro"
}MiniMax (engine: "minimax")
Pass engine: "minimax" on the same endpoint to use the MiniMax H3 engine — stable lip-sync
with a high success rate. Differences from the default LTX engine:
- Audio limit: up to 60 seconds, measured server-side (
audio_too_longerror beyond that) duration: the5/10/.../35whitelist does not apply; default is0(follow full audio), any positive value is billed as-is- Billing: flat 25 credits/second regardless of
resolution—cost = ceil(25 × billable seconds), billable seconds capped at 60 resolutionstill affects the output size but not the price;framerateis ignored;motion_promptworks as usual- Response body and polling are identical to the default engine
curl -X POST https://api.aiclonevoicefree.com/api/v2/avatar/generate \
-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",
"resolution": 720,
"engine": "minimax",
"motion_prompt": "speaking to the camera naturally"
}'Getting the result
Both endpoints share one polling route: GET /api/v2/avatar/tasks/{task_id}.
videoUrl holds the finished clip when done:
{
"status": "completed",
"capability": "avatar",
"model": "avatar-pro",
"progress": 1.0,
"videoUrl": "https://.../result.mp4"
}Avatar Pro and MiniMax generation usually takes several minutes. See also Dual Avatar.