New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Build WAN MultiTalk audio-driven talking-avatar / lip-sync

by artokun · MIT license · ★ 759 on GitHub · updated Sep 21

WAN MultiTalk — Audio-Driven Talking Avatar cover

Build WAN MultiTalk audio-driven talking-avatar / lip-sync video workflows.

---
name: wan-multitalk
description: Build WAN MultiTalk audio-driven talking-avatar / lip-sync video workflows. MeiGen-AI MultiTalk on WAN 2.1 14B I2V via kijai WanVideoWrapper (portrait + audio → lip-synced video)
globs:
  - "**/*.json"
---

# WAN MultiTalk — Audio-Driven Talking Avatar

## Overview

MultiTalk (MeiGen-AI) drives a still portrait's lip-sync and head motion from an
audio track. It runs on WAN 2.1 14B Image-to-Video via kijai's
ComfyUI-WanVideoWrapper. Wav2Vec speech embeddings condition the WAN sampler so
the mouth and expression follow the speech, while the lightx2v step-distill LoRA
keeps it to a few sampling steps.

Use it for talking heads, dubbing, and single-speaker avatar clips (~10s at 480p).

Overview

MultiTalk (MeiGen-AI) drives a still portrait's lip-sync and head motion from an audio track. It runs on WAN 2.1 14B Image-to-Video via kijai's ComfyUI-WanVideoWrapper. Wav2Vec speech embeddings condition the WAN sampler so the mouth and expression follow the speech, while the lightx2v step-distill LoRA keeps it to a few sampling steps.

Manual install (npx, ZIP)
Claude Codenpx skills add artokun/comfyui-mcp --skill wan-multitalk -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/artokun/comfyui-mcp/tar.gz/1d5b12b1b499 \ | tar -xz -C ~/.claude/skills --strip-components=3 comfyui-mcp-1d5b12b1b499/plugin/skills/wan-multitalk
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/6eb32ebb1a418b8f51f9/wan-multitalk.zip" -OutFile "$env:TEMP\wan-multitalk.zip"; Expand-Archive "$env:TEMP\wan-multitalk.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.2 KB
Read the files here
artokun/1d5b12b1 file
SKILL.md
Show the full text105 lines

WAN MultiTalk — Audio-Driven Talking Avatar

Overview

MultiTalk (MeiGen-AI) drives a still portrait's lip-sync and head motion from an audio track. It runs on WAN 2.1 14B Image-to-Video via kijai's ComfyUI-WanVideoWrapper. Wav2Vec speech embeddings condition the WAN sampler so the mouth and expression follow the speech, while the lightx2v step-distill LoRA keeps it to a few sampling steps.

Use it for talking heads, dubbing, and single-speaker avatar clips (~10s at 480p). It is distinct from wan-animate (pose/motion-driven character animation). This is audio → lip-sync, not reference-video motion transfer.

Pack: wan-multitalk (480p, ~10s). Higher-res/longer variants exist in the source bundle (720p, long-context) as VRAM/duration knobs on the same graph.

Pipeline (node graph)

LoadImage (portrait) ─┐
LoadAudio ─ AudioSeparation ─ AudioCrop ─ DownloadAndLoadWav2VecModel ─ MultiTalkWav2VecEmbeds ─┐
                                                                                                 ▼
WanVideoModelLoader (WAN 2.1 14B I2V GGUF) ─ MultiTalkModelLoader ─ WanVideoLoraSelect (lightx2v)
   + LoadWanVideoT5TextEncoder (umt5) + WanVideoTextEncode + WanVideoClipVisionEncode (clip_vision_h)
   + WanVideoVAELoader ──────────────────────────────────────────────────────────────────────────┘
                                                     ▼
                       WanVideoImageToVideoMultiTalk ─ WanVideoSampler ─ WanVideoDecode ─ VHS_VideoCombine

Key nodes (all kijai WanVideoWrapper unless noted):

  • DownloadAndLoadWav2VecModel. Auto-downloads the Wav2Vec speech model on first run (no manifest entry needed).
  • MultiTalkWav2VecEmbeds. Turns the (separated, cropped) speech into the embeddings that steer the mouth and expression.
  • MultiTalkModelLoader + WanVideoImageToVideoMultiTalk. The MultiTalk head on top of the WAN I2V model.
  • AudioSeparation and AudioCrop (audio-separation-nodes-comfyui). Isolate the voice from music/noise before embedding and trim the segment you want to animate.
  • ImageResizeKJv2 (KJNodes), VHS_VideoCombine (VideoHelperSuite). Resize and mux to mp4.

Models

File Loader Folder
Wan2.1_14b_Image_to_Video_480p_GGUF_Q8.gguf WanVideoModelLoader diffusion_models/
WanVideo_2_1_Multitalk_14B_fp8_e4m3fn.safetensors MultiTalkModelLoader diffusion_models/
umt5_xxl_fp16.safetensors LoadWanVideoT5TextEncoder text_encoders/
Wan2_1_VAE_bf16.safetensors WanVideoVAELoader vae/
clip_vision_h.safetensors CLIPVisionLoader clip_vision/
Wan21_I2V_14B_lightx2v_cfg_step_distill_lora_rank64.safetensors WanVideoLoraSelect loras/

Sources: kijai Kijai/WanVideo_comfy, MeiGen-AI MeiGen-AI/MeiGen-MultiTalk, GGUF city96/Wan2.1-I2V-14B-480P-gguf, and Comfy-Org's repackaged UMT5. See packs/wan-multitalk/manifest.yaml (some URLs are best-effort; verify per mirror). Wav2Vec auto-downloads. The bundled WanVideoWrapper loader rejects the scaled_fp8 UMT5 checkpoint; use the UMT5 fp16 file above, not generic t5xxl_fp16 weights.

Inputs & key parameters

  • Portrait (LoadImage): front-facing, clear face, neutral-ish expression works best. Resized by ImageResizeKJv2 to the target (480p).
  • Audio (LoadAudio): the speech track. AudioSeparation isolates the voice; AudioCrop selects the segment (drives clip length).
  • Steps: low (the lightx2v distill LoRA is why; typically ~4 to 8). Raising steps rarely helps and costs time.
  • BlockSwap (WanVideoBlockSwap): trade VRAM for speed. Increase blocks swapped to CPU on lower-VRAM cards.

VRAM tiers (from the source bundle's variants)

Target Approx VRAM Lever
480p 10s ~8–12 GB base
480p low-VRAM ~6–8.4 GB more BlockSwap, GGUF quant, lower quality
720p 10s ~11–16 GB higher res

Pair with the VRAM launch-flags guidance (see troubleshooting): --use-sage-attention

  • appropriate --*vram mode; MultiTalk benefits from --reserve-vram headroom for the Wav2Vec + VAE round-trips.

Gotchas

  • Audio must be voice-isolated for good lip-sync. Skipping AudioSeparation on a music-heavy track makes the mouth chase the wrong signal.
  • One speaker. This graph is single-speaker; multi-speaker MultiTalk needs the multi-embed variant (not in this pack).
  • Wav2Vec first run downloads a model, so the first render is slower.
  • If lips look under-driven, check the MultiTalk embeds are actually wired into WanVideoImageToVideoMultiTalk (not bypassed), and that the audio isn't silent after AudioCrop.

Sources

  • Official: none found.
  • Empirical: sampler values, wiring, and prompt notes from working graphs in packs/ and observed renders; not a vendor prompting guide.
1---
2name: wan-multitalk
3description: Build WAN MultiTalk audio-driven talking-avatar / lip-sync video workflows. MeiGen-AI MultiTalk on WAN 2.1 14B I2V via kijai WanVideoWrapper (portrait + audio → lip-synced video)
4globs:
5 - "**/*.json"
6---
7 
8# WAN MultiTalk — Audio-Driven Talking Avatar
9 
10## Overview
11 
12MultiTalk (MeiGen-AI) drives a still portrait's lip-sync and head motion from an
13audio track. It runs on WAN 2.1 14B Image-to-Video via kijai's
14ComfyUI-WanVideoWrapper. Wav2Vec speech embeddings condition the WAN sampler so
15the mouth and expression follow the speech, while the lightx2v step-distill LoRA
16keeps it to a few sampling steps.
17 
18Use it for talking heads, dubbing, and single-speaker avatar clips (~10s at 480p).
19It is distinct from `wan-animate` (pose/motion-driven character animation). This
20is audio → lip-sync, not reference-video motion transfer.
21 
22Pack: `wan-multitalk` (480p, ~10s). Higher-res/longer variants exist in the source
23bundle (720p, long-context) as VRAM/duration knobs on the same graph.
24 
25## Pipeline (node graph)
26 
27```
28LoadImage (portrait) ─┐
29LoadAudio ─ AudioSeparation ─ AudioCrop ─ DownloadAndLoadWav2VecModel ─ MultiTalkWav2VecEmbeds ─┐
30 ▼
31WanVideoModelLoader (WAN 2.1 14B I2V GGUF) ─ MultiTalkModelLoader ─ WanVideoLoraSelect (lightx2v)
32 + LoadWanVideoT5TextEncoder (umt5) + WanVideoTextEncode + WanVideoClipVisionEncode (clip_vision_h)
33 + WanVideoVAELoader ──────────────────────────────────────────────────────────────────────────┘
34 ▼
35 WanVideoImageToVideoMultiTalk ─ WanVideoSampler ─ WanVideoDecode ─ VHS_VideoCombine
36```
37 
38Key nodes (all kijai WanVideoWrapper unless noted):
39- **DownloadAndLoadWav2VecModel.** Auto-downloads the Wav2Vec speech model on first
40 run (no manifest entry needed).
41- **MultiTalkWav2VecEmbeds.** Turns the (separated, cropped) speech into the
42 embeddings that steer the mouth and expression.
43- **MultiTalkModelLoader** + **WanVideoImageToVideoMultiTalk.** The MultiTalk head
44 on top of the WAN I2V model.
45- **AudioSeparation** and **AudioCrop** (audio-separation-nodes-comfyui). Isolate the
46 voice from music/noise before embedding and trim the segment you want to animate.
47- **ImageResizeKJv2** (KJNodes), **VHS_VideoCombine** (VideoHelperSuite). Resize and
48 mux to mp4.
49 
50## Models
51 
52| File | Loader | Folder |
53|------|--------|--------|
54| `Wan2.1_14b_Image_to_Video_480p_GGUF_Q8.gguf` | WanVideoModelLoader | `diffusion_models/` |
55| `WanVideo_2_1_Multitalk_14B_fp8_e4m3fn.safetensors` | MultiTalkModelLoader | `diffusion_models/` |
56| `umt5_xxl_fp16.safetensors` | LoadWanVideoT5TextEncoder | `text_encoders/` |
57| `Wan2_1_VAE_bf16.safetensors` | WanVideoVAELoader | `vae/` |
58| `clip_vision_h.safetensors` | CLIPVisionLoader | `clip_vision/` |
59| `Wan21_I2V_14B_lightx2v_cfg_step_distill_lora_rank64.safetensors` | WanVideoLoraSelect | `loras/` |
60 
61Sources: kijai `Kijai/WanVideo_comfy`, MeiGen-AI `MeiGen-AI/MeiGen-MultiTalk`, GGUF
62`city96/Wan2.1-I2V-14B-480P-gguf`, and Comfy-Org's repackaged UMT5. See
63`packs/wan-multitalk/manifest.yaml` (some URLs are best-effort; verify per mirror).
64Wav2Vec auto-downloads. The bundled WanVideoWrapper loader rejects the scaled_fp8
65UMT5 checkpoint; use the UMT5 fp16 file above, not generic `t5xxl_fp16` weights.
66 
67## Inputs & key parameters
68 
69- Portrait (LoadImage): front-facing, clear face, neutral-ish expression works
70 best. Resized by ImageResizeKJv2 to the target (480p).
71- Audio (LoadAudio): the speech track. AudioSeparation isolates the voice;
72 AudioCrop selects the segment (drives clip length).
73- Steps: low (the lightx2v distill LoRA is why; typically ~4 to 8). Raising steps
74 rarely helps and costs time.
75- BlockSwap (WanVideoBlockSwap): trade VRAM for speed. Increase blocks swapped
76 to CPU on lower-VRAM cards.
77 
78## VRAM tiers (from the source bundle's variants)
79 
80| Target | Approx VRAM | Lever |
81|--------|-------------|-------|
82| 480p 10s | ~8–12 GB | base |
83| 480p low-VRAM | ~6–8.4 GB | more BlockSwap, GGUF quant, lower quality |
84| 720p 10s | ~11–16 GB | higher res |
85 
86Pair with the VRAM launch-flags guidance (see `troubleshooting`): `--use-sage-attention`
87+ appropriate `--*vram` mode; MultiTalk benefits from `--reserve-vram` headroom for
88the Wav2Vec + VAE round-trips.
89 
90## Gotchas
91 
92- **Audio must be voice-isolated** for good lip-sync. Skipping AudioSeparation on a
93 music-heavy track makes the mouth chase the wrong signal.
94- **One speaker.** This graph is single-speaker; multi-speaker MultiTalk needs the
95 multi-embed variant (not in this pack).
96- **Wav2Vec first run** downloads a model, so the first render is slower.
97- If lips look under-driven, check the MultiTalk embeds are actually wired into
98 `WanVideoImageToVideoMultiTalk` (not bypassed), and that the audio isn't silent
99 after AudioCrop.
100 
101## Sources
102 
103- **Official:** none found.
104- **Empirical:** sampler values, wiring, and prompt notes from working graphs in `packs/` and observed renders; not a vendor prompting guide.
105 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 759
Checked
Source
artokun/comfyui-mcp ↗
Creator
artokun · 44 listings
View creator

Similar skills

See all →
PromptFull-body 3/4 view portrait capturing a moment of profoundAbandoned wifef/prompts.chat · by Mel Dras"subject": "Full-body 3/4 view portrait capturing a moment of profound emotional transition",New listingPromptThis prompt generates a detailed description for a full-bodyAirport Corridor Walk (full-body)f/prompts.chat · by DorukThis prompt generates a detailed description for a full-body candid airport corridor photograph of a Turkish-looking adult woman. It includes specifics about the subject's attire, pose, setting, and camera details, ensuring a photorealistic and stylish travel image without any recognizable logos or text.New listingPromptThis prompt generates a photorealistic iPhone selfie-styleAlp Dağlarındasınf/prompts.chat · by Halil NuroğluThis prompt generates a photorealistic iPhone selfie-style image set in the alpine mountains. It captures a bright, clear daylight scene with dramatic mountain peaks and a lush green meadow. The subject is a woman in casual hiking attire, lying in the grass and using a backpack as a pillow, with a classic handheld selfie perspective. Ideal for creating detailed, realistic outdoor scenes.New listingPromptGenerates a photorealisticAlternative grunge alley portraitf/prompts.chat · by Alejandro García GarayGenerates a photorealistic, vertical 8K black-and-white portrait of a young woman in a narrow urban alleyway. Wearing a plaid flannel, graphic tee, and chunky combat boots, she leans against a stone wall with one leg extended in extreme forced perspective. Shot from a low angle with a 24mm wide-angle lens, it captures a serious, melancholic expression with soft diffused daylight, subtle film grain, and an introspective alternative street editorial aesthetic.New listingPromptAmateur girls’ night selfie, very casual and imperfectAmateur Girls' Night Selfie - Casual and Imperfectf/prompts.chat · by DorukAmateur girls’ night selfie, very casual and imperfect, 1:1 aspect ratio.New listingPromptAn ultra-realistic 8K cinematic studio portrait framedAvant garde portrait with ghost duplicate in ochre studiof/prompts.chat · by Kemal Ersin YILMAZAn ultra-realistic 8K cinematic studio portrait framed from mid-thigh up, featuring a figure standing confidently against a vibrant ochre-red background.New listing

More from artokun

SkillTrain custom LoRAs with ostris AI-ToolkitAI-Toolkit LoRA Trainer (WAN 2.2 & Z-Image)artokun/comfyui-mcp · by artokunTrain custom LoRAs with ostris AI-Toolkit. Covers WAN 2.2/2.1 (people, styles, video motion) and Z-Image (Turbo & Base, low-VRAM image LoRAs). Use when the user wants to train a WAN or Z-Image LoRA; covers local + RunPod setup, dataset prep, key params, and using the result in a ComfyUI workflow.★ 759 GitHub starsSkillAnime/illustration text-to-imageANIMA 1.0 (Anima Base Ultra) Text-to-Image Workflowsartokun/comfyui-mcp · by artokunAnime/illustration text-to-image (ANIMA 1.0, ~2B Cosmos DiT). Use for anime, manga, illustrated characters; accepts Danbooru tags + natural language; runs/trains on <6GB VRAM; includes anime inpainting via Anima-LLLite ControlNet★ 759 GitHub starsSkillAuthoring & Publishing ComfyUI Custom Nodesartokun/comfyui-mcp · by artokunAuthoring & publishing ComfyUI custom nodes to the Comfy Registry, covering node structure, pyproject.toml spec, comfy-cli publishing, and CI★ 759 GitHub starsSkillTrain a custom anime LoRA on the ANIMA base modelCitron Anima LoRA Trainerartokun/comfyui-mcp · by artokunTrain a custom anime LoRA on the ANIMA base model with Citron's local Gradio trainer (kohya sd-scripts), <6GB VRAM, character/style LoRAs; covers setup, dataset prep, training params, and using the result in the anima-base workflow★ 759 GitHub starsSkillDiscover Civitai models with the BUILT-IN downloadmodelCivitai + comfyui-mcpartokun/comfyui-mcp · by artokunDiscover Civitai models with the BUILT-IN download_model action:"search_civitai" and install/generate them locally. Find a checkpoint/LoRA/embedding on Civitai, download it into ComfyUI, and use its trigger words. Optionally pair the official Civitai MCP for community features (images browsing, posting, collections).★ 759 GitHub starsSkillDiagnose and fix video/image color OBJECTIVELYColor Correction (measure, don't eyeball)artokun/comfyui-mcp · by artokunDiagnose and fix video/image color OBJECTIVELY with the get_image (action:"analyze_color") tool (scopes/stats such as black/white points, contrast, saturation, clipping, cast) instead of eyeballing a contact sheet. Covers the "washed out" signature, why reference color-match (mkl/ColorMatch/ColorMatchAdobe) CAN'T add contrast a flat source lacks, the levels/contrast-stretch fix (core AdjustContrast / CurveEditor), the measure→fix→re-measure loop, the side-by-side sandbox pattern, and where to place the fix in a render graph (after decode, before save). Use when a render looks washed out / flat / dull / over-saturated / color-cast, or when deciding between a color-match and a contrast/levels fix.★ 759 GitHub stars