ComfyUI Node

OmniHuman-1.5

Same Party Trick, Now With a Mask and a Fast Lane

By Runware·Created 2 years ago·Updated about a month ago· 140
OmniHuman-1.5
  • image
  • mask
  • video
audio
seed1
numberResults1
providerSettings.bytedance.fastModefalse
safetyfalse
safety.checkContentfalse
safety.modefast
ttlfalse
ttl_value60
outputFormatMP4
outputQuality95

OmniHuman-1.5 is the follow-up to ByteDance's audio-driven human animation model, and it's the one I'd reach for of the two. Same core trick - one image of a person plus an audio clip becomes a talking, moving video - but 1.5 adds two genuinely useful things: a mask input that tells the model what is allowed to move, and a fast mode that trades a little quality for much quicker iteration. Still fully closed-source and cloud-hosted, so it's a pay-per-run node, but for iterating on a talking-head shot it earns its keep.

How it works

Like v1, the audio clip is the puppeteer: it conditions lip sync, expression, and motion on the audio signal. The request goes up to Runware's cloud, ByteDance's model renders, and a native VIDEO comes back. The new mask input is the interesting addition - feed it a mask and the model restricts animation to that region, which is exactly what you want when you have a still background and only the person should move, or when you want to keep part of the frame frozen.

The inputs that matter

  • image (IMAGE, required) - the person. A clear front-facing shot still does the heavy lifting; this is your identity anchor.
  • audio (STRING, required) - the driving audio as a UUID or URL. Clean clip, one voice.
  • mask (IMAGE, optional) - the v1.5 upgrade. Restrict animation to the masked region. Great for keeping backgrounds rock-steady. Leave it empty to animate everything.
  • seed - the v1.5 upgrade number two. v1 didn't expose it; 1.5 does, so you can lock a take and reproduce it.
  • providerSettings.bytedance.fastMode (BOOLEAN) - the accelerated pipeline. Use it for exploration, switch it off for the final render.
  • numberResults (1–4) - seed-based variations, the cheap hedge on which take nails the expression.
  • outputFormat / outputQuality - delivery format (MP4/WEBM/MOV) and compression. Same as the rest of the video catalog.
  • safety - the usual toggle gating safety.checkContent and safety.mode (none/fast/full). With human animation, leaving a content check on for shared workflows is cheap insurance; the node reports the result in its title bar.

Wiring it up

Output is video (native VIDEO). Source the image from anywhere in your graph - a generation node, a loaded photo - and the audio from a URL or uploaded UUID. If you're using the mask, it's an IMAGE too, so you can build it locally (a loaded mask, a black-white composite) and let the model do the rest.

Install and setup

The pack installs once and every node comes along: ComfyUI Manager → "Runware" → install → restart, or clone and pip install -r ComfyUI-Runware/requirements.txt. Dependencies are just runware-sdk, pillow, and soundfile. API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login, plus funded credits - the community's standard gripe is the ~$20 minimum top-up with a card on file, and video runs burn credits faster than images, so watch the per-run cost on the title bar.

Troubleshooting

  • Video appears as a path, not a VIDEO socket - older ComfyUI lacks VideoFromFile, and the pack falls back to saving to the output folder. The file's there; grab it.
  • Fast mode output is rougher than expected - that's the trade, not a bug. Iterate in fast mode, flip it off for the final.
  • Everything animates when you wanted a locked background - you skipped the mask. Feed one.
  • Reproducibility - if a run gave you exactly the take you want, note the seed and reuse it; that's what it's for.

1.5 is the version I'd install for - the mask and the seed make it controllable where v1 felt like a lottery ticket. Still a cloud model, still per-run, but it's the most polished "photo speaks" node in the catalog.

CategoryRunware/Video/bytedance

Inputs (13)

NameTypeDefaultDescription
imageIMAGE
audioSTRINGThe audio file used to drive the animation (UUID or URL).
maskoptIMAGE
seedoptINT11–9223372036854776000Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
numberResultsoptINT11–4Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
providerSettings.bytedance.fastModeoptBOOLEANfalseEnable accelerated generation by optimizing the processing pipeline.
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