Skip to content

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 · default 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 backwards
  • width · int · default 640
    Resize target width (divisible by 16). Kijai's example: 640, center crop.
  • height · int · default 640
    Resize target height (divisible by 16). Kijai's example: 640, center crop.
  • length · int · default 1000
    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 · default 25
    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 · default 4
    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 · default 1
  • shift · float · default 11
  • scheduler · str · default dpm++_sde
  • blocks_to_swap · int · default 20
    Transformer blocks kept in system RAM instead of VRAM. 20 is Kijai's V2V example_02 value.
  • model · str · default wan2.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 · default Wan2_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 · default wav2vec2-chinese-base_fp16.safetensors
  • t5 · str · default umt5-xxl-enc-fp8_e4m3fn.safetensors
  • vae · str · default Wan2.1_VAE.safetensors
  • clip_vision · str · default CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors
  • speed_lora · str · default WanVideo\Lightx2v\lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors
  • speed_lora_strength · float · default 1
  • filename_prefix · str · default infinitetalk_v2v