Nodes/KIE.ai Nodes Next/Infinitalk - From Audio
ComfyUI Node

Infinitalk - From Audio

A talking head without the 60-node Wan chain

By felipederosilva·Created 2 months ago·Updated 2 days ago· 3
Infinitalk - From Audio
  • image_url
  • audio_url
  • video
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptA young woman with long dark hair talking on a podcast.►
◄resolution480p►
◄seed0.00►
◄timeout_seconds1200►
◄callback_url►

If you've built a lip-sync pipeline locally, you know the shape of it: Infinitalk on Wan 2.1 I2V, a segment chain per five seconds of audio, motion-frame overlap between chunks, and a canvas with sixty nodes on it before you've done anything. Someone got so tired of wiring identical segment chains by hand that they shipped a single auto-scaling node to do it for them - that's how much of a chore this workflow is.

This node is the other answer: one image, one audio file, one prompt, and KIE runs the whole thing server-side. Three required inputs, two optional ones.

Inputs

image_url (required) is the IMAGE socket - the face you want talking. KIE's docs note that if the image's aspect ratio doesn't match the target, it gets resized and center-cropped. So frame your subject with headroom, and don't be surprised when a square portrait comes back cropped.

audio_url (required) is an AUDIO socket. The pack converts ComfyUI audio to 16-bit PCM WAV and uploads it; KIE accepts mpeg, wav, x-wav, aac, mp4 and ogg audio for this endpoint, up to 10MB. Ten megabytes of WAV is not a lot of minutes - for a long podcast clip, encode to MP3 first and load that back in as audio if your workflow supports it.

prompt (required, up to 5000 characters) guides the generation. The node's own default - "A young woman with long dark hair talking on a podcast." - is doing two jobs: describing the subject and setting a delivery style. It doesn't drive the lip-sync itself, which comes from the audio.

resolution is 480p (default) or 720p, and that's the whole quality story. seed is a float; the tooltip says the valid range is 10000 to 1000000 while the widget's own min/max are −10000 to 10000, so the two disagree. Leave it at 0 unless you have a reason not to.

timeout_seconds defaults to 1200 - twenty minutes of polling, which is realistic for a talking-head render, longer than a still. callback_url stays empty for normal ComfyUI use.

Outputs

video is a native ComfyUI VIDEO: the lip-synced clip, ready to save, combine, or hand to another node. url and all_urls_json give you the result links, task_id is the KIE job id, raw_json is the raw provider response, and credits_consumed / credits_left are floats. Results are archived in ComfyUI/output/KIE-Results/videos/.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt

Restart ComfyUI; the node lands under KIE Next / Video / Infinitalk. Dependencies are requests, Pillow, numpy, PyYAML - you do not need Wan weights, lightx2v LoRAs, or the Infinitalk node packs that a local setup requires, which is the entire point of this node. Windows users can use the one-click installer in dist/.

Key once: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. Validated before saving, masked afterwards, never in your workflow JSON. Headless installs can set KIE_API_KEY, which takes priority over the saved key.

What trips people up

Audio length is the cost. There's no chunking here - the node sends your audio and waits. A three-minute clip is a three-minute render, billed accordingly. That's still one call instead of the manual segment chaining a local workflow needs, but budget for it.

Faces decide the result more than the prompt does. Local Infinitalk users complain about unnecessary head and body movement - the model keeps the subject alive even when the audio doesn't warrant it. A clean, front-facing, evenly lit portrait gives the model less to invent.

Wrong crop, wrong video. Aspect mismatch is handled by resize-and-center-crop on the vendor side, so a tightly cropped source can lose the top of a head.

Timeout errors are already billed. The job keeps running at KIE. Pull the task_id out of the error message and check it with the Task Status node - don't just queue it again.

Identical rerun doesn't resubmit. ComfyUI caches the node output when no input changed; you'll get the same video and no new charge. Change the seed or prompt to run again.

CategoryKIE Next/Video/Infinitalk

Inputs (7)

NameTypeDefaultDescription
image_urlIMAGE—
audio_urlAUDIO—
promptSTRINGA young woman with long dark hair talking on a podcast.The text prompt to guide video generation. (Max length: 5000 characters)
resolutionoptCOMBO480pResolution of the video to generate. Must be either 480p or 720p.
seedoptFLOAT0.00-10000–10000Random seed for reproducibility. Valid range is 10000 to 1000000.
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
videoVIDEO—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—