WanVideo Long I2V Multi/InfiniteTalk
The windowed engine for talking-head video
- vae
- start_image
- clip_embeds
- image_embeds
- output_path
This is the node that actually generates long talking-head video. Where the MultiTalk loader gets the model in place and the wav2vec node encodes the audio, this node runs the special windowed sampling method that MultiTalk and InfiniteTalk need - creating the clip in overlapping frame windows so it can run far past Wan's native 81-frame limit and keep the mouth synced the whole way. The node description is explicit that this windowed method is its own thing: not compatible with (and not needed alongside) the regular context-window nodes.
If you want a character to talk continuously for 20 seconds without visible transitions, this is the path. It's also the slow, memory-hungry end of the pack, because "long" plus "windowed" means a lot of sampling.
How it works
The node generates the video in windows of frame_window_size frames, each overlapping the previous by a chunk of motion_frame carry-over frames so motion continues smoothly across the seam. Each window is conditioned on the audio features (via the MultiTalk/InfiniteTalk model attached upstream) so lip-sync holds throughout. It encodes the start image against the VAE, produces the WANVIDIMAGE_EMBEDS for the sampler, and can optionally write frames to disk as it goes.
The inputs that matter
vae- theWANVAE, required.start_image(optional) - the face/character to animate.frame_window_size(default 81) - the per-window length. Keep it near Wan's native context; this is the chunk size, not the total.motion_frame(default 25) - how many frames carry over between windows to keep motion continuous. More overlap = smoother continuity, more compute.mode-auto,multitalk, orinfinitetalk.autopicks based on the model you loaded; set it explicitly if you want to force one.width/height- output size. Talking heads don't need to be huge; keep it modest to control render time.colormatch(optional) - reduces color drift across windows on long clips.
Outputs are the WANVIDIMAGE_EMBEDS for the sampler and an output_path string.
How to install it
Comes with the pack. Via ComfyUI Manager: search WanVideo Wrapper, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt
then restart. This node is the sampling front end of the talking-head cluster - you also need the MultiTalk/InfiniteTalk model, the wav2vec encoder, the VAE, and a base Wan model.
Common issues & troubleshooting
You tried to add context options too, and something broke or it's redundant. Don't combine this with WanVideoContextOptions. This node has its own windowing method; the two aren't meant to stack. Pick one long-video path.
It's really slow. This is the expected cost of long, windowed, audio-synced generation. Early testers saw 30+ minutes for a default-length clip even with a speed LoRA, because each window runs its own steps and there are many windows. Keep resolution and total length reasonable, use a low-noise speed LoRA, and add block swap/fp8 to fit.
Seams or motion jumps between windows. Raise motion_frame so more frames carry over between windows, and turn on colormatch to stop color from drifting. Some boundary imperfection is inherent to windowed long-form.
Lip-sync drifts over a long clip. Make sure the audio features actually span the whole clip and that the window/overlap settings aren't dropping audio alignment at the seams. Clean 16kHz audio and the right-language wav2vec model give the model the best chance of staying locked.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | WANVAE | — | |
| width | INT | 83264–2048 | Width of the generation |
| height | INT | 48064–29048 | Height of the generation |
| frame_window_size | INT | 811–10000 | The number of frames to process at once, should be a value the model is generally good at. |
| motion_frame | INT | 251–10000 | Driven frame length used in the long video generation. Basically the overlap length. |
| force_offload | BOOLEAN | false | Whether to force offload the model within the loop for VAE operations, enable if you encounter memory issues. |
| colormatch | COMBO | disabled | Color matching method to use between the windows |
| start_imageopt | IMAGE | Images to encode | |
| tiled_vaeopt | BOOLEAN | false | Use tiled VAE encoding for reduced memory use |
| clip_embedsopt | WANVIDIMAGE_CLIPEMBEDS | Clip vision encoded image | |
| modeopt | COMBO | auto | The sampling strategy to use in the long video generation loop, should match the model used |
| output_pathopt | STRING | If set, will save each window's resulting frames to this folder, also DISABLES returning the final video tensor to save memory |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image_embeds | WANVIDIMAGE_EMBEDS | — |
| output_path | STRING | — |