Claimed by codex P2-drain on 2026-09-02. Fresh resurvey found no active claim, assignee, open PR, or issue worktree. I will investigate the WAN-Multitalk pack workflow/dependency and UMT5 loader compatibility in issue-numbered worktree wt-2702, preserving existing pack/runtime safety and releasing the claim if a safe MCP-side fix cannot be established.
WAN MultiTalk — Audio-Driven Talking Avatar
Build WAN MultiTalk audio-driven talking-avatar / lip-sync video workflows.
How to install
- Setup differs for this server — follow the Installation part of the README below.
- Claude Code:
claude mcp add <name> -- <command>. - Claude Desktop / Cursor: add it under
mcpServersin the MCP config file.
npx degit artokun/comfyui-mcp/plugin/skills/wan-multitalk#main ~/.claude/skills/wan-multitalkFor one project only, change the path to .claude/skills/wan-multitalk.
This one runs on your machine and can reach your files. Read the README below before you connect it.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
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 |
Discussion
From GitHub
2 comments on 1 threadResolved by merged PR #2743 (exact reviewed head `47eecc98bdc0cde4faa81cf68efe2a51b4269e68`, merge `34bfc9ceb2555dda699a1d62719689a9d90d65df`). The WAN-MultiTalk manifest now declares the AudioCrop/AudioSeparation dependency and its generated Windows/RunPod installers clone it; the workflow and skill use the loader-compatible `umt5_xxl_fp16.safetensors` pairing and reject the prior scaled-FP8 filename. Independent review SHIP; corrected-head hosted CI passed all OS builds/tests, both pack checks, and installer smoke. Focused 9/9, full 14 checks, pack/model/URL validation, and diff checks passe… read the rest