InfiniteTalk Video-to-Video (motion + lip-sync)
Audio-driven lip-sync applied on top of a driving motion clip. Loads a source video (e.g. a subject dancing/twirling from a t2v/i2v run), encodes its motion, and re-samples it to lip-sync a voice line while preserving the body motion (Wan 2.1 I2V backbone + InfiniteTalk/MultiTalk). Use this instead of infinitetalk_i2v when you want real body motion, not just a talking head.
Workflow id: infinitetalk_v2v · Video → Video
Calling it
POST /api/video/generate
{
"workflow": "infinitetalk_v2v",
"prompt": "...",
"video": "...",
"audio": "..."
}Params
Every input this workflow takes. Your install is the source of truth:GET /api/workflows/infinitetalk_v2v returns these as they are on your machine.
prompt· str · required
Drives expression. The body motion comes from the driving video, so keep this simple.video· str · required
Driving motion video filename (staged to ComfyUI input). Its motion is preserved; supplies the body movement.audio· str · required
Input audio filename (wav) staged to ComfyUI input. Drives lip-sync + clip length.negative_prompt· str · defaultbright tones, overexposed, static, blurred details, subtitles, style, works, paintings, images, static, overall gray, worst quality, low quality, JPEG compression residue, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, misshapen limbs, fused fingers, still picture, messy background, three legs, many people in the background, walking backwardswidth· int · default640
Resize target width (divisible by 16). Kijai's example: 640, center crop.height· int · default640
Resize target height (divisible by 16). Kijai's example: 640, center crop.length· int · default1000
Cap on output frames (num_frames into MultiTalkWav2VecEmbeds), not an exact length: the node clamps to the audio, so the voice line sets the real length. 1000 is Kijai's V2V example_02 value (its max_frames INTConstant).fps· int · default25
InfiniteTalk is trained at 25fps. Also re-times the driving video to this rate (force_rate). Do not change unless you know why.seed· int · optional
Optional. Leave it out and every run is a new random take. Send a seed only to remake an image exactly: the seed a job used is in its record.steps· int · default4
Sampler steps. 4 is Kijai's V2V example_02 value; the sampler starts at step 2 with denoise 1.0, as in his graph, which keeps the driving clip's motion.cfg· float · default1shift· float · default11scheduler· str · defaultdpm++_sdeblocks_to_swap· int · default20
Transformer blocks kept in system RAM instead of VRAM. 20 is Kijai's V2V example_02 value.model· str · defaultwan2.1-i2v-14b-480p-Q3_K_S.gguf
GGUF-quantized Wan2.1 I2V 14B backbone (~7.9GB). Fits 12GB card with block-swap. fp8 safetensors OOMs a 12GB card.multitalk_model· str · defaultWan2_1-InfiniteTalk_Single_Q4_K_M.gguf
GGUF-quantized InfiniteTalk module (~1.3GB). Must be GGUF to pair with the GGUF backbone.wav2vec_model· str · defaultwav2vec2-chinese-base_fp16.safetensorst5· str · defaultumt5-xxl-enc-fp8_e4m3fn.safetensorsvae· str · defaultWan2.1_VAE.safetensorsclip_vision· str · defaultCLIP-ViT-H-14-laion2B-s32B-b79K.safetensorsspeed_lora· str · defaultWanVideo\Lightx2v\lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensorsspeed_lora_strength· float · default1filename_prefix· str · defaultinfinitetalk_v2v