HeyGen
Mode: video · Models: 3
Official API docs: developers.heygen.com
HeyGen turns a written script into a lip-synced presenter video. Talking Photo animates a single portrait image you supply; Video Avatar instead uses one of HeyGen's own avatars, selected by videoId, so it needs no input image and renders up to 4K. Both read the script aloud with a HeyGen voice and animate the face to match. Generation is asynchronous, in landscape or vertical.
Models
| id | Name | Input type |
|---|---|---|
heygen-talking-photo | HeyGen Talking Photo | i2v |
heygen-video-avatar | HeyGen Video Avatar | t2v |
heygen-video-1 | HeyGen Video | t2v |
CLI
# animate a portrait into a talking avatar (script must be at least 20 chars)
gen-ai generate -m heygen-talking-photo \
-i ./portrait.jpg \
-p "Hi there! Welcome to Picsart, where you can create anything you imagine." \
--voice <voice-id> \
--ar 16:9 -r 720p
# vertical short
gen-ai generate -m heygen-talking-photo \
-i ./portrait.jpg \
-p "Three quick tips to level up your edits — let's dive in." \
--voice <voice-id> --ar 9:16 -r 1080pMCP
{ "name": "picsart_generate",
"arguments": {
"model": "heygen-talking-photo",
"prompt": "Hi there! Welcome to Picsart, where you can create anything you imagine.",
"imageUrls": ["https://example.com/portrait.jpg"],
"voiceId": "<voice-id>",
"aspectRatio": "16:9",
"resolution": "720p"
} }Parameters
Full parameter surface for every model, sourced from gen-ai models info <id> --json. CLI flags show the primary short form; the canonical --kebab-case long form always works too.
heygen-talking-photo — HeyGen Talking Photo
Try heygen-talking-photo in Playground ↗
Input type: i2v
| Param | CLI flag | Type | Values |
|---|---|---|---|
imageUrls | -i | file | required image (up to 1) |
resolution | -r | enum | 1080p · 720p (default 720p) |
aspectRatio | --ar | enum | 16:9 · 9:16 (default 16:9) |
voiceId | --voice | enum | required |
prompt | -p | text | required (≤5000 chars) |
Notes: Voice ids are dynamic — list them at runtime rather than hard-coding. Generation is asynchronous; the result URL is polled in the background.
heygen-video-avatar — HeyGen Video Avatar
Try heygen-video-avatar in Playground ↗
Input type: t2v
| Param | CLI flag | Type | Values |
|---|---|---|---|
videoId | --video-id | enum | (default ``) |
resolution | -r | enum | 4k · 1080p · 720p (default 720p) |
aspectRatio | --ar | enum | 16:9 · 9:16 (default 16:9) |
voiceId | --voice | enum | (default ``) |
prompt | -p | text | required (≤5000 chars) |
Notes:
videoIdselects a HeyGen avatar andvoiceIda HeyGen voice; both id sets are dynamic — list them at runtime rather than hard-coding. Generation is asynchronous; the result URL is polled in the background.
heygen-video-1 — HeyGen Video
Try heygen-video-1 in Playground ↗
Input type: t2v
| Param | CLI flag | Type | Values |
|---|---|---|---|
prompt | -p | text | required (≤32000 chars) |
startFrame | --start-frame | file | image |
imageUrls | -i | file | image (up to 9) |
videoUrls | --video-urls | file | video (up to 3) |
audioUrls | --audio-urls | file | audio (up to 3) |
resolution | -r | enum | 480p · 768p (default 768p) |
duration | -d | range | 5–15, step 1 (default 5) |
aspectRatio | --ar | enum | adaptive · 21:9 · 16:9 · 4:3 · 1:1 · 3:4 · 9:16 (default 16:9) |
promptEnhancement | --prompt-enhancement | enum | turbo · quality · disabled (default turbo) |
seed | --seed | range | 0–4294967295, step 1 |
Pricing
gen-ai pricing heygen-talking-photo --resolution 720pCost scales with resolution and the length of the generated video (driven by your script). Trial/free credits burn a HeyGen watermark into the output and may cap resolution — production videos require paid credits.