comfyui-mcp 0.24.0 → 0.24.2
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 +16 -3
- package/dist/config.js +29 -2
- package/dist/config.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/index.js +119 -14
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/services/env-capabilities.js +5 -1
- package/dist/services/env-capabilities.js.map +1 -1
- package/dist/services/generation-tracker.js +6 -3
- package/dist/services/generation-tracker.js.map +1 -1
- package/dist/services/relay-client.js +180 -0
- package/dist/services/relay-client.js.map +1 -0
- package/dist/services/secure-bridge.js +77 -8
- package/dist/services/secure-bridge.js.map +1 -1
- package/dist/services/ui-bridge.js +19 -5
- package/dist/services/ui-bridge.js.map +1 -1
- package/package.json +3 -2
- package/plugin/skills/comfyui-launch-flags/SKILL.md +203 -0
- package/plugin/skills/triton-sageattention/SKILL.md +5 -0
- package/plugin/skills/troubleshooting/SKILL.md +8 -2
- package/plugin/skills/z-image-txt2img/SKILL.md +5 -0
- package/scripts/runpod-release.mjs +58 -0
|
@@ -3,18 +3,27 @@
|
|
|
3
3
|
// plain `ws://127.0.0.1:9180` to the local bridge — browsers block insecure
|
|
4
4
|
// (ws://) sockets from a secure (https://) page (mixed-content) and gate
|
|
5
5
|
// public→loopback access (Private Network Access). This module makes it work
|
|
6
|
-
// transparently:
|
|
6
|
+
// transparently, via one of two backends:
|
|
7
7
|
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
// and uses it automatically — the user never copies a URL.
|
|
8
|
+
// cloudflared (default) — open a cloudflared quick tunnel to the loopback
|
|
9
|
+
// bridge port, giving a `wss://<rand>.trycloudflare.com/?token=<token>` URL.
|
|
10
|
+
// Zero setup, but the tunnel is ephemeral (a fresh random hostname every run,
|
|
11
|
+
// "no uptime guarantee" per Cloudflare's own disclaimer for this product).
|
|
13
12
|
//
|
|
14
|
-
//
|
|
13
|
+
// relay (opt-in: COMFYUI_MCP_TUNNEL_BACKEND=relay + COMFYUI_MCP_RELAY_URL) —
|
|
14
|
+
// dial OUT to a self-hosted comfyui-mcp-relay (Cloudflare Worker + Durable
|
|
15
|
+
// Object; github.com/artokun/comfyui-mcp-relay, private) that gives a stable
|
|
16
|
+
// wss:// endpoint under your own domain instead of a random one. See that
|
|
17
|
+
// repo's README for the wire protocol.
|
|
18
|
+
//
|
|
19
|
+
// Either way: ADVERTISE the resulting URL to the pod's panel pack so the browser
|
|
20
|
+
// panel fetches and uses it automatically — the user never copies a URL. The
|
|
21
|
+
// token is the only thing gating a now-publicly-reachable bridge, so it is
|
|
15
22
|
// generated per session and checked constant-time on every WS upgrade
|
|
16
23
|
// (see UiBridge).
|
|
24
|
+
import { randomBytes } from "node:crypto";
|
|
17
25
|
import { startQuickTunnel } from "./tunnel.js";
|
|
26
|
+
import { RelayClient } from "./relay-client.js";
|
|
18
27
|
import { logger } from "../utils/logger.js";
|
|
19
28
|
/** https://host → wss://host/?token=… (the panel's bridge URL). */
|
|
20
29
|
function toWssUrl(httpsUrl, token) {
|
|
@@ -69,12 +78,72 @@ export async function advertiseBridge(comfyuiUrl, wssUrl) {
|
|
|
69
78
|
}
|
|
70
79
|
return false;
|
|
71
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Stand up the secure bridge and advertise its URL to the pod. Backend is
|
|
83
|
+
* chosen by env (see the module doc comment above); cloudflared is the default.
|
|
84
|
+
* Throws if the chosen backend can't come up (caller decides whether to fall
|
|
85
|
+
* back to the plain ws bridge or fail).
|
|
86
|
+
*/
|
|
87
|
+
export async function setupSecureBridge(opts) {
|
|
88
|
+
const backendEnv = process.env.COMFYUI_MCP_TUNNEL_BACKEND?.trim().toLowerCase();
|
|
89
|
+
const relayUrl = process.env.COMFYUI_MCP_RELAY_URL?.trim();
|
|
90
|
+
if (backendEnv === "relay" || (backendEnv !== "cloudflared" && relayUrl)) {
|
|
91
|
+
return setupRelayBridge(opts);
|
|
92
|
+
}
|
|
93
|
+
return setupCloudflaredBridge(opts);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Dial a self-hosted comfyui-mcp-relay Worker as this session's orchestrator
|
|
97
|
+
* connection. Each relay-multiplexed panel connection is fed into
|
|
98
|
+
* bridge.attachRelayConnection, making it indistinguishable from a direct
|
|
99
|
+
* loopback socket to the rest of the orchestrator.
|
|
100
|
+
*/
|
|
101
|
+
async function setupRelayBridge(opts) {
|
|
102
|
+
const { comfyuiUrl, token, bridge } = opts;
|
|
103
|
+
const relayUrl = process.env.COMFYUI_MCP_RELAY_URL?.trim();
|
|
104
|
+
if (!relayUrl) {
|
|
105
|
+
throw new Error("COMFYUI_MCP_TUNNEL_BACKEND=relay is set but COMFYUI_MCP_RELAY_URL is empty — set it to your " +
|
|
106
|
+
"deployed comfyui-mcp-relay Worker URL (wss://…), or unset COMFYUI_MCP_TUNNEL_BACKEND to fall " +
|
|
107
|
+
"back to the cloudflared quick-tunnel backend.");
|
|
108
|
+
}
|
|
109
|
+
// Distinct from the bridge token — the session id is path-visible (low value,
|
|
110
|
+
// just routes to the right Durable Object); the token is the actual secret.
|
|
111
|
+
const sessionId = randomBytes(8).toString("hex");
|
|
112
|
+
const client = new RelayClient({
|
|
113
|
+
relayUrl,
|
|
114
|
+
sessionId,
|
|
115
|
+
token,
|
|
116
|
+
accessKey: process.env.COMFYUI_MCP_RELAY_KEY?.trim() || undefined,
|
|
117
|
+
onAttach: (sock) => bridge.attachRelayConnection(sock),
|
|
118
|
+
});
|
|
119
|
+
client.start();
|
|
120
|
+
await client.waitUntilOpen();
|
|
121
|
+
const wssUrl = `${relayUrl.replace(/\/+$/, "")}/s/${sessionId}?token=${token}`;
|
|
122
|
+
logger.info(`[secure-bridge] bridge exposed via relay at ${maskToken(wssUrl)}`);
|
|
123
|
+
const advertise = async (target) => {
|
|
124
|
+
const ok = await advertiseBridge(target, wssUrl);
|
|
125
|
+
if (ok) {
|
|
126
|
+
logger.info(`[secure-bridge] advertised the secure bridge URL to the pod panel`);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
logger.warn(`[secure-bridge] could not reach the pod panel to advertise the bridge URL — ` +
|
|
130
|
+
`open the pod's ComfyUI and it will retry on Connect`);
|
|
131
|
+
}
|
|
132
|
+
return ok;
|
|
133
|
+
};
|
|
134
|
+
await advertise(comfyuiUrl);
|
|
135
|
+
return {
|
|
136
|
+
wssUrl,
|
|
137
|
+
advertise,
|
|
138
|
+
stop: () => client.stop(),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
72
141
|
/**
|
|
73
142
|
* Open a cloudflared tunnel to the loopback bridge and advertise the resulting
|
|
74
143
|
* wss URL to the pod. Throws if the tunnel can't come up (caller decides whether
|
|
75
144
|
* to fall back to the plain ws bridge or fail).
|
|
76
145
|
*/
|
|
77
|
-
|
|
146
|
+
async function setupCloudflaredBridge(opts) {
|
|
78
147
|
const { bridgePort, comfyuiUrl, token } = opts;
|
|
79
148
|
// 127.0.0.1 (not localhost) — the bridge is IPv4 loopback-bound.
|
|
80
149
|
const tunnel = await startQuickTunnel(bridgePort, "127.0.0.1");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-bridge.js","sourceRoot":"","sources":["../../src/services/secure-bridge.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"secure-bridge.js","sourceRoot":"","sources":["../../src/services/secure-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -200,16 +200,30 @@ export class UiBridge {
|
|
|
200
200
|
this.readyResolve = null;
|
|
201
201
|
}
|
|
202
202
|
});
|
|
203
|
-
wss.on("connection", (sock) =>
|
|
203
|
+
wss.on("connection", (sock) => {
|
|
204
|
+
// Keepalive bookkeeping for the SERVER-LEVEL heartbeat loop, which only
|
|
205
|
+
// iterates real wss.clients (relay-mediated shim connections aren't real
|
|
206
|
+
// sockets bound by this server, so they're intentionally excluded — see
|
|
207
|
+
// relay-client.ts / the relay README for why that's believed low-risk).
|
|
208
|
+
this.missedPongs.set(sock, 0);
|
|
209
|
+
sock.on("pong", () => this.missedPongs.set(sock, 0));
|
|
210
|
+
this.handleConnection(sock);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Attach a non-loopback panel connection — used by the relay client
|
|
215
|
+
* (relay-client.ts) to feed a relay-multiplexed panel-tab connection into the
|
|
216
|
+
* exact same hello/rid/tab-routing logic a direct loopback socket gets. From
|
|
217
|
+
* here on the relay shim is indistinguishable from a real connection.
|
|
218
|
+
*/
|
|
219
|
+
attachRelayConnection(sock) {
|
|
220
|
+
this.handleConnection(sock);
|
|
204
221
|
}
|
|
205
222
|
handleConnection(sock) {
|
|
206
223
|
// The connection is anonymous until its hello frame names a tab id.
|
|
207
224
|
let tabId = null;
|
|
208
|
-
// Keepalive bookkeeping: fresh socket is alive; each pong resets its miss count.
|
|
209
|
-
this.missedPongs.set(sock, 0);
|
|
210
|
-
sock.on("pong", () => this.missedPongs.set(sock, 0));
|
|
211
225
|
sock.on("message", (buf) => {
|
|
212
|
-
const raw = buf
|
|
226
|
+
const raw = String(buf);
|
|
213
227
|
let msg;
|
|
214
228
|
try {
|
|
215
229
|
msg = JSON.parse(raw);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-bridge.js","sourceRoot":"","sources":["../../src/services/ui-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui-bridge.js","sourceRoot":"","sources":["../../src/services/ui-bridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "comfyui-mcp",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.2",
|
|
4
4
|
"mcpName": "io.github.artokun/comfyui-mcp",
|
|
5
|
-
"description": "Local-first, agent-native control plane for ComfyUI
|
|
5
|
+
"description": "Local-first, agent-native control plane for ComfyUI  MCP server + autonomous sidebar agent that drives your live graph in natural language on ANY LLM: Claude/ChatGPT/Gemini on your subscription (no API key), free local models via Ollama (fully offline), or any hosted model via an OpenAI-compatible endpoint (DeepSeek, GLM, MiMo, OpenRouter). Generate images, video & audio, author and run workflows, manage models and custom nodes; a compact tool-router mode keeps even 4B models effective, and a built-in LLM Arena benchmarks them on real ComfyUI tasks. Also a Claude Code plugin with skills, slash commands, and installer packs. Local, LAN, VPS, or Comfy Cloud.",
|
|
6
6
|
"homepage": "https://comfyui-mcp.artokun.io/docs",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "dist/index.js",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"smoke:panel": "npm run build && node scripts/panel-smoke.mjs",
|
|
34
34
|
"lint": "tsc --noEmit",
|
|
35
35
|
"docs:gen": "cross-env COMFYUI_URL=http://127.0.0.1:8188 tsx scripts/gen-tool-docs.ts",
|
|
36
|
+
"runpod:release": "node scripts/runpod-release.mjs",
|
|
36
37
|
"packs:gen": "node scripts/gen-pack-installers.mjs",
|
|
37
38
|
"packs:validate": "node scripts/validate-manifests.mjs",
|
|
38
39
|
"packs:test": "bash scripts/test-packs.sh",
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comfyui-launch-flags
|
|
3
|
+
description: Pick the right ComfyUI startup flags for VRAM, attention, caching, and speed — the full decision matrix for OOM (--novram / --cache-none / --disable-smart-memory), shared-VRAM creep on Windows (--reserve-vram N), model-switching with big text encoders (--cache-none), high-VRAM throughput (--gpu-only / --highvram), and attention-backend selection (--use-sage-attention for speed, --use-pytorch-cross-attention as the highest-quality / Z-Image-safe fallback). Also the acceleration-stack + Blackwell/RTX 5000 (sm_120) notes. Use when a graph OOMs (especially long video like LTX 2 / WAN), when the GPU spills into shared VRAM and slows to a crawl, when switching between models eats all RAM, when Z-Image produces black/garbled output under Sage, or when deciding which attention backend to launch with. Flag names verified against upstream comfy/cli_args.py — see Sources.
|
|
4
|
+
globs:
|
|
5
|
+
- "**/*.json"
|
|
6
|
+
- "**/packs/**"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# ComfyUI launch/performance flags
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
ComfyUI's runtime behavior is controlled by CLI flags passed to `main.py`
|
|
14
|
+
(e.g. `python main.py --reserve-vram 2 --use-sage-attention`). The three that
|
|
15
|
+
matter most for making a graph *run* — rather than OOM or crawl — are the
|
|
16
|
+
**VRAM strategy**, the **attention backend**, and the **cache mode**. This skill
|
|
17
|
+
is the decision matrix for choosing them.
|
|
18
|
+
|
|
19
|
+
> ⚠️ **Verification note (June 2026).** Every flag below was checked against
|
|
20
|
+
> upstream [`comfy/cli_args.py`](https://github.com/comfyanonymous/ComfyUI/blob/master/comfy/cli_args.py).
|
|
21
|
+
> ComfyUI adds/renames flags often — when in doubt run `python main.py --help`
|
|
22
|
+
> in the target install and prefer that over this list. One common non-upstream
|
|
23
|
+
> flag: **`--enable-triton-backend` is a SwarmUI backend flag, NOT a ComfyUI
|
|
24
|
+
> `main.py` flag** — don't pass it to ComfyUI directly.
|
|
25
|
+
|
|
26
|
+
> ℹ️ **How to apply today.** The MCP's `start_comfyui` currently *replays the
|
|
27
|
+
> exact argv of the previous run* — it does not compose fresh flags. So set
|
|
28
|
+
> these when you launch ComfyUI yourself (the `python main.py …` line, a
|
|
29
|
+
> `run.bat`/shell alias, or the SwarmUI backend args box), then `start_comfyui`
|
|
30
|
+
> will preserve them on restart. (Injecting flags through the tool is a tracked
|
|
31
|
+
> follow-up.)
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Decide first: which flag do you need?
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Symptom ▶ Flag(s) to try
|
|
39
|
+
─────────────────────────────────────────────────────────────────────────────
|
|
40
|
+
CUDA out of memory, long video (LTX 2 / WAN) ▶ --novram (+ --cache-none)
|
|
41
|
+
OOM, still want models resident when they fit ▶ --reserve-vram N then --disable-smart-memory
|
|
42
|
+
GPU slows to a crawl, spills into "shared GPU ▶ --reserve-vram 2..4
|
|
43
|
+
memory" (Windows WDDM) mid-run
|
|
44
|
+
RAM blows up switching between models, or a huge ▶ --cache-none
|
|
45
|
+
text encoder (FLUX 2 / Mistral) won't unload
|
|
46
|
+
Plenty of VRAM (48GB+), want max throughput ▶ --gpu-only or --highvram
|
|
47
|
+
Want faster sampling on NVIDIA ▶ --use-sage-attention (see caveats)
|
|
48
|
+
Z-Image produces BLACK / wrong output ▶ --use-pytorch-cross-attention (NOT sage)
|
|
49
|
+
Sage gives black output on some models ▶ --use-pytorch-cross-attention (or fix dtype)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
VRAM strategy and attention backend are each **mutually exclusive groups** —
|
|
53
|
+
pass at most one from each. You can combine one VRAM flag + one attention flag +
|
|
54
|
+
one cache flag (e.g. `--novram --use-sage-attention --cache-none`).
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## VRAM strategy (mutually exclusive)
|
|
59
|
+
|
|
60
|
+
| Flag | What it does | Use when |
|
|
61
|
+
|------|--------------|----------|
|
|
62
|
+
| `--gpu-only` | Keep everything (incl. text encoders) on GPU | 48GB+ card, single model, max speed |
|
|
63
|
+
| `--highvram` | Keep models resident in VRAM after use | High-VRAM card, repeated runs of one model |
|
|
64
|
+
| *(default)* | ComfyUI's smart offload | Most setups — try this first |
|
|
65
|
+
| `--lowvram` | Offload text encoders / parts to CPU | Mid card OOMing on load |
|
|
66
|
+
| `--novram` | Extreme offload — minimal VRAM footprint | OOM on long video / huge models; pair with `--cache-none` |
|
|
67
|
+
| `--cpu` | Everything on CPU (very slow) | No usable CUDA GPU only |
|
|
68
|
+
|
|
69
|
+
Modifiers (combine with the above):
|
|
70
|
+
|
|
71
|
+
- **`--reserve-vram N`** — reserve N GB for the OS / other apps. The fix for the
|
|
72
|
+
Windows failure mode where the GPU quietly starts using **shared** VRAM and
|
|
73
|
+
throughput collapses. Typical `2`–`4`; bump to `10` for heavy video decode.
|
|
74
|
+
- **`--disable-smart-memory`** — force aggressive offload to regular RAM instead
|
|
75
|
+
of keeping models cached in VRAM. Reach for this when a run gets *stuck* or
|
|
76
|
+
OOMs intermittently. Slightly slower, much more robust.
|
|
77
|
+
- **`--async-offload`** — async weight offload streams (default on where
|
|
78
|
+
supported); `--disable-async-offload` to turn off if it misbehaves.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Attention backend (mutually exclusive)
|
|
83
|
+
|
|
84
|
+
| Flag | Notes |
|
|
85
|
+
|------|-------|
|
|
86
|
+
| `--use-sage-attention` | Quantized SageAttention kernel, ~20–40% faster sampling. Needs the `sageattention` package installed and version-matched — see [`triton-sageattention`](../triton-sageattention/SKILL.md). |
|
|
87
|
+
| `--use-flash-attention` | FlashAttention kernels. Needs `flash-attn` built for your torch/CUDA. |
|
|
88
|
+
| `--use-pytorch-cross-attention` | PyTorch SDPA. **Highest quality, always available, no extra deps.** The safe default and the correct fallback. |
|
|
89
|
+
| `--use-split-cross-attention` / `--use-quad-cross-attention` | Memory-optimized math attention for older/low-VRAM cards. |
|
|
90
|
+
|
|
91
|
+
**Two gotchas worth memorizing:**
|
|
92
|
+
|
|
93
|
+
1. **Z-Image + Sage = broken.** Z-Image (Turbo/Base) does **not** sample
|
|
94
|
+
correctly under `--use-sage-attention` — you get black or garbled output.
|
|
95
|
+
Launch Z-Image with **`--use-pytorch-cross-attention`** instead. See
|
|
96
|
+
[`z-image-txt2img`](../z-image-txt2img/SKILL.md).
|
|
97
|
+
2. **Sage black output on other models.** If a model outputs black *only* with
|
|
98
|
+
Sage, either switch to `--use-pytorch-cross-attention`, or (SwarmUI) set
|
|
99
|
+
Advanced Sampling → Preferred DType = Default (16-bit). Sage-on vs Sage-off
|
|
100
|
+
also produces *slightly different* images — expect non-identical seeds.
|
|
101
|
+
|
|
102
|
+
> When a graph hard-crashes with `No module named 'sageattention'` /
|
|
103
|
+
> `triton: unavailable`, the fix is the sdpa / no-compile fallback in
|
|
104
|
+
> [`triton-sageattention`](../triton-sageattention/SKILL.md), not this flag.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Cache mode (mutually exclusive)
|
|
109
|
+
|
|
110
|
+
| Flag | Effect |
|
|
111
|
+
|------|--------|
|
|
112
|
+
| *(default `--cache-ram`)* | Cache results under RAM pressure |
|
|
113
|
+
| `--cache-classic` | Aggressive result caching |
|
|
114
|
+
| `--cache-lru N` | Keep at most N node results (LRU) |
|
|
115
|
+
| `--cache-none` | Cache nothing — re-executes every node; **lowest RAM/VRAM**. Essential when switching between dual models or when a giant text encoder (FLUX 2's Mistral) must fully unload. |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Speed / precision
|
|
120
|
+
|
|
121
|
+
- **`--fast`** — enables experimental, potentially quality-degrading
|
|
122
|
+
optimizations. Accepts specific `PerformanceFeature` values:
|
|
123
|
+
`fp16_accumulation`, `fp8_matrix_mult`, `cublas_ops`, `autotune`. Bare `--fast`
|
|
124
|
+
turns them all on. Test output quality before committing to it.
|
|
125
|
+
- **UNet/VAE/text-encoder dtype casts** exist too
|
|
126
|
+
(`--fp8_e4m3fn-unet`, `--fp16-unet`, `--bf16-unet`, `--fp32-unet`, …) for
|
|
127
|
+
forcing a compute precision; usually the model/loader picks the right one, so
|
|
128
|
+
only reach for these to work around a specific dtype error.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Recommended combos (recipes)
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
Long video OOM (LTX 2 / WAN, 24GB): --novram --cache-none
|
|
136
|
+
(add --disable-smart-memory if it stalls)
|
|
137
|
+
Windows shared-VRAM creep: --reserve-vram 3
|
|
138
|
+
FLUX 2 / huge text-encoder swaps: --cache-none
|
|
139
|
+
High-VRAM throughput (48GB+): --gpu-only (or --highvram)
|
|
140
|
+
Fast NVIDIA sampling (most models): --use-sage-attention
|
|
141
|
+
Z-Image (any): --use-pytorch-cross-attention
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Cross-refs: video OOM specifics in
|
|
145
|
+
[`ltxv2-video`](../ltxv2-video/SKILL.md) / [`wan-t2v-video`](../wan-t2v-video/SKILL.md);
|
|
146
|
+
per-model VRAM math in [`troubleshooting`](../troubleshooting/SKILL.md) and
|
|
147
|
+
[`model-compatibility`](../model-compatibility/SKILL.md).
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Acceleration stack & GPU coverage (context)
|
|
152
|
+
|
|
153
|
+
The attention/compile accelerators are **version-locked to your exact
|
|
154
|
+
torch + CUDA + Python**. A mismatched wheel doesn't just fail to import — it can
|
|
155
|
+
break the torch install. A known-good, mutually-compatible stack for late-2025 /
|
|
156
|
+
2026 NVIDIA (including **Blackwell / RTX 5000, `sm_120`**) looks like:
|
|
157
|
+
|
|
158
|
+
| Component | Role | Notes |
|
|
159
|
+
|-----------|------|-------|
|
|
160
|
+
| Torch + CUDA | base | e.g. Torch 2.9.x on CUDA 12.8/13; use the wheel index matching your driver |
|
|
161
|
+
| Triton | `torch.compile` / inductor | Windows: `triton-windows` (woct0rdho) |
|
|
162
|
+
| SageAttention | `--use-sage-attention` | wheel matched to torch/CUDA/python |
|
|
163
|
+
| FlashAttention | `--use-flash-attention` | built per torch/CUDA/python |
|
|
164
|
+
| xFormers | memory-efficient attention | optional |
|
|
165
|
+
| InsightFace | FaceID / IP-Adapter / ReActor | `onnxruntime-gpu` alongside |
|
|
166
|
+
|
|
167
|
+
Operational facts worth carrying:
|
|
168
|
+
|
|
169
|
+
- **No system-wide CUDA toolkit is required** to *run* ComfyUI — an up-to-date
|
|
170
|
+
NVIDIA driver + prebuilt wheels are enough. A full CUDA/MSVC/cuDNN toolchain is
|
|
171
|
+
only needed to *compile* kernels yourself.
|
|
172
|
+
- **Broad arch coverage** when building wheels:
|
|
173
|
+
`TORCH_CUDA_ARCH_LIST=7.5;8.0;8.6;8.9;9.0;10.0;12.0+PTX` spans RTX 20xx→50xx
|
|
174
|
+
and datacenter (A100/H100/B200). `+PTX` lets newer archs JIT.
|
|
175
|
+
- **DeepSpeed has no wheels for Python 3.13**; several accel wheels lag the
|
|
176
|
+
newest Python — 3.10–3.12 is the safe range for the full stack.
|
|
177
|
+
- **Clear the Triton cache** (`~/.triton` / `%USERPROFILE%\.triton` and temp)
|
|
178
|
+
when you hit stale-kernel Triton errors after an upgrade.
|
|
179
|
+
- Prefer **`uv pip install`** over pip for the venv — dramatically faster
|
|
180
|
+
resolves/downloads. `install_comfyui` already supports this via `preferUv`.
|
|
181
|
+
- **A single bad custom node can crash all of ComfyUI at startup.** Install/test
|
|
182
|
+
acceleration and new node packs on a fresh/known-good install, not before a
|
|
183
|
+
deadline. See [`troubleshooting`](../troubleshooting/SKILL.md).
|
|
184
|
+
|
|
185
|
+
## Quantization quick take
|
|
186
|
+
|
|
187
|
+
- **FP8-*scaled*** (per-tensor scaled) is markedly higher quality than plain
|
|
188
|
+
base FP8, ~half the size of BF16, and usually faster.
|
|
189
|
+
- **Prefer FP8-scaled over GGUF when you have enough system RAM** — ComfyUI's
|
|
190
|
+
block-swap streams from RAM, so BF16/FP8 can run on 24GB GPUs given ample RAM.
|
|
191
|
+
Fall back to GGUF (Q8→Q4) only when RAM is the constraint.
|
|
192
|
+
- **NVFP4 / NVFP8** are markedly faster on Blackwell (RTX 5000) at near-BF16
|
|
193
|
+
quality for supported models; LoRA support on NVFP4 is still partial.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Sources
|
|
198
|
+
|
|
199
|
+
- ComfyUI CLI args (authoritative): <https://github.com/comfyanonymous/ComfyUI/blob/master/comfy/cli_args.py>
|
|
200
|
+
- ComfyUI startup flags docs: <https://docs.comfy.org/development/comfyui-server/startup-flags>
|
|
201
|
+
- Operational flag/stack guidance distilled from community ComfyUI auto-installer
|
|
202
|
+
changelogs (SECourses) — flags cross-checked against upstream above; no
|
|
203
|
+
third-party scripts, presets, or model files are reproduced here.
|
|
@@ -8,6 +8,11 @@ globs:
|
|
|
8
8
|
|
|
9
9
|
# Triton + SageAttention (ComfyUI acceleration)
|
|
10
10
|
|
|
11
|
+
> See also [`comfyui-launch-flags`](../comfyui-launch-flags/SKILL.md) for the full
|
|
12
|
+
> attention / VRAM / cache flag matrix. Note the **Z-Image exception**: Z-Image is
|
|
13
|
+
> broken under `--use-sage-attention` → launch it with
|
|
14
|
+
> `--use-pytorch-cross-attention` instead.
|
|
15
|
+
|
|
11
16
|
## Overview
|
|
12
17
|
|
|
13
18
|
Two **optional accelerators** that many modern video graphs (especially kijai's
|
|
@@ -52,7 +52,13 @@ The GPU does not have enough VRAM to hold the model weights, intermediate tensor
|
|
|
52
52
|
1. **Reduce resolution**: Drop to the model's native resolution (512 for SD 1.5, 1024 for SDXL/Flux)
|
|
53
53
|
2. **Use FP8/FP16 quantized models**: FP8 Flux models use ~8GB vs ~24GB for FP16
|
|
54
54
|
- Search for FP8 variants: `search_models("flux fp8")` or `search_models("sdxl fp8")`
|
|
55
|
-
3. **
|
|
55
|
+
3. **Launch flags (the VRAM ladder)**: offload aggressively via ComfyUI CLI flags —
|
|
56
|
+
- `--lowvram` — offload text encoders / model parts to CPU
|
|
57
|
+
- `--novram` — extreme offload; the go-to for long video (LTX 2 / WAN) OOM
|
|
58
|
+
- `--cache-none` — cache nothing (lowest RAM/VRAM); combine with `--novram`
|
|
59
|
+
- `--reserve-vram N` — reserve N GB so the GPU stops spilling into slow *shared* VRAM (Windows); typical `2`–`4`
|
|
60
|
+
- `--disable-smart-memory` — force offload to RAM when a run gets stuck / intermittently OOMs
|
|
61
|
+
- Full matrix + recipes: [`comfyui-launch-flags`](../comfyui-launch-flags/SKILL.md)
|
|
56
62
|
4. **Free VRAM between generations**: ComfyUI should auto-manage, but restarting clears leaked memory
|
|
57
63
|
5. **Use tiled VAE decoding**: For high-resolution images, tile the VAE decode step
|
|
58
64
|
- Node: `VAEDecodeTiled` instead of `VAEDecode`
|
|
@@ -472,7 +478,7 @@ list_local_models(model_type="controlnet") # Installed ControlNets
|
|
|
472
478
|
|
|
473
479
|
| Error Message (partial) | Most Likely Fix |
|
|
474
480
|
|--------------------------|----------------|
|
|
475
|
-
| `CUDA out of memory` | Reduce resolution, use FP8 model
|
|
481
|
+
| `CUDA out of memory` | Reduce resolution, use FP8 model; VRAM ladder `--lowvram` → `--novram --cache-none` → `--reserve-vram N` ([launch flags](../comfyui-launch-flags/SKILL.md)) |
|
|
476
482
|
| `Expected all tensors on same device` | Update custom node, restart ComfyUI |
|
|
477
483
|
| `Cannot find node class` | Install the node pack, restart ComfyUI |
|
|
478
484
|
| `Input contains NaN` | Lower CFG, use FP32 VAE, remove LoRAs |
|
|
@@ -7,6 +7,11 @@ globs:
|
|
|
7
7
|
|
|
8
8
|
# Z-Image Text-to-Image Workflows
|
|
9
9
|
|
|
10
|
+
> ⚠️ **Launch flag:** Z-Image does **not** sample correctly under
|
|
11
|
+
> `--use-sage-attention` (black / garbled output). Launch ComfyUI with
|
|
12
|
+
> **`--use-pytorch-cross-attention`** for Z-Image. See
|
|
13
|
+
> [`comfyui-launch-flags`](../comfyui-launch-flags/SKILL.md).
|
|
14
|
+
|
|
10
15
|
## Overview
|
|
11
16
|
|
|
12
17
|
Z-Image is a 6B-parameter image generation model from Alibaba's Tongyi Lab using a Scalable Single-Stream DiT (S3-DiT) architecture. It uses a Qwen text encoder (not CLIP-L/T5). Its VAE shares the Flux VAE *architecture* (same tensor shapes, so the file is the same 320MB size) but ships **different weights** — it is NOT byte-identical to Flux's `ae.safetensors` and must be kept as a separate file (`z-image-ae.safetensors`) to avoid clobbering the Flux VAE. Two variants:
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Build + push the FULL (fat) RunPod template image to Docker Hub.
|
|
3
|
+
//
|
|
4
|
+
// npm run runpod:release # auto-increments the 1.x tag
|
|
5
|
+
// npm run runpod:release -- 2.0 # explicit tag
|
|
6
|
+
//
|
|
7
|
+
// This is the image the RunPod template pulls (artokun/comfyui-mcp-runpod on
|
|
8
|
+
// Docker Hub) — the GitHub Actions workflow only builds the LEAN variant to
|
|
9
|
+
// ghcr.io (standard runners can't hold the 63 GB donor pull), so the fat
|
|
10
|
+
// template image is released from a dev machine with Docker + the layer cache.
|
|
11
|
+
//
|
|
12
|
+
// The panel git-clone layer is cache-busted with the CURRENT panel main SHA so
|
|
13
|
+
// every release bakes the latest panel (boot auto-update then keeps it fresh).
|
|
14
|
+
import { execFileSync, execSync } from "node:child_process";
|
|
15
|
+
import { fileURLToPath } from "node:url";
|
|
16
|
+
import { dirname, join } from "node:path";
|
|
17
|
+
|
|
18
|
+
const REPO = "artokun/comfyui-mcp-runpod";
|
|
19
|
+
const ROOT = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
20
|
+
const CTX = join(ROOT, "docker", "runpod");
|
|
21
|
+
|
|
22
|
+
const run = (cmd, args, opts = {}) =>
|
|
23
|
+
execFileSync(cmd, args, { stdio: "inherit", ...opts });
|
|
24
|
+
const capture = (cmd) => execSync(cmd, { encoding: "utf8" }).trim();
|
|
25
|
+
|
|
26
|
+
// current panel main SHA (no local clone needed)
|
|
27
|
+
const panelSha = capture(
|
|
28
|
+
"git ls-remote https://github.com/artokun/comfyui-mcp-panel.git refs/heads/main",
|
|
29
|
+
).split(/\s+/)[0];
|
|
30
|
+
if (!/^[0-9a-f]{40}$/.test(panelSha)) {
|
|
31
|
+
console.error("could not resolve panel main SHA");
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// tag: explicit arg, or auto-increment the highest local 1.x
|
|
36
|
+
let tag = process.argv[2];
|
|
37
|
+
if (!tag) {
|
|
38
|
+
const tags = capture(`docker images ${REPO} --format "{{.Tag}}"`)
|
|
39
|
+
.split(/\r?\n/)
|
|
40
|
+
.map((t) => /^(\d+)\.(\d+)$/.exec(t))
|
|
41
|
+
.filter(Boolean)
|
|
42
|
+
.map((m) => [Number(m[1]), Number(m[2])])
|
|
43
|
+
.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
|
|
44
|
+
const last = tags.at(-1) ?? [1, 0];
|
|
45
|
+
tag = `${last[0]}.${last[1] + 1}`;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
console.log(`building ${REPO}:${tag} (+latest) — panel @ ${panelSha.slice(0, 8)}, fat (extras + spotcheck)`);
|
|
49
|
+
run("docker", [
|
|
50
|
+
"build",
|
|
51
|
+
"--build-arg", `PANEL_CACHEBUST=${panelSha}`,
|
|
52
|
+
"-t", `${REPO}:${tag}`,
|
|
53
|
+
"-t", `${REPO}:latest`,
|
|
54
|
+
CTX,
|
|
55
|
+
]);
|
|
56
|
+
run("docker", ["push", `${REPO}:${tag}`]);
|
|
57
|
+
run("docker", ["push", `${REPO}:latest`]);
|
|
58
|
+
console.log(`\nreleased ${REPO}:${tag} and :latest — new RunPod pods pick it up on creation.`);
|