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

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)
npx skills add artokun/comfyui-mcp --skill wan-multitalk -g -a claude-codemkdir -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-multitalkNew-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" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md5.2 KB
Read the files here
artokun/
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
--*vrammode; MultiTalk benefits from--reserve-vramheadroom 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 | |
| 2 | name wan-multitalk |
| 3 | 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) |
| 4 | globs |
| 5 | - "**/*.json" |
| 6 | |
| 7 | |
| 8 | # WAN MultiTalk — Audio-Driven Talking Avatar |
| 9 | |
| 10 | ## Overview |
| 11 | |
| 12 | MultiTalk (MeiGen-AI) drives a still portrait's lip-sync and head motion from an |
| 13 | audio track. It runs on WAN 2.1 14B Image-to-Video via kijai's |
| 14 | ComfyUI-WanVideoWrapper. Wav2Vec speech embeddings condition the WAN sampler so |
| 15 | the mouth and expression follow the speech, while the lightx2v step-distill LoRA |
| 16 | keeps it to a few sampling steps. |
| 17 | |
| 18 | Use it for talking heads, dubbing, and single-speaker avatar clips (~10s at 480p). |
| 19 | It is distinct from `wan-animate` (pose/motion-driven character animation). This |
| 20 | is audio → lip-sync, not reference-video motion transfer. |
| 21 | |
| 22 | Pack: `wan-multitalk` (480p, ~10s). Higher-res/longer variants exist in the source |
| 23 | bundle (720p, long-context) as VRAM/duration knobs on the same graph. |
| 24 | |
| 25 | ## Pipeline (node graph) |
| 26 | |
| 27 | |
| 28 | LoadImage (portrait) ─┐ |
| 29 | LoadAudio ─ AudioSeparation ─ AudioCrop ─ DownloadAndLoadWav2VecModel ─ MultiTalkWav2VecEmbeds ─┐ |
| 30 | ▼ |
| 31 | WanVideoModelLoader (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 | |
| 38 | Key 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 | |
| 61 | Sources: 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). |
| 64 | Wav2Vec auto-downloads. The bundled WanVideoWrapper loader rejects the scaled_fp8 |
| 65 | UMT5 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 | |
| 86 | Pair with the VRAM launch-flags guidance (see `troubleshooting`): `--use-sage-attention` |
| 87 | appropriate `--*vram` mode; MultiTalk benefits from `--reserve-vram` headroom for |
| 88 | the 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 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 759
- Checked
- Source
- artokun/comfyui-mcp ↗
- Creator
- artokun · 44 listings
Similar skills
See all →
PromptFull-body 3/4 view portrait capturing a moment of profoundAbandoned wife
PromptThis prompt generates a detailed description for a full-bodyAirport Corridor Walk (full-body)
PromptThis prompt generates a photorealistic iPhone selfie-styleAlp Dağlarındasın
PromptGenerates a photorealisticAlternative grunge alley portrait
PromptAmateur girls’ night selfie, very casual and imperfectAmateur Girls' Night Selfie - Casual and Imperfect
PromptAn ultra-realistic 8K cinematic studio portrait framedAvant garde portrait with ghost duplicate in ochre studioMore from artokun
SkillTrain custom LoRAs with ostris AI-ToolkitAI-Toolkit LoRA Trainer (WAN 2.2 & Z-Image)
SkillAnime/illustration text-to-imageANIMA 1.0 (Anima Base Ultra) Text-to-Image Workflows
SkillAuthoring & Publishing ComfyUI Custom Nodes
SkillTrain a custom anime LoRA on the ANIMA base modelCitron Anima LoRA Trainer
SkillDiscover Civitai models with the BUILT-IN downloadmodelCivitai + comfyui-mcp
SkillDiagnose and fix video/image color OBJECTIVELYColor Correction (measure, don't eyeball)