artokun/wan-multitalk
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)
npx skills add https://github.com/artokun/comfyui-mcp --skill wan-multitalk
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/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.
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):
run (no manifest entry needed).
embeddings that steer the mouth/expression.
on top of the WAN I2V model.
lip-sync). AudioCrop — trim to the segment you want to animate.
mux to mp4.
| File | Loader | Folder |
|------|--------|--------|
| Wan2.1_14b_Image_to_Video_480p_GGUF_Q8.gguf | WanVideoModelLoader | diffusion_models/ |
| WanVideo_2_1_Multitalk_14B_fp32.safetensors | MultiTalkModelLoader | diffusion_models/ |
| umt5_xxl_fp8_e4m3fn_scaled.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_fixed.safetensors | WanVideoLoraSelect | loras/ |
Sources: kijai Kijai/WanVideo_comfy, MeiGen-AI MeiGen-AI/MeiGen-MultiTalk, GGUF
city96/Wan2.1-I2V-14B-480P-gguf. See packs/wan-multitalk/manifest.yaml (some URLs
are best-effort — verify per mirror). Wav2Vec auto-downloads.
best. Resized by ImageResizeKJv2 to the target (480p).
AudioCrop selects the segment (drives clip length).
rarely helps and costs time.
to CPU on lower-VRAM cards.
| 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.
music-heavy track makes the mouth chase the wrong signal.
multi-embed variant (not in this pack).
WanVideoImageToVideoMultiTalk (not bypassed), and that the audio isn't silent
after AudioCrop.
Take artokun/wan-multitalk from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.