Nodes/ComfyUI_RunpodNodes/RunPod InfiniteTalk (Audio→Video)
ComfyUI Node

RunPod InfiniteTalk (Audio→Video)

A talking avatar from one image and one audio file

By tcarwash·Created 8 months ago·Updated 8 months ago· 0
RunPod InfiniteTalk (Audio→Video)
  • input_image
  • video_url
api_key
prompta cartoon computer talking
image
audio
size480p
enable_safety_checkertrue

InfiniteTalk is the audio→video node in this pack, and it does the thing that's been the video generation dream since forever: give it an image of a character and an audio file, and it returns a video of that character talking (or singing) in sync with the audio. The pack's default prompt is tellingly simple - "a cartoon computer talking" - because the actual inputs are the star: an image to animate and an audio track to lip-sync against.

This is the hosted counterpart to the whole audio-driven avatar ecosystem the KB covers: TTS to make the voice, then a talking-head model to drive the mouth. The local versions of that pipeline are fiddly - separate lip-sync models, audio conditioning, VRAM. This node compresses it to: image in, audio in, video URL out. For a demo, a character sketch, or a quick proof of concept, that's a lot of pipeline you don't have to assemble.

How it works

Standard pack mechanics, but with an audio twist: async POST to the infinitetalk endpoint, poll until done, and the output is not an image but a video URL string. Your wired input_image becomes a data URL in the payload; the audio input takes a URL to an audio file (the node skips empty strings, so wire the image and paste the audio link). The result is a hosted video you can download or stream.

The inputs that matter

  • input_image - the character to animate, from a Load Image node. This is your talking head.
  • audio - a URL to the audio track. You'll need the file hosted somewhere reachable (or a URL from your own TTS run). This is the audio that drives the lip-sync.
  • prompt - a description of the character/scene, e.g. "a cartoon computer talking". Don't put the script here; the audio is the script.
  • size - dropdown, 480p (default) or 720p. 480p is fine for testing sync; 720p for anything you might show someone.
  • enable_safety_checker - on by default.

What comes out

A single video_url output (STRING) - a URL, not a tensor. Download it immediately if you want to keep it; RunPod's video URLs expire after 7 days. In ComfyUI you'll want a Load Video from URL node or just Save Text to grab the link.

Installing it

One of 27 nodes in tcarwash/ComfyUI_RunpodNodes. ComfyUI Manager: search ComfyUI_RunpodNodes, or

cd ComfyUI/custom_nodes
git clone https://github.com/tcarwash/ComfyUI_RunpodNodes

then restart. No extra Python deps - the pack runs on what ComfyUI already ships. You'll need a RunPod key from runpod.io.

Gotchas

  • Audio must be a URL - the node can't take an audio tensor. If your audio lives in your graph, you'll need to host it or use a node that produces a URL first. This is the fiddly bit of the whole node.
  • 7-day URL expiry - the README is blunt about it. Download your videos; don't leave them sitting in a workflow you open next month.
  • Video billing is heavier - per-video pricing runs higher than per-image, so this is not the node for idle experimentation.
  • Queue + polling - video jobs take a while; the console's [RunPod] Status: lines are your only feedback.

Talking-head work is a genuine niche - most people aren't building avatars daily. But when the job is "make this character say this audio," this node is one of the shortest paths in the pack from idea to video.

CategoryRunPod/Video

Inputs (7)

NameTypeDefaultDescription
api_keySTRING
promptSTRINGa cartoon computer talking
imageSTRING
audioSTRING
sizeCOMBO480p2 options: 480p, 720p
enable_safety_checkerBOOLEANtrue
input_imageoptIMAGE

Outputs (1)

NameTypeDescription
video_urlSTRING