comfyui-mcp 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +24 -0
  2. package/dist/index.js +39 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/orchestrator/codex-backend.js +32 -4
  5. package/dist/orchestrator/codex-backend.js.map +1 -1
  6. package/dist/orchestrator/index.js +315 -154
  7. package/dist/orchestrator/index.js.map +1 -1
  8. package/dist/orchestrator/panel-agent.js +49 -14
  9. package/dist/orchestrator/panel-agent.js.map +1 -1
  10. package/dist/services/env-capabilities.js +95 -1
  11. package/dist/services/env-capabilities.js.map +1 -1
  12. package/dist/services/image-management.js +100 -1
  13. package/dist/services/image-management.js.map +1 -1
  14. package/dist/services/manifest.js +71 -14
  15. package/dist/services/manifest.js.map +1 -1
  16. package/dist/services/model-resolver.js +143 -1
  17. package/dist/services/model-resolver.js.map +1 -1
  18. package/dist/services/node-management.js +46 -0
  19. package/dist/services/node-management.js.map +1 -1
  20. package/dist/tools/image-management.js +8 -4
  21. package/dist/tools/image-management.js.map +1 -1
  22. package/dist/tools/manifest.js +1 -1
  23. package/dist/tools/manifest.js.map +1 -1
  24. package/dist/tools/model-extras.js +27 -8
  25. package/dist/tools/model-extras.js.map +1 -1
  26. package/dist/tools/model-management.js +1 -1
  27. package/dist/tools/model-management.js.map +1 -1
  28. package/dist/tools/node-management.js +21 -0
  29. package/dist/tools/node-management.js.map +1 -1
  30. package/dist/transport/cli.js +39 -2
  31. package/dist/transport/cli.js.map +1 -1
  32. package/package.json +1 -1
  33. package/packs/wan-multitalk/install-runpod.sh +44 -0
  34. package/packs/wan-multitalk/install-windows.bat +49 -0
  35. package/packs/wan-multitalk/manifest.yaml +50 -0
  36. package/packs/wan-multitalk/pack.yaml +28 -0
  37. package/packs/wan-multitalk/workflow.json +1432 -0
  38. package/plugin/skills/triton-sageattention/SKILL.md +15 -0
  39. package/plugin/skills/troubleshooting/SKILL.md +56 -0
  40. package/plugin/skills/wan-multitalk/SKILL.md +97 -0
@@ -295,6 +295,21 @@ rather than trying to satisfy the dependency.
295
295
  still imports with CUDA. If broken, **roll back** (`pip install
296
296
  torch==<old>+cu<line> --index-url https://download.pytorch.org/whl/cu<line>`,
297
297
  or uninstall the bad wheel) and re-apply the sdpa fallback.
298
+ - **Stale Triton cache after a torch/GPU/driver change.** Triton caches compiled
299
+ kernels in `~/.triton` (`%USERPROFILE%\.triton` on Windows). After upgrading torch,
300
+ swapping GPUs, a driver update, or a failed compile, that cache can go stale and
301
+ cause `torch.compile`/SageAttention runs to fail *even though the install is
302
+ correct* — recurring compile errors, `RuntimeError` in a Triton kernel, or a hang
303
+ on the first sample. **Fix: clear the cache and re-run** (Triton recompiles fresh):
304
+ ```
305
+ # Windows
306
+ rmdir /s /q "%USERPROFILE%\.triton"
307
+ # macOS / Linux
308
+ rm -rf ~/.triton
309
+ ```
310
+ Safe to delete — it's a pure cache. Do this BEFORE assuming the wheel is wrong
311
+ (it's a much cheaper fix than a reinstall/roll-back). If it recurs every run, the
312
+ install is genuinely mismatched (see the wheel-mismatch trap above).
298
313
  - **MSVC missing (Windows Triton).** `torch.compile`/Triton errors like "Microsoft
299
314
  Visual C++ ... required", `cl.exe not found`, or `PY_SSIZE_T_CLEAN`/DLL load
300
315
  failures usually mean no MSVC toolchain. Install **Visual Studio Build Tools (C++
@@ -71,6 +71,62 @@ The GPU does not have enough VRAM to hold the model weights, intermediate tensor
71
71
  | Flux Schnell | ~48GB | ~24GB | ~12GB |
72
72
  | LTXV | ~20GB+ | ~10GB+ | ~6GB |
73
73
 
74
+ ## Launch Flags — VRAM / Cache / Attention / Precision
75
+
76
+ ComfyUI's startup flags tune the speed↔VRAM tradeoff. Match them to the detected
77
+ GPU (the panel orchestrator reports VRAM/GPU/torch/sage in its env block; pick the
78
+ tier from there). Set them on the process that launches ComfyUI (or the
79
+ `--panel-orchestrator` / `connect` command's ComfyUI, not the agent).
80
+
81
+ ### VRAM mode (pick ONE by card size)
82
+
83
+ | Flag | Card | Behavior |
84
+ |------|------|----------|
85
+ | `--gpu-only` | 16GB+ | Everything (CLIP/VAE/UNet) stays on GPU — fastest, max VRAM |
86
+ | `--highvram` | 12–16GB | Models stay resident in GPU after use, no CPU offload |
87
+ | `--normalvram` | 8–12GB | Default balance — unload to CPU RAM when idle |
88
+ | `--lowvram` | 6–8GB | Split the UNet, aggressive CPU offload — slower |
89
+ | `--novram` | 4–6GB | Extreme split/offload — for OOM even on lowvram, or long videos |
90
+ | `--cpu` | <4GB / no GPU | CPU only (very slow) |
91
+
92
+ `--reserve-vram N` (GB) leaves headroom for the OS/other apps — bump it if you OOM
93
+ intermittently mid-run (VAE decode / audio round-trips spike).
94
+
95
+ ### Cache (RAM vs re-run speed)
96
+
97
+ | Flag | Effect |
98
+ |------|--------|
99
+ | `--cache-classic` | Default aggressive caching (fastest re-runs, most RAM) |
100
+ | `--cache-lru N` | Keep the last N node results (bounded RAM) |
101
+ | `--cache-ram N` | Cap cache to N GB of headroom |
102
+ | `--cache-none` | No caching — minimal RAM, re-runs every node |
103
+
104
+ ### Attention (speed vs compatibility)
105
+
106
+ | Flag | Notes |
107
+ |------|-------|
108
+ | `--use-sage-attention` | **Recommended** — fast + efficient (needs SageAttention + Triton; see `triton-sageattention`) |
109
+ | `--use-flash-attention` | Very fast on supported GPUs |
110
+ | `--use-pytorch-cross-attention` | PyTorch 2.x native — best compatibility |
111
+ | `--use-split-cross-attention` | Lower VRAM, slower |
112
+ | `--use-quad-cross-attention` | Sub-quadratic optimization |
113
+ | (omit) | Auto-selects xFormers if available |
114
+
115
+ ### Precision (UNet)
116
+
117
+ | Flag | Effect |
118
+ |------|--------|
119
+ | `--fp16-unet` | Half precision, ~50% VRAM |
120
+ | `--bf16-unet` | BFloat16, good balance (newer GPUs) |
121
+ | `--fp8_e4m3fn-unet` | 8-bit float, max savings (newest GPUs) |
122
+
123
+ **Typical recipes:**
124
+ - **RTX 4090/5090 (24–32GB):** `--gpu-only --use-sage-attention --cache-classic`
125
+ - **12–16GB:** `--highvram --use-sage-attention` (or `--fp8_e4m3fn-unet` for big models)
126
+ - **8GB:** `--normalvram --use-sage-attention --cache-lru 20`
127
+ - **6GB:** `--lowvram --use-split-cross-attention --cache-none`
128
+ - **OOM on long video:** `--novram --reserve-vram 2`
129
+
74
130
  ## Device Mismatch
75
131
 
76
132
  ### Error Pattern
@@ -0,0 +1,97 @@
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/expression follow the speech, while the lightx2v step-distill LoRA keeps
16
+ 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/expression.
43
+ - **MultiTalkModelLoader** + **WanVideoImageToVideoMultiTalk** — the MultiTalk head
44
+ on top of the WAN I2V model.
45
+ - **AudioSeparation** — isolate the voice from music/noise before embedding (cleaner
46
+ lip-sync). **AudioCrop** — trim to the segment you want to animate.
47
+ - **ImageResizeKJv2** (KJNodes), **VHS_VideoCombine** (VideoHelperSuite) — resize +
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_fp32.safetensors` | MultiTalkModelLoader | `diffusion_models/` |
56
+ | `umt5_xxl_fp8_e4m3fn_scaled.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_fixed.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`. See `packs/wan-multitalk/manifest.yaml` (some URLs
63
+ are best-effort — verify per mirror). Wav2Vec auto-downloads.
64
+
65
+ ## Inputs & key parameters
66
+
67
+ - **Portrait** (LoadImage): front-facing, clear face, neutral-ish expression works
68
+ best. Resized by ImageResizeKJv2 to the target (480p).
69
+ - **Audio** (LoadAudio): the speech track. AudioSeparation isolates the voice;
70
+ AudioCrop selects the segment (drives clip length).
71
+ - **Steps**: low (the lightx2v distill LoRA is why — typically ~4–8). Raising steps
72
+ rarely helps and costs time.
73
+ - **BlockSwap** (WanVideoBlockSwap): trade VRAM for speed — increase blocks swapped
74
+ to CPU on lower-VRAM cards.
75
+
76
+ ## VRAM tiers (from the source bundle's variants)
77
+
78
+ | Target | Approx VRAM | Lever |
79
+ |--------|-------------|-------|
80
+ | 480p 10s | ~8–12 GB | base |
81
+ | 480p low-VRAM | ~6–8.4 GB | more BlockSwap, GGUF quant, lower quality |
82
+ | 720p 10s | ~11–16 GB | higher res |
83
+
84
+ Pair with the VRAM launch-flags guidance (see `troubleshooting`): `--use-sage-attention`
85
+ + appropriate `--*vram` mode; MultiTalk benefits from `--reserve-vram` headroom for
86
+ the Wav2Vec + VAE round-trips.
87
+
88
+ ## Gotchas
89
+
90
+ - **Audio must be voice-isolated** for good lip-sync — skipping AudioSeparation on a
91
+ music-heavy track makes the mouth chase the wrong signal.
92
+ - **One speaker.** This graph is single-speaker; multi-speaker MultiTalk needs the
93
+ multi-embed variant (not in this pack).
94
+ - **Wav2Vec first run** downloads a model — the first render is slower.
95
+ - If lips look under-driven, check the MultiTalk embeds are actually wired into
96
+ `WanVideoImageToVideoMultiTalk` (not bypassed), and that the audio isn't silent
97
+ after AudioCrop.