ComfyUI Node

HeyGen Avatar V

A presenter, on demand, straight from a dropdown

By Runware·Created 2 years ago·Updated about a month ago· 140
HeyGen Avatar V
  • background
  • speech
  • video
avatar
audio
size1080p (16:9)
numberResults1
settings.backgroundColor
settings.captionfalse
settings.fit(default)
settings.removeBackgroundfalse
safetyfalse
safety.checkContentfalse
safety.modefast
ttlfalse
ttl_value60
outputFormatMP4
outputQuality95

HeyGen is the avatar-talking-head company - the one that makes a photoreal presenter say any script in any language with matching lip sync. Avatar V is their current generation of that, and this node drops the whole thing into ComfyUI: pick an avatar from a dropdown, give it something to say, and get a VIDEO of that presenter talking. It's the one node in this pack that turns your graph into a content-marketing studio.

If you've ever needed "a professional-looking person to read my script on camera" and lacked the budget, the talent, or the lighting rig, this is the node. It's the corporate-video and training-content play, and it's why HeyGen's commercial business exists. It runs entirely on Runware's cloud - there are no local weights, no "trained avatar" files on your disk, and no way to run it offline.

Inputs that matter

The avatar dropdown is required, and it's a genuinely wild list: 500 photo and video avatars named like Abigail_sitting_sofa_front, Amelia_standing_business_training_side, and so on - poses and settings baked into the choice. Pick a name and you've picked the presenter, the camera setup, and the vibe.

Then the inputs that turn a static avatar into a talking one:

  • speech - a RUNWARE_SPEECH value from the Runware Speech builder (under Runware/Params). That builder takes text (the script; it supports speaker tags like [Sam] Hello [Bob] Hi there and markup like [laughs]) and a voice identifier, plus volume/speed/pitch/language. This is how you say what the avatar says and how.
  • audio - the alternative: a UUID/URL of a pre-made audio track. Use this when the voice is already recorded and you just need the avatar to match it.
  • background - an IMAGE to place the avatar in front of, or use settings.backgroundColor (hex, e.g. #ff0000) for a solid backdrop.
  • settings.removeBackground - cut the avatar's background out (requires video avatars trained with matting). Pair with a background image for the "insert presenter into my footage" workflow.
  • settings.fit - cover (fill the canvas, may crop) vs contain (fit entirely, may show background). Default lets the server pick.
  • settings.caption - burn captions into the video and return a sidecar SRT. The accessibility no-brainer for social clips.
  • size - resolution/aspect dropdown up to 4K ("from input" variants included).

numberResults (up to 4), outputFormat (MP4/WEBM/MOV), outputQuality, and safety round it out.

How it works

The node sends heygen:avatar@5 as a videoInference task through the Runware SDK; the speech, voice, and avatar ID travel in the request. The finished presenter clip comes back as a native VIDEO socket for SaveVideo. Cost and content-check status print on the title bar - and with a 500-item avatar catalog, "which avatar" is the expensive choice, so preview before you commit to a full-length render.

Install and gotchas

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Restart; API key via Settings → "Runware API key", RUNWARE_API_KEY, or runware auth login. Paid per render, minimum top-up.

The traps: forgetting that the script lives in the Runware Speech builder, not on this node - you must wire speech in, or nothing gets said. And the avatar list is fixed; you can't upload your own face with this node (that's HeyGen's custom-avatar product, a different integration). Also, avatar talking-head video is not cheap, so keep caption and audio decisions settled before you queue long scripts. If "AI presenter reads my script" is a workflow you run often, this is the node - just treat the avatar catalog like a casting call, because that's literally what it is.

CategoryRunware/Video/heygen

Inputs (17)

NameTypeDefaultDescription
avatarCOMBOHeyGen avatar ID for a photo or video avatar.
backgroundoptIMAGE
speechoptRUNWARE_SPEECH
audiooptSTRINGAudio input (UUID or URL).
sizeoptCOMBO1080p (16:9)Output size. Only one of resolution or dimensions is sent.
numberResultsoptINT11–4Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
settings.backgroundColoroptSTRINGHex color code for solid background (e.g. #ff0000).
settings.captionoptBOOLEANfalseEnable captions. When true, returns a sidecar SRT file and burns captions into the rendered video.
settings.fitoptCOMBO(default)How the avatar is scaled to the output canvas. 'cover' scales to fill (may crop edges), 'contain' scales to fit entirely (may show background). When omitted, the server picks the best option based on source and canvas orientations.
settings.removeBackgroundoptBOOLEANfalseRemove the avatar background. Video avatars must be trained with matting enabled.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
safety.modeoptCOMBOfastSafety checking mode for video generation.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOMP4File format for the generated video.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
videoVIDEO