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.
- package/README.md +24 -0
- package/dist/index.js +39 -1
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/codex-backend.js +32 -4
- package/dist/orchestrator/codex-backend.js.map +1 -1
- package/dist/orchestrator/index.js +315 -154
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/panel-agent.js +49 -14
- package/dist/orchestrator/panel-agent.js.map +1 -1
- package/dist/services/env-capabilities.js +95 -1
- package/dist/services/env-capabilities.js.map +1 -1
- package/dist/services/image-management.js +100 -1
- package/dist/services/image-management.js.map +1 -1
- package/dist/services/manifest.js +71 -14
- package/dist/services/manifest.js.map +1 -1
- package/dist/services/model-resolver.js +143 -1
- package/dist/services/model-resolver.js.map +1 -1
- package/dist/services/node-management.js +46 -0
- package/dist/services/node-management.js.map +1 -1
- package/dist/tools/image-management.js +8 -4
- package/dist/tools/image-management.js.map +1 -1
- package/dist/tools/manifest.js +1 -1
- package/dist/tools/manifest.js.map +1 -1
- package/dist/tools/model-extras.js +27 -8
- package/dist/tools/model-extras.js.map +1 -1
- package/dist/tools/model-management.js +1 -1
- package/dist/tools/model-management.js.map +1 -1
- package/dist/tools/node-management.js +21 -0
- package/dist/tools/node-management.js.map +1 -1
- package/dist/transport/cli.js +39 -2
- package/dist/transport/cli.js.map +1 -1
- package/package.json +1 -1
- package/packs/wan-multitalk/install-runpod.sh +44 -0
- package/packs/wan-multitalk/install-windows.bat +49 -0
- package/packs/wan-multitalk/manifest.yaml +50 -0
- package/packs/wan-multitalk/pack.yaml +28 -0
- package/packs/wan-multitalk/workflow.json +1432 -0
- package/plugin/skills/triton-sageattention/SKILL.md +15 -0
- package/plugin/skills/troubleshooting/SKILL.md +56 -0
- 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.
|