Concurrent Submit | zhenzhen-heygen-avatar5-fal
HeyGen Avatar 5 digital twins, with a 498-item avatar catalog
- task
HeyGen Avatar 5 is the "digital twin" tier: a library of ready-made presenters you drop into a video and make talk. This node wraps zhenzhen-heygen-avatar5-fal on FAL, and the defining number is the avatar dropdown - 498 preset avatars, loaded live from HeyGen's OpenAPI schema at runtime. It's the pick-a-spokesperson workflow: pick a presenter, give them a script, out comes a video.
Like every node in this pack's concurrent family, it batches: ten avatar videos at once in the shared video pool, so you can audition several presenters on the same script in one run. That's honestly the best way to use this - the difference between a good corporate presenter and a great one is subjective, and the only way to find it is to render a few.
How the wrapper works
The plain Comfly_heygen_avatar5_fal node is a FAL-queue client through Zhenzhen's proxy. At runtime it tries to fetch the avatar and voice catalogs from HeyGen's live schema (with hardcoded fallbacks if the fetch fails - Abigail, Ann, Warm Pro Narrator and friends). The Submit wrapper keeps every input but returns a single task (COMFLY_VIDEO_FUTURE), deferring the call to the video pool (default 10, COMFLY_VIDEO_CONCURRENCY env var).
The task output flows into ComflyConcurrent_Video_Await, which waits for all connected tasks and returns video_1 … video_10 in submission order plus a status JSON. failure_mode (fail_fast / placeholder) decides whether one failure aborts the batch or blanks a slot.
Inputs that matter
prompt is required - the script the avatar reads. avatar is the 498-item dropdown; custom_avatar overrides it with an exact name if you have one. voice is the 103-item voice list (or custom_voice to type one), and audio_url lets you force exact audio instead. When audio_url is set, voice is ignored.
fit (contain / cover, default cover) controls how the avatar fills the frame. remove_background (false) keys out the studio backdrop. caption burns subtitles in. output_format is mp4 or webm. resolution goes up to 4k - a step past the Avatar 4 node's 1080p ceiling - and aspect_ratio covers the usual six.
Install and gotchas
Pack install as always: ComfyUI Manager → search Comfyui-zhenzhen, or git clone https://github.com/T8mars/Comfyui-zhenzhen into ComfyUI/custom_nodes, restart. No local models.
FAL billing is the hold-then-settle model (预扣制), and this node's resolution ladder is where that bites - 4k avatar renders are the expensive end of the pool, so audition at 720p and only render keepers at 4k. The live catalog is great when the network cooperates; behind a restrictive firewall you'll get the fallback list instead, and custom_avatar/custom_voice are your escape hatch. Timeouts after a long render usually mean the video is done and the poll gave up - check the task page before spending credits on a re-run.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| api_keyopt | STRING | — | |
| avataropt | COMBO | server_default | server_default leaves avatar unset and lets FAL use its default. Use custom_avatar for an exact custom name. |
| custom_avataropt | STRING | Overrides avatar dropdown when filled. | |
| voiceopt | COMBO | server_default | server_default leaves voice unset and lets FAL use its default. Ignored when audio_url is provided. |
| custom_voiceopt | STRING | Overrides voice dropdown when filled. | |
| audio_urlopt | STRING | — | |
| fitopt | COMBO | cover | 2 options: contain, cover |
| remove_backgroundopt | BOOLEAN | false | — |
| captionopt | BOOLEAN | false | — |
| output_formatopt | COMBO | mp4 | 2 options: mp4, webm |
| resolutionopt | COMBO | 720p | 3 options: 720p, 1080p, 4k |
| aspect_ratioopt | COMBO | 16:9 | 6 options: 16:9, 9:16, 4:5, 5:4, 1:1, auto |
| poll_intervalopt | INT | 61–60 | — |
| max_poll_attemptsopt | INT | 60010–3600 | Default 600*6s = 3600s timeout. |
| skip_erroropt | BOOLEAN | false | — |
| seedopt | INT | 00–18446744073709550000 | Execution seed for ComfyUI cache control. Fixed reuses the cached result; randomize/increment/decrement requests a new run. This compatibility seed is not sent to APIs that do not expose a native seed parameter. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| task | COMFLY_VIDEO_FUTURE | — |