Turns a single portrait into a talking avatar video, driven by an uploaded audio track or by text spoken with a built-in voice.
Turns a single portrait into a talking avatar video, driven by an uploaded audio track or by text spoken with a built-in voice.
pixverse-avatar/v1/videos/generationspixverse/avatarLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
Pixverse Avatar runs through POST /v1/videos/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/videos/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-avatar",
"prompt": "Describe what you want Pixverse Avatar to generate."
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/videos/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "pixverse-avatar",
"prompt": "Describe what you want Pixverse Avatar to generate.",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the Pixverse Avatar API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| lip_sync_tts_content | string | - | - | The line for the avatar to speak. Used when no audio file is attached. Billed in 15-character blocks. |
| lip_sync_tts_speaker_id | enum | Auto | Auto, Emily, James, Isabella, Liam, Chloe, Adrian, Harper, Av... | Voice used for the spoken line. Auto picks one to suit the portrait. Ignored when an audio file is attached. |
| resolution | enum | 720p | 360p, 540p, 720p, 1080p | Output resolution. Higher resolutions bill at a higher per-second rate. |
| prompt | string | - | - | Optional direction for delivery or framing. |
| image | string | - | - | Portrait image URL. Required. |
| audio | string | - | - | Audio URL for the avatar to perform. Takes precedence over the spoken text. |
Turns a single portrait image into a talking avatar video, driven either by an audio file you supply or by text spoken with a built-in voice.
On EmpirioLabs, Pixverse Avatar is billed pay as you go: 360p $0.10 per second; 540p $0.20 per second; 720p $0.30 per second. The live rate card on this page always matches what the API charges.
Pixverse Avatar is served through POST /v1/videos/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs Pixverse Avatar in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.