ComfyUI Node

HeyGen Avatar IV

HeyGen Avatar IV turns a still photo into a talking presenter

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

This is the "AI presenter" node. Give HeyGen Avatar IV an image of a person and some speech, and it comes back with a video of that face talking, lipsynced to the audio - the thing you've seen a thousand times in corporate onboarding videos and, lately, in plenty of very convincing deepfakes. It's the rare ComfyUI node that isn't about generating media at all; it's about animating someone. That makes it useful and also worth a beat of caution about what you're animating and who owns the face.

It runs through the Runware/ComfyUI-Runware pack, which means no local GPU and no HeyGen account to set up separately - one Runware API key covers this node and every other model in the catalog. The heavy lifting happens on HeyGen's servers; your graph just passes parameters.

How it works

The node takes either a script to be spoken (via the Runware Speech builder, which carries text plus a voice pick) or an audio file (UUID or URL) to lipsync against, then drives HeyGen's avatar API with an avatar ID. That dropdown is the star: 514 preset avatars, all the named photoreal stock presenters plus your own photo/video avatars if you've trained them on HeyGen's side. Output comes back as a native VIDEO (or a saved file path when ComfyUI's runtime lacks the native type), and the title bar shows the run cost like every other node here.

The inputs that matter

  • speech - wire in a Runware Speech builder node with the text and a voice. This is how you get dialogue without preparing an audio file yourself.
  • audio - the alternative path: an existing audio clip as a UUID or URL. Pick one, not both, depending on whether you're scripting or reusing a track.
  • avatar - the presenter. Browse the 500+ presets or use (default). If you want a specific person from an image, that's what the image input is for (HeyGen photo avatars).
  • image - your own still to animate, if you're not using a stock avatar.
  • background (IMAGE) or settings.backgroundColor (hex) - where they stand. The background socket takes an actual image; the hex field is for a solid color. settings.removeBackground exists too, with the honest caveat baked into the tooltip: video avatars must have been trained with matting enabled for it to work.
  • settings.expressiveness - low/medium/high. Low keeps things stiff and professional; high gets animated eyebrows.

size (720p/1080p), numberResults (max 4), outputFormat, and the standard safety/TTL/output-quality fields round it out.

Installing

Install the pack once and every node in it shows up together:

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

Restart, or use ComfyUI Manager and search Runware. Needs a Runware API key - Settings panel, RUNWARE_API_KEY, or runware auth login.

Where people get burned

The speech socket is a custom type, not a text box - beginners drag it in expecting a prompt field and get a dangling input. Add the Runware Speech builder from Runware/Params. Also, don't expect a deepfake-level tool from the stock avatars; the preset presenters look like stock presenters, which is the point. If you want your own face moving, that means training a photo avatar on HeyGen's platform first - the node is the runtime, not the trainer. And be smart about consent; this is a node that makes it very easy to put words in someone's mouth, and that cuts both ways.

CategoryRunware/Video/heygen

Inputs (18)

NameTypeDefaultDescription
imageoptIMAGE
backgroundoptIMAGE
speechoptRUNWARE_SPEECH
audiooptSTRINGAudio input (UUID or URL).
positivePromptoptSTRINGText prompt describing elements to include in the generated output.
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.
avataroptCOMBO(default)HeyGen avatar ID for a photo or video avatar.
settings.backgroundColoroptSTRINGHex color code for solid background (e.g. #ff0000).
settings.expressivenessoptCOMBOlowControls the level of avatar expressiveness.
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