Nodes/ComfyUI-InfiniteTalk-MultiImage/InfiniteTalkMultiImage
ComfyUI Node

InfiniteTalkMultiImage

One audio track, up to 20 images, and a node that does the timing math for you

By xuhongming251·Created 10 months ago·Updated 14 days ago· 77
InfiniteTalkMultiImage
  • auto_start_time_list
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • image11
  • image12
  • image13
  • image14
  • image15
  • image16
  • image17
  • image18
  • image19
  • image20
  • image_list
  • frame_count_list
  • real_start_time_list
  • prompt_list
audio_duration8.00
prompt_list_input
start_time10.00
start_time23.00
start_time36.00
start_time49.00
start_time512.00
start_time615.00
start_time718.00
start_time821.00
start_time924.00
start_time1027.00
start_time1130.00
start_time1233.00
start_time1336.00
start_time1439.00
start_time1542.00
start_time1645.00
start_time1748.00
start_time1851.00
start_time1954.00
start_time2057.00

InfiniteTalk - the Wan-based talking-head model from MeiGen-AI - is brilliant at one thing: you give it a reference image and an audio track, and it produces a video of that person talking, lips and head movement synced to the audio, for as long as you can stand to wait. The community's take on it is basically "works right almost every time." Its weakness is that it's a one-image model. One person, one look, one clip. Want the narrator to change outfits mid-sentence, cut between two speakers on one track, or have the same character shift between scenes? You were stuck generating separate clips and stitching them by hand.

InfiniteTalkMultiImage is the node that makes that multi-image workflow a single run. It's the core of the ComfyUI-InfiniteTalk-MultiImage pack, and the honest description is that it's a scheduler, not a generator. It doesn't touch the diffusion model at all. What it does is take your raw material - an audio duration, up to 20 images, and one prompt per image - and work out exactly how long each image should be on screen, so the generation loop below it can chew through the video segment by segment.

Here's the mechanism. You feed it the total length of your audio (audio_duration), a start_time for each image (defaults march along at 0, 3, 6, 9...), and your prompts in prompt_list_input, one per line, matching each image. The node does the bookkeeping in Decimal precision and snaps every time to a multiple of 0.04 seconds - which is exactly one frame at 25 fps, so the math never drifts. Any image whose start time is past the end of the audio gets silently dropped. Then it computes, for each surviving image, the frame count of its segment: the gap to the next image's start time, or to the end of the audio for the last one, times 25. Prompts are aligned to the final image count - pad with blank lines if you're short, extras get truncated. If you'd rather not set twenty time widgets by hand, an optional auto_start_time_list overrides the manual times entirely.

The four outputs are all lists: image_list, frame_count_list, real_start_time_list, and prompt_list. In the pack's included workflow these feed a for-loop that hands one segment at a time to Kijai's WanVideoWrapper MultiTalk nodes - that's the "fully compatible with KJ nodes, no modification" claim in the README, and it's why this works at constant VRAM. Each segment generates its frames to disk, the loop advances, and the pack's own VideoFromPathsAndAudio node glues everything together at the end. Memory usage stops scaling with video length; only the disk fills up.

The inputs you'll actually touch: audio_duration (in seconds, step 0.04), prompt_list_input (one line per image), the start_time1start_time20 widgets, and the optional image1image20 slots. Wire image_list and friends downstream into the loop.

Installing is the same for the whole pack: ComfyUI Manager → search ComfyUI-InfiniteTalk-MultiImage → Install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/xuhongming251/ComfyUI-InfiniteTalk-MultiImage

The node's requirements.txt is empty - it's pure Python. The workflow it ships, though, is a different story: it needs Kijai's ComfyUI-WanVideoWrapper (the MultiTalk/InfiniteTalk nodes), the InfiniteTalk fp8 weights (Wan2_1-InfiniteTalk-Single_fp8_e4m3fn_scaled_KJ.safetensors), a Wan 2.1 I2V model, the VAE, a Wav2Vec2 model, MelBand RoFormer, plus Easy-Use, Inspire Pack and VHS for the loop scaffolding. Load the bundled workflow JSON (the Chinese-named InfiniteTalk 图片数字人--多图.json) and let Manager chase the missing nodes.

Where people get burned: a start time past the audio end drops the image with no error, so check your times against audio_duration. And set your expectations on speed - InfiniteTalk is not quick. Community reports put a ~28-second 720p clip at around two hours on a 3090. If you're on 16 GB, use the 低显存16G版本 workflow variant, which adds Wan block swapping to survive long runs.

CategoryInfiniteTalk

Inputs (43)

NameTypeDefaultDescription
audio_durationFLOAT8.00
prompt_list_inputSTRING
start_time1FLOAT0.00
start_time2FLOAT3.00
start_time3FLOAT6.00
start_time4FLOAT9.00
start_time5FLOAT12.00
start_time6FLOAT15.00
start_time7FLOAT18.00
start_time8FLOAT21.00
start_time9FLOAT24.00
start_time10FLOAT27.00
start_time11FLOAT30.00
start_time12FLOAT33.00
start_time13FLOAT36.00
start_time14FLOAT39.00
start_time15FLOAT42.00
start_time16FLOAT45.00
start_time17FLOAT48.00
start_time18FLOAT51.00
start_time19FLOAT54.00
start_time20FLOAT57.00
auto_start_time_listoptSTART_TIME_LIST
image1optIMAGE
image2optIMAGE
image3optIMAGE
image4optIMAGE
image5optIMAGE
image6optIMAGE
image7optIMAGE
image8optIMAGE
image9optIMAGE
image10optIMAGE
image11optIMAGE
image12optIMAGE
image13optIMAGE
image14optIMAGE
image15optIMAGE
image16optIMAGE
image17optIMAGE
image18optIMAGE
image19optIMAGE
image20optIMAGE

Outputs (4)

NameTypeDescription
image_listIMAGE
frame_count_listINT
real_start_time_listFLOAT
prompt_listSTRING