comfyui-mcp 0.46.0 → 0.47.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 +3 -3
- package/dist/config.js +30 -9
- package/dist/config.js.map +1 -1
- package/dist/orchestrator/codex-backend.js +195 -53
- package/dist/orchestrator/codex-backend.js.map +1 -1
- package/dist/orchestrator/index.js +33 -3
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/panel-tools.js +2 -1
- package/dist/orchestrator/panel-tools.js.map +1 -1
- package/dist/services/ai-toolkit.js +11 -1
- package/dist/services/ai-toolkit.js.map +1 -1
- package/dist/services/download-jobs.js +92 -0
- package/dist/services/download-jobs.js.map +1 -0
- package/dist/services/download-progress.js +36 -0
- package/dist/services/download-progress.js.map +1 -1
- package/dist/services/env-capabilities.js +3 -2
- package/dist/services/env-capabilities.js.map +1 -1
- package/dist/services/generate-conditioned.js +1 -0
- package/dist/services/generate-conditioned.js.map +1 -1
- package/dist/services/queue-monitor.js +8 -2
- package/dist/services/queue-monitor.js.map +1 -1
- package/dist/services/runpod-client.js +146 -6
- package/dist/services/runpod-client.js.map +1 -1
- package/dist/services/runpod-ssh.js +3 -1
- package/dist/services/runpod-ssh.js.map +1 -1
- package/dist/services/runpod-watch.js +69 -10
- package/dist/services/runpod-watch.js.map +1 -1
- package/dist/services/secure-bridge.js +2 -11
- package/dist/services/secure-bridge.js.map +1 -1
- package/dist/services/training-datasets.js +168 -0
- package/dist/services/training-datasets.js.map +1 -0
- package/dist/services/workflow-composer.js +3 -0
- package/dist/services/workflow-composer.js.map +1 -1
- package/dist/tools/generate-conditioned.js +4 -0
- package/dist/tools/generate-conditioned.js.map +1 -1
- package/dist/tools/image-management.js +24 -0
- package/dist/tools/image-management.js.map +1 -1
- package/dist/tools/model-extras.js +73 -42
- package/dist/tools/model-extras.js.map +1 -1
- package/dist/tools/model-management.js +90 -4
- package/dist/tools/model-management.js.map +1 -1
- package/dist/tools/prompt-director.js +2 -1
- package/dist/tools/prompt-director.js.map +1 -1
- package/dist/tools/runpod.js +12 -3
- package/dist/tools/runpod.js.map +1 -1
- package/dist/tools/train.js +104 -10
- package/dist/tools/train.js.map +1 -1
- package/docker/runpod/Dockerfile +15 -2
- package/docker/runpod/README.md +23 -0
- package/docker/runpod/deadman_server.py +71 -0
- package/docker/runpod/deadman_watch.sh +106 -0
- package/docker/runpod/post_start.sh +17 -0
- package/docker/runpod/test_deadman_harness.py +206 -0
- package/package.json +1 -1
- package/scripts/asset-counts.mjs +129 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-director.js","sourceRoot":"","sources":["../../src/tools/prompt-director.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-director.js","sourceRoot":"","sources":["../../src/tools/prompt-director.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,SAAS,SAAS;IAChB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CACtG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC;AAGD,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,kHAAkH;QAChH,mHAAmH;QACnH,oHAAoH;QACpH,uHAAuH;QACvH,mGAAmG,EACrG;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;KAC7H,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,SAAS,EAAE,8BAA8B,KAAK,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,iBAAiB,CACtB,IAAI,KAAK,CACP,mCAAmC,QAAQ,CAAC,MAAM,0DAA0D,CAC7G,CACF,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAGD,eAAe,2BAA2B,CAAC"}
|
package/dist/tools/runpod.js
CHANGED
|
@@ -57,8 +57,15 @@ function summarizePod(pod) {
|
|
|
57
57
|
if (pod.runtime) {
|
|
58
58
|
lines.push(`Uptime: ${fmtUptime(pod.runtime.uptimeInSeconds)}`);
|
|
59
59
|
const g = pod.runtime.gpus?.[0];
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
// Telemetry leaves are nullable in RunPod's schema (#269 r2) — render
|
|
61
|
+
// each only when actually reported, never a literal "null%".
|
|
62
|
+
if (g) {
|
|
63
|
+
const util = g.gpuUtilPercent != null ? `GPU util: ${g.gpuUtilPercent}%` : "";
|
|
64
|
+
const vram = g.memoryUtilPercent != null ? `VRAM: ${g.memoryUtilPercent}%` : "";
|
|
65
|
+
const both = [util, vram].filter(Boolean).join(" · ");
|
|
66
|
+
if (both)
|
|
67
|
+
lines.push(both);
|
|
68
|
+
}
|
|
62
69
|
}
|
|
63
70
|
if (comfyuiPortExposed(pod)) {
|
|
64
71
|
lines.push(`ComfyUI: ${runpodProxyUrl(pod.id)} (connect with runpod_pod_connect)`);
|
|
@@ -170,17 +177,19 @@ export function registerRunpodTools(server) {
|
|
|
170
177
|
}
|
|
171
178
|
});
|
|
172
179
|
// ── CREATE (deploy our template via the API — referral-earning) ───────────
|
|
173
|
-
server.tool("runpod_pod_create", "Deploy a BRAND-NEW RunPod pod from our comfyui-mcp template (image with the panel + Manager + our nodes preinstalled), then it can be started/connected like any pod. One-tap alternative to the console deploy link for a user who already has a RunPod account + API key. Because our template is used, the agent can install the user's exact custom nodes/LoRAs + download models on it → full canvas parity. Tries several GPU types until one has capacity (on-demand availability fluctuates). NOTE: this bills GPU-time as soon as the pod boots — confirm with the user first, and stop it (runpod_pod_stop) when done. For onboarding a NEW RunPod user, prefer runpod_deploy_link so their signup credits our referral.", {
|
|
180
|
+
server.tool("runpod_pod_create", "Deploy a BRAND-NEW RunPod pod from our comfyui-mcp template (image with the panel + Manager + our nodes preinstalled), then it can be started/connected like any pod. One-tap alternative to the console deploy link for a user who already has a RunPod account + API key. Because our template is used, the agent can install the user's exact custom nodes/LoRAs + download models on it → full canvas parity. Tries several GPU types until one has capacity (on-demand availability fluctuates). NOTE: this bills GPU-time as soon as the pod boots — confirm with the user first, and stop it (runpod_pod_stop) when done. Created pods carry a DEAD-MAN SWITCH: if comfyui-mcp stops minding the pod (crash/offline), the pod STOPS ITSELF after a grace period so it can't bill forever — it uses the pod-scoped key RunPod auto-injects, so your account key never leaves this machine (disable with deadman:false). For onboarding a NEW RunPod user, prefer runpod_deploy_link so their signup credits our referral.", {
|
|
174
181
|
name: z.string().optional().describe("Pod name (default 'comfyui-mcp')."),
|
|
175
182
|
gpu_type: z.string().optional().describe(`GPU type to prefer, e.g. "NVIDIA GeForce RTX 4090". Default tries: ${RUNPOD_DEFAULT_GPU_TYPES.join(", ")}.`),
|
|
176
183
|
cloud_type: z.enum(["COMMUNITY", "SECURE"]).optional().describe("COMMUNITY (cheaper, default) or SECURE."),
|
|
177
184
|
connect: z.boolean().optional().describe("Auto-connect when booted: the ORCHESTRATOR waits for ComfyUI to answer (1-3min), then retargets + watches — this call returns immediately (default false: deploy only; connect later with runpod_pod_connect)."),
|
|
185
|
+
deadman: z.boolean().optional().describe("Arm the pod-side dead-man watchdog (default true for OUR stock template): the pod STOPS ITSELF if comfyui-mcp's heartbeats stop (process crash/offline — boot grace ~45min, then ~20min without beats). Uses the pod-scoped API key RunPod auto-injects into every pod — your account key never leaves this machine. false deploys without the watchdog. With a custom template (RUNPOD_TEMPLATE_ID) the default is OFF — pass true only if that image ships our watchdog."),
|
|
178
186
|
}, async (args) => {
|
|
179
187
|
try {
|
|
180
188
|
const pod = await createPod({
|
|
181
189
|
name: args.name,
|
|
182
190
|
gpuTypeIds: args.gpu_type ? [args.gpu_type] : undefined,
|
|
183
191
|
cloudType: args.cloud_type,
|
|
192
|
+
deadman: args.deadman,
|
|
184
193
|
});
|
|
185
194
|
const cost = pod.costPerHr != null ? ` at $${pod.costPerHr.toFixed(3)}/hr` : "";
|
|
186
195
|
const gpu = pod.machine?.gpuDisplayName ? ` on ${pod.machine.gpuDisplayName}` : "";
|
package/dist/tools/runpod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runpod.js","sourceRoot":"","sources":["../../src/tools/runpod.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runpod.js","sourceRoot":"","sources":["../../src/tools/runpod.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/train.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
|
-
import {
|
|
4
|
+
import { realpath } from "node:fs/promises";
|
|
5
|
+
import { basename, join, resolve, sep } from "node:path";
|
|
6
|
+
import { resolveInputDir, resolveOutputDir } from "../services/output-dir.js";
|
|
5
7
|
import { buildTrainerImage, dockerAvailable, trainerDoctor, trainerImageExists, TRAINER_IMAGE, } from "../services/ai-toolkit.js";
|
|
6
8
|
import { DEFAULT_PARAMS } from "../services/training-config.js";
|
|
7
9
|
import { cancelJob, getJob, hfCacheRoot, listJobs, prepareDataset, startTrainingJob, trainingRoot, } from "../services/training-jobs.js";
|
|
10
|
+
import { getDataset, getJobConfig, listDatasets, readTrainingFile } from "../services/training-datasets.js";
|
|
8
11
|
import { errorToToolResult } from "../utils/errors.js";
|
|
9
12
|
import { isRemoteMode } from "../config.js";
|
|
10
13
|
function textEnvelope(envelope) {
|
|
@@ -38,12 +41,52 @@ async function resolvePodForTraining(podId) {
|
|
|
38
41
|
}
|
|
39
42
|
return pod;
|
|
40
43
|
}
|
|
44
|
+
/** Map tool items (path | ComfyUI ref) to host-absolute DatasetItems. Refs
|
|
45
|
+
* resolve against the connected ComfyUI's output/input root with containment:
|
|
46
|
+
* the filename must be a plain basename and the resolved path must stay INSIDE
|
|
47
|
+
* the root — otherwise a crafted ref could stage ANY host file into a dataset
|
|
48
|
+
* (path traversal). prepareDataset then verifies existence/type per item. */
|
|
49
|
+
async function resolveDatasetItems(items) {
|
|
50
|
+
const norm = (p) => (process.platform === "win32" ? p.toLowerCase() : p);
|
|
51
|
+
return Promise.all(items.map(async (it) => {
|
|
52
|
+
// An explicit host path always wins over a ref (both are allowed so a
|
|
53
|
+
// caller can attach a ref for traceability).
|
|
54
|
+
if (it.path)
|
|
55
|
+
return { path: it.path, caption: it.caption };
|
|
56
|
+
// Refs resolve on the ORCHESTRATOR's filesystem — against a remote
|
|
57
|
+
// ComfyUI (pod/LAN) the root would come from that machine's stats while
|
|
58
|
+
// prepareDataset checks/copies locally (codex finding). Reject honestly.
|
|
59
|
+
if (isRemoteMode()) {
|
|
60
|
+
throw new Error("ref items need a LOCAL ComfyUI (the orchestrator must share its filesystem) — pass absolute paths, or fetch the remote outputs first");
|
|
61
|
+
}
|
|
62
|
+
const { filename, subfolder, type } = it.ref;
|
|
63
|
+
if (filename !== basename(filename)) {
|
|
64
|
+
throw new Error(`ref filename must be a plain basename, got "${filename}"`);
|
|
65
|
+
}
|
|
66
|
+
const kind = type ?? "output";
|
|
67
|
+
const root = resolve(kind === "input" ? await resolveInputDir() : await resolveOutputDir());
|
|
68
|
+
const candidate = resolve(root, subfolder ?? "", filename);
|
|
69
|
+
// Containment on REAL paths — a symlinked subfolder/file pointing outside
|
|
70
|
+
// the root must not smuggle the copy across (codex finding). A missing
|
|
71
|
+
// target keeps its lexical path; prepareDataset reports it not-found.
|
|
72
|
+
const realRoot = await realpath(root).catch(() => root);
|
|
73
|
+
const realCandidate = await realpath(candidate).catch(() => candidate);
|
|
74
|
+
if (norm(realCandidate) !== norm(realRoot) && !norm(realCandidate).startsWith(norm(realRoot) + sep)) {
|
|
75
|
+
throw new Error(`ref "${subfolder ?? ""}/${filename}" escapes the ${kind} dir`);
|
|
76
|
+
}
|
|
77
|
+
return { path: realCandidate, caption: it.caption };
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
41
80
|
const paramsSchema = z
|
|
42
81
|
.object({
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
82
|
+
// Upper bounds (panel #104): the Custom preset is free-form, and a typo
|
|
83
|
+
// like steps=10^9 / rank=100000 / resolution=100000 starts a doomed,
|
|
84
|
+
// OOM, BILLED run. Ceilings are generous but sane; the panel wizard
|
|
85
|
+
// mirrors them client-side.
|
|
86
|
+
steps: z.number().int().min(1).max(100_000).optional().describe("Total training steps (200 = smoke test, 1500-3000 real; max 100000)."),
|
|
87
|
+
lr: z.number().positive().max(1).optional().describe("Learning rate (max 1)."),
|
|
88
|
+
rank: z.number().int().min(1).max(1024).optional().describe("LoRA rank (16 simple, 16-32 detailed; max 1024)."),
|
|
89
|
+
resolution: z.array(z.number().int().min(64).max(4096)).min(1).optional().describe("Resolution buckets, e.g. [512,768,1024] (each 64-4096)."),
|
|
47
90
|
batchSize: z.number().int().min(1).optional(),
|
|
48
91
|
saveEvery: z.number().int().min(1).optional().describe("Checkpoint cadence (steps)."),
|
|
49
92
|
sampleEvery: z.number().int().min(1).optional().describe("Sample-image cadence (steps)."),
|
|
@@ -78,18 +121,29 @@ export function registerTrainTools(server) {
|
|
|
78
121
|
return errorToToolResult(error);
|
|
79
122
|
}
|
|
80
123
|
});
|
|
81
|
-
server.tool("train_prepare_dataset", "Stage training images + captions into a dataset dir the trainer consumes. Each item is an image path with an optional caption (a missing caption falls back to defaultCaption — typically the trigger word). Returns the datasetPath to pass to train_start. Character LoRA guidance: 10-30 varied images; caption what changes between images, keep the trigger word constant.", {
|
|
124
|
+
server.tool("train_prepare_dataset", "Stage training images + captions into a dataset dir the trainer consumes. Each item is an image (absolute `path`, OR a ComfyUI `ref` {filename,subfolder?,type?} resolved against the connected ComfyUI's output/input dirs — how phone/panel pickers hand over selections) with an optional caption (a missing caption falls back to defaultCaption — typically the trigger word). Returns the datasetPath to pass to train_start. Character LoRA guidance: 10-30 varied images; caption what changes between images, keep the trigger word constant.", {
|
|
82
125
|
name: z.string().min(1).describe("Dataset name (becomes the staging dir name)."),
|
|
83
126
|
items: z
|
|
84
|
-
.array(z
|
|
85
|
-
|
|
127
|
+
.array(z
|
|
128
|
+
.object({
|
|
129
|
+
path: z.string().min(1).optional().describe("Absolute path to a source image (png/jpg/jpeg/webp)."),
|
|
130
|
+
ref: z
|
|
131
|
+
.object({
|
|
132
|
+
filename: z.string().min(1).describe("Basename only — no path separators."),
|
|
133
|
+
subfolder: z.string().optional().describe("Subfolder under the root (default top level)."),
|
|
134
|
+
type: z.enum(["output", "input"]).optional().default("output").describe("Which ComfyUI dir to resolve against (default output)."),
|
|
135
|
+
})
|
|
136
|
+
.optional()
|
|
137
|
+
.describe("ComfyUI file ref (e.g. from list_output_images format:json) — resolved server-side with containment checks. Give path OR ref."),
|
|
86
138
|
caption: z.string().optional().describe("Caption for this image."),
|
|
87
|
-
})
|
|
139
|
+
})
|
|
140
|
+
.refine((it) => !!it.path || !!it.ref, { message: "each item needs path or ref" }))
|
|
88
141
|
.min(1),
|
|
89
142
|
defaultCaption: z.string().optional().describe("Fallback caption for items without one — usually the trigger word."),
|
|
90
143
|
}, async (args) => {
|
|
91
144
|
try {
|
|
92
|
-
const
|
|
145
|
+
const items = await resolveDatasetItems(args.items);
|
|
146
|
+
const prepared = await prepareDataset({ name: args.name, items, defaultCaption: args.defaultCaption });
|
|
93
147
|
return textEnvelope({ ok: true, ...prepared });
|
|
94
148
|
}
|
|
95
149
|
catch (error) {
|
|
@@ -233,6 +287,46 @@ export function registerTrainTools(server) {
|
|
|
233
287
|
return errorToToolResult(error);
|
|
234
288
|
}
|
|
235
289
|
});
|
|
290
|
+
// ── Datasets + job config (read-only views for the panel/mobile surfaces) ──
|
|
291
|
+
server.tool("train_list_datasets", "List staged training datasets (the dirs from train_prepare_dataset), newest-first, with image/caption counts. Read-only — pair with train_dataset_detail to see one dataset's images + captions.", {}, async () => {
|
|
292
|
+
try {
|
|
293
|
+
return textEnvelope({ ok: true, datasets: listDatasets() });
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
return errorToToolResult(error);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
server.tool("train_dataset_detail", "Show one staged dataset: its dir (datasetPath — reusable as train_start's datasetPath) and every image with its caption (null when uncaptioned). Images render via train_file. Read-only.", {
|
|
300
|
+
name: z.string().min(1).describe("Dataset name (from train_list_datasets)."),
|
|
301
|
+
}, async (args) => {
|
|
302
|
+
try {
|
|
303
|
+
return textEnvelope({ ok: true, ...getDataset(args.name) });
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
return errorToToolResult(error);
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
server.tool("train_job_config", "Show the effective settings a training job ran with (steps/lr/rank/resolution/batch/saveEvery/sampleEvery/quantize) read back from the ai-toolkit config.yml it consumed, plus flow/model/trigger/datasetPath — everything needed to run the job again with tweaks. Read-only.", {
|
|
310
|
+
id: z.string().min(1).describe("Job id from train_start."),
|
|
311
|
+
}, async (args) => {
|
|
312
|
+
try {
|
|
313
|
+
return textEnvelope({ ok: true, ...(await getJobConfig(args.id)) });
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
return errorToToolResult(error);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
server.tool("train_file", "Fetch an image under the training root (dataset image, job sample) as an inline image — the tunnel-safe way for a phone/panel to render training files it can't reach over /view. Bounded: image files only, ≤ 2MB.", {
|
|
320
|
+
path: z.string().min(1).describe("Absolute path under the training root (from train_dataset_detail's datasetPath or train_status's samples)."),
|
|
321
|
+
}, async (args) => {
|
|
322
|
+
try {
|
|
323
|
+
const { data, mimeType } = readTrainingFile(args.path);
|
|
324
|
+
return { content: [{ type: "image", data, mimeType }] };
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
return errorToToolResult(error);
|
|
328
|
+
}
|
|
329
|
+
});
|
|
236
330
|
server.tool("train_cancel", "Stop a running training job (docker stop) and mark it cancelled. Checkpoints already saved stay in the job's output dir; no LoRA is handed off to models/loras. Returns ok:false when the container could not be confirmed stopped (the job reverts to running).", {
|
|
237
331
|
id: z.string().min(1).describe("Job id from train_start."),
|
|
238
332
|
}, async (args) => {
|
package/dist/tools/train.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"train.js","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"train.js","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"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"}
|
package/docker/runpod/Dockerfile
CHANGED
|
@@ -315,6 +315,12 @@ COPY starting.html /usr/share/nginx/html/readme.html
|
|
|
315
315
|
COPY post_start.sh /post_start.sh
|
|
316
316
|
RUN chmod +x /post_start.sh
|
|
317
317
|
|
|
318
|
+
# Dead-man switch (#269) — heartbeat server + self-stop watchdog, launched by
|
|
319
|
+
# post_start.sh only when the pod env carries RUNPOD_API_KEY + DEADMAN_TOKEN
|
|
320
|
+
# (i.e. pods created via runpod_pod_create). See deadman_watch.sh's header.
|
|
321
|
+
COPY deadman_server.py deadman_watch.sh /opt/comfyui-mcp-deadman/
|
|
322
|
+
RUN chmod +x /opt/comfyui-mcp-deadman/deadman_watch.sh
|
|
323
|
+
|
|
318
324
|
# File Browser (https://filebrowser.org) — a single Go binary web file manager.
|
|
319
325
|
# Placed LATE so it doesn't bust the expensive torch/ComfyUI layer cache. The
|
|
320
326
|
# entrypoint runs it rooted at /workspace (browse/upload/download/delete), fronted
|
|
@@ -418,12 +424,18 @@ RUN set -e; \
|
|
|
418
424
|
"${COMFY_HOME}/custom_nodes_seed/comfyui-mcp-panel/web/js/comfyui-mcp-panel.js" \
|
|
419
425
|
"${COMFY_HOME}/extra_model_paths.yaml" \
|
|
420
426
|
"${COMFY_HOME}/config.ini.seed" \
|
|
421
|
-
/post_start.sh
|
|
427
|
+
/post_start.sh \
|
|
428
|
+
/opt/comfyui-mcp-deadman/deadman_server.py \
|
|
429
|
+
/opt/comfyui-mcp-deadman/deadman_watch.sh; do \
|
|
422
430
|
[ -s "$f" ] || { echo "INTEGRITY GATE FAILED: $f is missing or 0 bytes"; exit 1; }; \
|
|
423
431
|
done; \
|
|
424
432
|
EMPTY="$(find "${COMFY_HOME}/custom_nodes_seed" -type f -size 0 | head -20)"; \
|
|
425
433
|
[ -z "$EMPTY" ] || { echo "INTEGRITY GATE FAILED: 0-byte files in custom_nodes_seed:"; echo "$EMPTY"; exit 1; }; \
|
|
426
434
|
bash -n /post_start.sh || { echo "INTEGRITY GATE FAILED: /post_start.sh has syntax errors"; exit 1; }; \
|
|
435
|
+
bash -n /opt/comfyui-mcp-deadman/deadman_watch.sh \
|
|
436
|
+
|| { echo "INTEGRITY GATE FAILED: deadman_watch.sh has syntax errors"; exit 1; }; \
|
|
437
|
+
"${COMFY_HOME}/venv/bin/python" -m py_compile /opt/comfyui-mcp-deadman/deadman_server.py \
|
|
438
|
+
|| { echo "INTEGRITY GATE FAILED: deadman_server.py does not compile"; exit 1; }; \
|
|
427
439
|
"${COMFY_HOME}/venv/bin/python" -c "import torch; import importlib.metadata as m; m.version('comfyui-manager')" \
|
|
428
440
|
|| { echo "INTEGRITY GATE FAILED: venv torch import / comfyui-manager package"; exit 1; }; \
|
|
429
441
|
command -v aria2c >/dev/null \
|
|
@@ -482,5 +494,6 @@ RUN rm -rf /workspace/.cache /workspace/.logs && mkdir -p /workspace
|
|
|
482
494
|
# 8083 File Browser (via nginx -> :8082; rooted at /workspace)
|
|
483
495
|
# 8081 code-server (via nginx -> :8080)
|
|
484
496
|
# 8001 app-manager (via nginx -> :8000)
|
|
497
|
+
# 8189 dead-man heartbeat server (token-gated; only armed on API-created pods)
|
|
485
498
|
# 22 SSH (base; RunPod PUBLIC_KEY)
|
|
486
|
-
EXPOSE 3000 8888 8083 8081 8001 22
|
|
499
|
+
EXPOSE 3000 8888 8083 8081 8001 8189 22
|
package/docker/runpod/README.md
CHANGED
|
@@ -345,11 +345,34 @@ transparent to ComfyUI and the agent.
|
|
|
345
345
|
| **runpod-uploader** | — | COPY from donor | file uploader; best-effort |
|
|
346
346
|
| **croc** | — | COPY from donor | on-demand P2P transfer |
|
|
347
347
|
| **cron** | — | apt | best-effort |
|
|
348
|
+
| **dead-man watchdog** | 8189 (heartbeat) | `deadman_server.py` + `deadman_watch.sh` | see below |
|
|
348
349
|
|
|
349
350
|
All ancillary services are launched **best-effort** — if a binary is absent (e.g.
|
|
350
351
|
you dropped the donor COPYs) the entrypoint logs `skip` and carries on, so the
|
|
351
352
|
image still boots ComfyUI fine.
|
|
352
353
|
|
|
354
|
+
### Dead-man switch (#269)
|
|
355
|
+
|
|
356
|
+
Pods **created via `runpod_pod_create`** carry a billing dead-man switch. The
|
|
357
|
+
in-process idle auto-stop dies with the orchestrator (crash / closed laptop);
|
|
358
|
+
without a pod-side guard the pod would bill forever. So:
|
|
359
|
+
|
|
360
|
+
- `deadman_server.py` (:8189, token-gated) receives the orchestrator's
|
|
361
|
+
heartbeats (one per watch poll) and refreshes a beat file;
|
|
362
|
+
- `deadman_watch.sh` stops the pod **itself** (GraphQL `podStop` — stop, never
|
|
363
|
+
terminate, so `/workspace` survives) when the beats stop: 20 min without a
|
|
364
|
+
beat once managed, or 45 min after boot with no heartbeat at all
|
|
365
|
+
(`DEADMAN_BEAT_GRACE_S` / `DEADMAN_BOOT_GRACE_S`).
|
|
366
|
+
|
|
367
|
+
The stop is authorized by the **pod-scoped `RUNPOD_API_KEY` RunPod auto-injects
|
|
368
|
+
into every pod** — the owner's account-wide key never leaves the orchestrator.
|
|
369
|
+
Arming is signaled by the pod env carrying `DEADMAN_TOKEN` (injected by
|
|
370
|
+
`runpod_pod_create`; a sha256 of key + unique deploy name, authorizes
|
|
371
|
+
heartbeats **only** — it is not an API key and cannot stop the pod).
|
|
372
|
+
Console-deployed pods have no token, so their watchdog stays inert. Opt out of
|
|
373
|
+
arming with `deadman:false` / `RUNPOD_DEADMAN=0` at create, or
|
|
374
|
+
`DEADMAN_DISABLE=1` as a pod env.
|
|
375
|
+
|
|
353
376
|
---
|
|
354
377
|
|
|
355
378
|
## Topology: where the agent runs
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""comfyui-mcp dead-man heartbeat server (pod side) — #269.
|
|
3
|
+
|
|
4
|
+
Part of the dead-man switch: pods created via runpod_pod_create carry a
|
|
5
|
+
watchdog (deadman_watch.sh) that STOPS THE POD when comfyui-mcp's heartbeats
|
|
6
|
+
stop (orchestrator crash / laptop closed = the in-process idle auto-stop is
|
|
7
|
+
gone too, and without this the pod would bill forever). This tiny stdlib-only
|
|
8
|
+
HTTP server is the heartbeat receiver: each GET /heartbeat?token=... refreshes
|
|
9
|
+
the beat file the watchdog checks.
|
|
10
|
+
|
|
11
|
+
Endpoints:
|
|
12
|
+
GET /heartbeat?token=X -> 200 + refresh beat file (403 on wrong/missing token)
|
|
13
|
+
GET /health -> 200 (liveness only; does NOT count as a beat)
|
|
14
|
+
|
|
15
|
+
Env:
|
|
16
|
+
DEADMAN_TOKEN required; beats without the matching token are rejected.
|
|
17
|
+
Injected at pod create; derived from the owner's API key +
|
|
18
|
+
unique deploy name, so it authorizes heartbeats ONLY (it is
|
|
19
|
+
not the API key and cannot stop the pod).
|
|
20
|
+
DEADMAN_PORT listen port (default 8189; exposed as an HTTP proxy port).
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
import os
|
|
24
|
+
import time
|
|
25
|
+
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
26
|
+
from urllib.parse import urlparse, parse_qs
|
|
27
|
+
|
|
28
|
+
TOKEN = os.environ.get("DEADMAN_TOKEN", "")
|
|
29
|
+
PORT = int(os.environ.get("DEADMAN_PORT", "8189"))
|
|
30
|
+
BEAT_FILE = os.environ.get("DEADMAN_BEAT_FILE", "/tmp/comfyui-mcp-deadman-beat")
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class Handler(BaseHTTPRequestHandler):
|
|
34
|
+
server_version = "comfyui-mcp-deadman/1"
|
|
35
|
+
|
|
36
|
+
def _reply(self, code: int, body: bytes = b"") -> None:
|
|
37
|
+
self.send_response(code)
|
|
38
|
+
self.send_header("content-type", "text/plain")
|
|
39
|
+
self.send_header("content-length", str(len(body)))
|
|
40
|
+
self.end_headers()
|
|
41
|
+
if body:
|
|
42
|
+
self.wfile.write(body)
|
|
43
|
+
|
|
44
|
+
def do_GET(self) -> None: # noqa: N802 (stdlib handler name)
|
|
45
|
+
url = urlparse(self.path)
|
|
46
|
+
if url.path == "/health":
|
|
47
|
+
self._reply(200, b"ok\n")
|
|
48
|
+
return
|
|
49
|
+
if url.path == "/heartbeat":
|
|
50
|
+
token = parse_qs(url.query).get("token", [""])[0]
|
|
51
|
+
# Constant-time-ish compare isn't worth secrets here (the token is
|
|
52
|
+
# per-deploy + heartbeat-only), but DO require it to be configured.
|
|
53
|
+
if not TOKEN or token != TOKEN:
|
|
54
|
+
self._reply(403, b"forbidden\n")
|
|
55
|
+
return
|
|
56
|
+
with open(BEAT_FILE, "w", encoding="utf-8") as f:
|
|
57
|
+
f.write(str(time.time()))
|
|
58
|
+
self._reply(200, b"ok\n")
|
|
59
|
+
return
|
|
60
|
+
self._reply(404, b"not found\n")
|
|
61
|
+
|
|
62
|
+
def log_message(self, *_args) -> None: # keep the pod console quiet
|
|
63
|
+
pass
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
if __name__ == "__main__":
|
|
67
|
+
if not TOKEN:
|
|
68
|
+
# post_start.sh gates on this too — refusing to start token-less means a
|
|
69
|
+
# misconfigured pod can never be kept alive by unauthenticated beats.
|
|
70
|
+
raise SystemExit("DEADMAN_TOKEN is not set — heartbeat server refusing to start")
|
|
71
|
+
HTTPServer(("0.0.0.0", PORT), Handler).serve_forever()
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# comfyui-mcp dead-man watchdog (pod side) — #269.
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Pods created via runpod_pod_create carry this loop + the heartbeat server
|
|
5
|
+
# (deadman_server.py). While comfyui-mcp minds the pod it heartbeats every
|
|
6
|
+
# poll; if the beats STOP (orchestrator crash, laptop closed, network gone),
|
|
7
|
+
# the in-process idle auto-stop is gone too — so this loop stops the pod
|
|
8
|
+
# ITSELF after the grace period instead of letting it bill forever.
|
|
9
|
+
#
|
|
10
|
+
# * beat file present + older than DEADMAN_BEAT_GRACE_S -> stop (lost manager)
|
|
11
|
+
# * NO beat file at all after DEADMAN_BOOT_GRACE_S up -> stop (never managed:
|
|
12
|
+
# covers a create whose response was lost before anyone started watching)
|
|
13
|
+
#
|
|
14
|
+
# STOP (not terminate): the /workspace volume survives and the pod can be
|
|
15
|
+
# resumed later — same severity as the in-process idle auto-stop.
|
|
16
|
+
#
|
|
17
|
+
# Requires RUNPOD_POD_ID + DEADMAN_TOKEN in the pod env. The stop itself is
|
|
18
|
+
# authorized by RUNPOD_API_KEY — the POD-SCOPED key RunPod auto-injects into
|
|
19
|
+
# every pod (docs.runpod.io/pods/templates/environment-variables), NOT the
|
|
20
|
+
# owner's account key, which never leaves the orchestrator. Opt out of arming
|
|
21
|
+
# with `deadman:false` / RUNPOD_DEADMAN=0 at create time, or DEADMAN_DISABLE=1
|
|
22
|
+
# as a pod env any time. RUNPOD_GRAPHQL_ENDPOINT is overridable for tests.
|
|
23
|
+
# =============================================================================
|
|
24
|
+
set -uo pipefail
|
|
25
|
+
|
|
26
|
+
LOG_DIR="${LOG_DIR:-/var/log/comfyui-mcp}"
|
|
27
|
+
mkdir -p "${LOG_DIR}" 2>/dev/null || true
|
|
28
|
+
log() { echo "[comfyui-mcp/deadman] $(date -u +%H:%M:%S) $*" >> "${LOG_DIR}/deadman.log"; }
|
|
29
|
+
|
|
30
|
+
if [ "${DEADMAN_DISABLE:-0}" = "1" ]; then
|
|
31
|
+
log "disabled (DEADMAN_DISABLE=1) — exiting"
|
|
32
|
+
exit 0
|
|
33
|
+
fi
|
|
34
|
+
if [ -z "${RUNPOD_API_KEY:-}" ] || [ -z "${RUNPOD_POD_ID:-}" ]; then
|
|
35
|
+
log "RUNPOD_API_KEY/RUNPOD_POD_ID not set (console-deployed pod?) — inert, exiting"
|
|
36
|
+
exit 0
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
BOOT_GRACE="${DEADMAN_BOOT_GRACE_S:-2700}" # 45min: boot + connect window
|
|
40
|
+
BEAT_GRACE="${DEADMAN_BEAT_GRACE_S:-1200}" # 20min: poll is 15s — huge slack
|
|
41
|
+
TICK="${DEADMAN_TICK_S:-60}" # check cadence (env for tests)
|
|
42
|
+
BEAT_FILE="${DEADMAN_BEAT_FILE:-/tmp/comfyui-mcp-deadman-beat}"
|
|
43
|
+
ENDPOINT="${RUNPOD_GRAPHQL_ENDPOINT:-https://api.runpod.io/graphql}"
|
|
44
|
+
START_TS="$(date +%s)"
|
|
45
|
+
# JSON parsing for the podStop verdict — grep can false-positive on
|
|
46
|
+
# {"data":{"podStop":null}} / errors[].path (codex finding); parse for real.
|
|
47
|
+
PYBIN="$([ -x "${COMFY_HOME:-/opt/ComfyUI}/venv/bin/python" ] && echo "${COMFY_HOME:-/opt/ComfyUI}/venv/bin/python" || command -v python3)"
|
|
48
|
+
|
|
49
|
+
# The container disk SURVIVES a pod stop/start, so a beat file from the previous
|
|
50
|
+
# boot can already be older than BEAT_GRACE — trust it and we'd stop the pod on
|
|
51
|
+
# the first tick instead of granting boot grace (codex finding). Always start
|
|
52
|
+
# from a clean slate: only beats fresher than THIS watchdog's start count.
|
|
53
|
+
rm -f "${BEAT_FILE}"
|
|
54
|
+
|
|
55
|
+
log "armed: boot grace ${BOOT_GRACE}s, beat grace ${BEAT_GRACE}s, tick ${TICK}s, beat file ${BEAT_FILE}"
|
|
56
|
+
|
|
57
|
+
# Exit 0 only on a PARSED, non-null podStop result with no GraphQL errors —
|
|
58
|
+
# anything else (HTTP error, {"podStop":null}, errors[].path) means the pod is
|
|
59
|
+
# still running and we must keep guarding (codex finding).
|
|
60
|
+
stop_accepted() { # $1 = raw GraphQL response body
|
|
61
|
+
[ -n "${PYBIN}" ] || return 1
|
|
62
|
+
printf '%s' "$1" | "${PYBIN}" -c '
|
|
63
|
+
import json, sys
|
|
64
|
+
try:
|
|
65
|
+
d = json.load(sys.stdin)
|
|
66
|
+
except Exception:
|
|
67
|
+
sys.exit(1)
|
|
68
|
+
ps = (d.get("data") or {}).get("podStop")
|
|
69
|
+
sys.exit(0 if (not d.get("errors") and isinstance(ps, dict) and ps.get("id")) else 1)
|
|
70
|
+
'
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
stop_pod() { # $1 = reason
|
|
74
|
+
log "STOPPING POD ${RUNPOD_POD_ID}: $1"
|
|
75
|
+
local out rc
|
|
76
|
+
out="$(curl -sS -m 20 -X POST "${ENDPOINT}" \
|
|
77
|
+
-H 'content-type: application/json' \
|
|
78
|
+
-H "authorization: Bearer ${RUNPOD_API_KEY}" \
|
|
79
|
+
-d "{\"query\":\"mutation Stop(\$input: PodStopInput!) { podStop(input: \$input) { id desiredStatus } }\",\"variables\":{\"input\":{\"podId\":\"${RUNPOD_POD_ID}\"}}}" 2>&1)"
|
|
80
|
+
rc=$?
|
|
81
|
+
log "podStop rc=${rc}: ${out}"
|
|
82
|
+
# Keep looping on failure (transient API blip must not disarm the guard);
|
|
83
|
+
# once RunPod ACCEPTS the stop the pod goes down and takes us with it.
|
|
84
|
+
if [ "${rc}" -eq 0 ] && stop_accepted "${out}"; then
|
|
85
|
+
log "stop accepted — watchdog done"
|
|
86
|
+
exit 0
|
|
87
|
+
fi
|
|
88
|
+
log "stop FAILED or unconfirmed — retrying next cycle (pod still billing!)"
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
while :; do
|
|
92
|
+
sleep "${TICK}"
|
|
93
|
+
now="$(date +%s)"
|
|
94
|
+
if [ -f "${BEAT_FILE}" ]; then
|
|
95
|
+
last_beat="$(stat -c %Y "${BEAT_FILE}" 2>/dev/null || echo "${now}")"
|
|
96
|
+
age=$(( now - last_beat ))
|
|
97
|
+
if [ "${age}" -gt "${BEAT_GRACE}" ]; then
|
|
98
|
+
stop_pod "no heartbeat for ${age}s (> ${BEAT_GRACE}s) — manager is gone"
|
|
99
|
+
fi
|
|
100
|
+
else
|
|
101
|
+
up=$(( now - START_TS ))
|
|
102
|
+
if [ "${up}" -gt "${BOOT_GRACE}" ]; then
|
|
103
|
+
stop_pod "no heartbeat received within ${BOOT_GRACE}s of boot — never managed"
|
|
104
|
+
fi
|
|
105
|
+
fi
|
|
106
|
+
done
|