InfiniteTalk Video-to-Video (motion + lip-sync)
Video → VideoAudio-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.
infinitetalk_v2v12 GB VRAM19.8 GB of weightsCalling it
FlixML has no generate button: you tell your agent what you want and it calls the API on your install. The id is what names this workflow.
POST /api/video/generate
{
"workflow": "infinitetalk_v2v",
"prompt": "...",
"video": "...",
"audio": "..."
}Parameters
promptstrrequiredDrives expression. The body motion comes from the driving video, so keep this simple.
videostrrequiredDriving motion video filename (staged to ComfyUI input). Its motion is preserved; supplies the body movement.
audiostrrequiredInput audio filename (wav) staged to ComfyUI input. Drives lip-sync + clip length.
negative_promptstrdefault bright 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 backwardsdenoise_strengthfloatdefault 0.4V2V motion-adherence knob — THE key dial. At 1.0 the driving video is noised to pure noise and InfiniteTalk regenerates a talking head from the first frame, DISCARDING the body motion (the subject won't bend/dance). Lower preserves the driving motion: the sampler starts the denoise partway and keeps the driving latents. Default 0.4 is the verified sweet spot for body-motion clips (ride/dance) — holds hip/body motion better than Kijai's 0.5 reference while lip-sync stays clean. Raise to 0.5-0.7 for stronger lip-sync when the driving motion is subtle; drop to 0.35 for even more motion at the cost of slightly softer sync.
widthintdefault 480Resize target width (divisible by 16). Default 480x832 = portrait, matching POV/vertical driving clips. For a landscape driving clip pass 832x480 explicitly. BETTER FUTURE FIX: auto-derive w/h from the driving clip's aspect so orientation never has to be set (see length auto-clamp for the pattern).
heightintdefault 832Resize target height (divisible by 16). See width.
lengthintdefault 201Generous CAP on output frames (num_frames into MultiTalkWav2VecEmbeds), NOT an exact length — matches Kijai's reference which sets a big cap. The node internally clamps to the audio: actual = min(num_frames, audio_duration*fps), so the AUDIO drives real length. 201 ~= 8s at 25fps, bounding RAM on 12GB nodes; audio shorter than that (the usual case) clamps below it. The windowed generation overshoots to the next 81-frame boundary, then VHS_VideoCombine trim_to_audio cuts the tail back to the audio track. Only lower this to force a hard shorter clip.
fpsintdefault 25InfiniteTalk is trained at 25fps. Also re-times the driving video to this rate (force_rate). Do not change unless you know why.
seedintdefault 2stepsintdefault 4Sampler steps. 4 matches Kijai's V2V reference (the lightx2v speed-distill LoRA is trained for ~4 steps). With denoise_strength 0.5 the sampler starts ~halfway (start_step 2 of 4), preserving driving motion.
cfgfloatdefault 1shiftfloatdefault 11schedulerstrdefault dpm++_sdeblocks_to_swapintdefault 12Block-swap count for low-VRAM. 12 is the proven sweet spot on a 12GB card with the Q3_K_S GGUF: ~10GB VRAM used, GPU at 95%, no OOM. Higher = less VRAM but GPU-starved/slow; lower risks OOM.
modelstrdefault wan2.1-i2v-14b-480p-Q3_K_S.ggufGGUF-quantized Wan2.1 I2V 14B backbone (~7.9GB). Fits 12GB card with block-swap. fp8 safetensors OOMs a 12GB card.
multitalk_modelstrdefault Wan2_1-InfiniteTalk_Single_Q4_K_M.ggufGGUF-quantized InfiniteTalk module (~1.3GB). Must be GGUF to pair with the GGUF backbone.
wav2vec_modelstrdefault wav2vec2-chinese-base_fp16.safetensorst5strdefault umt5-xxl-enc-fp8_e4m3fn.safetensorsvaestrdefault Wan2.1_VAE.safetensorsclip_visionstrdefault CLIP-ViT-H-14-laion2B-s32B-b79K.safetensorsspeed_lorastrdefault WanVideo\Lightx2v\lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensorsspeed_lora_strengthfloatdefault 1filename_prefixstrdefault infinitetalk_v2vYour install is the source of truth: GET /api/workflows returns these parameters as they are on your machine.