comfyui-mcp 0.48.11 → 0.48.13

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.
@@ -0,0 +1,139 @@
1
+ import { listLocalModels, MODEL_SUBDIRS } from "./model-resolver.js";
2
+ import { getSystemStats } from "../comfyui/client.js";
3
+ import { config } from "../config.js";
4
+ // ---------------------------------------------------------------------------
5
+ // Local-model discovery fallback for comfy_cli_models (issue #460). The
6
+ // read-only listing actions (list-folders, list-folder, search, show) don't
7
+ // actually need the separate comfy-cli executable: the connected ComfyUI
8
+ // already exposes what's installed via its /models REST endpoint (with a
9
+ // COMFYUI_PATH filesystem scan behind it). This reproduces those actions
10
+ // directly through the existing listLocalModels() path so model discovery
11
+ // keeps working on a plain local install with no comfy-cli on PATH — mirroring
12
+ // the live /object_info fallback for comfy_cli_search_nodes (#354).
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * comfy-cli's `models search --type` maps its `--type` value to the real ComfyUI
16
+ * model folder before scanning. This mirrors comfy-cli's `_TYPE_TO_FOLDER`
17
+ * (comfy_cli/command/models/search.py) EXACTLY so a `--type` that comfy-cli
18
+ * would resolve is resolved identically here — otherwise a valid fallback search
19
+ * returns a wrong empty result. Values not in the map pass through unchanged.
20
+ */
21
+ const TYPE_ALIASES = {
22
+ checkpoint: "checkpoints",
23
+ checkpoints: "checkpoints",
24
+ lora: "loras",
25
+ loras: "loras",
26
+ vae: "vae",
27
+ controlnet: "controlnet",
28
+ upscale: "upscale_models",
29
+ upscale_models: "upscale_models",
30
+ clip: "clip",
31
+ clip_vision: "clip_vision",
32
+ unet: "diffusion_models",
33
+ diffusion: "diffusion_models",
34
+ diffusion_models: "diffusion_models",
35
+ style: "style_models",
36
+ style_models: "style_models",
37
+ embeddings: "embeddings",
38
+ hypernetworks: "hypernetworks",
39
+ gligen: "gligen",
40
+ };
41
+ function resolveModelFolder(type) {
42
+ return TYPE_ALIASES[type.toLowerCase()] ?? type;
43
+ }
44
+ export function isLocalModelsListAction(action) {
45
+ return action === "list-folders" || action === "list-folder" || action === "search" || action === "show";
46
+ }
47
+ /**
48
+ * When listLocalModels() yields nothing it may be an empty (but reachable)
49
+ * server, OR it may mean we have no usable local source at all. The latter must
50
+ * be a clear error rather than a silent empty list, so callers know to install
51
+ * comfy-cli or point at a reachable ComfyUI. A local COMFYUI_PATH always counts
52
+ * as a source; otherwise we probe the connected server cheaply via system_stats.
53
+ */
54
+ async function assertLocalSourceAvailable() {
55
+ if (config.comfyuiPath)
56
+ return;
57
+ try {
58
+ await getSystemStats();
59
+ return; // server reachable — an empty result is a legitimate answer
60
+ }
61
+ catch {
62
+ throw new Error("comfy-cli was not found and no local model source is available: COMFYUI_PATH is unset and the connected ComfyUI server is unreachable. " +
63
+ "Install comfy-cli>=1.11.1 (or set COMFY_CLI_PATH), set COMFYUI_PATH, or connect to a running ComfyUI server.");
64
+ }
65
+ }
66
+ /**
67
+ * Serve a read-only comfy_cli_models listing action from the connected
68
+ * ComfyUI's local models (via listLocalModels), for use when comfy-cli is
69
+ * absent. Throws when a required argument is missing (mirrors the CLI path).
70
+ */
71
+ export async function listLocalModelsFallback(args) {
72
+ switch (args.action) {
73
+ case "list-folders": {
74
+ // comfy `models list-folders` reports the model folder names. We list
75
+ // the folders that actually contain at least one model, keeping the
76
+ // canonical ordering of MODEL_SUBDIRS.
77
+ const models = await listLocalModels();
78
+ if (models.length === 0)
79
+ await assertLocalSourceAvailable();
80
+ const present = new Set(models.map((m) => m.type));
81
+ const folders = MODEL_SUBDIRS.filter((f) => present.has(f));
82
+ return { command: "models list-folders", data: { folders } };
83
+ }
84
+ case "list-folder": {
85
+ if (!args.folder)
86
+ throw new Error("folder is required for list-folder");
87
+ const folder = resolveModelFolder(args.folder);
88
+ const models = await listLocalModels(folder);
89
+ if (models.length === 0)
90
+ await assertLocalSourceAvailable();
91
+ let files = models.map((m) => m.name);
92
+ // comfy-cli forwards `--limit` for list-folder; cap the same way.
93
+ if (args.limit && args.limit > 0)
94
+ files = files.slice(0, args.limit);
95
+ return { command: `models list-folder ${folder}`, data: { folder, count: files.length, files } };
96
+ }
97
+ case "search": {
98
+ // Map the CLI's singular `--type` alias to the real folder before scanning.
99
+ const models = await listLocalModels(args.type ? resolveModelFolder(args.type) : undefined);
100
+ if (models.length === 0)
101
+ await assertLocalSourceAvailable();
102
+ const needle = (args.text ?? "").trim().toLowerCase();
103
+ let hits = needle ? models.filter((m) => m.name.toLowerCase().includes(needle)) : models;
104
+ if (args.limit && args.limit > 0)
105
+ hits = hits.slice(0, args.limit);
106
+ const results = hits.map((m) => ({ name: m.name, type: m.type, path: m.path }));
107
+ return { command: "models search", data: { count: results.length, results } };
108
+ }
109
+ case "show": {
110
+ if (!args.name)
111
+ throw new Error("name is required for show");
112
+ const models = await listLocalModels();
113
+ if (models.length === 0)
114
+ await assertLocalSourceAvailable();
115
+ const needle = args.name.toLowerCase();
116
+ // comfy `models show <name>` addresses a specific model by name — return
117
+ // the EXACT (case-insensitive) match only. A substring guess would report
118
+ // an arbitrary model (e.g. show "flux" picking one of several), so no
119
+ // exact match is a clear not-found.
120
+ const match = models.find((m) => m.name.toLowerCase() === needle);
121
+ if (!match)
122
+ throw new Error(`Model '${args.name}' was not found among the connected ComfyUI's local models.`);
123
+ return {
124
+ command: `models show ${args.name}`,
125
+ data: {
126
+ name: match.name,
127
+ type: match.type,
128
+ path: match.path,
129
+ size: match.size,
130
+ modified: match.modified,
131
+ ...(match.baseModel ? { baseModel: match.baseModel } : {}),
132
+ ...(match.triggerWords?.length ? { triggerWords: match.triggerWords } : {}),
133
+ ...(match.civitaiUrl ? { civitaiUrl: match.civitaiUrl } : {}),
134
+ },
135
+ };
136
+ }
137
+ }
138
+ }
139
+ //# sourceMappingURL=local-models-fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-models-fallback.js","sourceRoot":"","sources":["../../src/services/local-models-fallback.ts"],"names":[],"mappings":"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"}
@@ -22,30 +22,88 @@ let supervisorGaveUp = false;
22
22
  // Cross-platform helpers
23
23
  // ---------------------------------------------------------------------------
24
24
  const IS_WIN = platform() === "win32";
25
+ /**
26
+ * Parse a `netstat -ano` blob and return the PID that OWNS the socket bound to
27
+ * `port` on the LOCAL address column. Locale-independent by design (issue #449):
28
+ * we anchor on the local-address `:PORT` suffix rather than grepping the state
29
+ * word ("LISTENING"), which is TRANSLATED on non-English Windows (German
30
+ * "ABHÖREN", French "À L'ÉCOUTE", …). The old `findstr LISTENING` filter dropped
31
+ * every line on those systems, so a perfectly reachable ComfyUI looked like "no
32
+ * process on port". Anchoring on the local column also correctly IGNORES an
33
+ * outbound/established connection whose REMOTE peer happens to use `:PORT`.
34
+ *
35
+ * Exported for tests: this pure function is where the bug lived.
36
+ */
37
+ export function parseListenerPidFromNetstat(output, port) {
38
+ const suffix = `:${port}`;
39
+ for (const raw of output.split(/\r?\n/)) {
40
+ const line = raw.trim();
41
+ if (!line)
42
+ continue;
43
+ const parts = line.split(/\s+/);
44
+ // Expected columns: PROTO LOCAL FOREIGN STATE PID
45
+ if (parts.length < 5)
46
+ continue;
47
+ if (parts[0].toUpperCase() !== "TCP")
48
+ continue;
49
+ const local = parts[1];
50
+ const foreign = parts[2];
51
+ // The leading colon anchors the match: "…:8188" matches but "…:81880" and
52
+ // "…:18188" do not (their last chars aren't ":8188").
53
+ if (!local.endsWith(suffix))
54
+ continue;
55
+ // Require a LISTENING row without depending on the localized state word: a
56
+ // listener's foreign endpoint is always the wildcard port 0 (0.0.0.0:0 /
57
+ // [::]:0). This rejects an ESTABLISHED connection that merely bound its
58
+ // local side to :PORT — killing that would take down the wrong process
59
+ // (or none) when ComfyUI is actually down.
60
+ if (!foreign.endsWith(":0"))
61
+ continue;
62
+ const pid = parseInt(parts[parts.length - 1], 10);
63
+ if (!Number.isNaN(pid) && pid > 0)
64
+ return pid;
65
+ }
66
+ return null;
67
+ }
25
68
  function findPidByPort(port) {
26
- try {
27
- if (IS_WIN) {
28
- // netstat -ano | findstr :PORT | findstr LISTENING
29
- const out = execSync(`netstat -ano | findstr :${port} | findstr LISTENING`, { encoding: "utf-8", timeout: 5000 }).trim();
30
- // Lines look like: TCP 0.0.0.0:8188 0.0.0.0:0 LISTENING 12345
31
- for (const line of out.split("\n")) {
32
- const parts = line.trim().split(/\s+/);
33
- if (parts.length >= 5) {
34
- const pid = parseInt(parts[parts.length - 1], 10);
35
- if (!isNaN(pid) && pid > 0)
36
- return pid;
37
- }
38
- }
39
- }
40
- else {
41
- const out = execSync(`lsof -ti :${port}`, {
69
+ if (IS_WIN) {
70
+ // Parse `netstat -ano` ourselves instead of piping through
71
+ // `findstr LISTENING` — that state word is localized and made detection fail
72
+ // on non-English Windows even when ComfyUI was reachable (issue #449).
73
+ try {
74
+ const out = execSync(`netstat -ano -p TCP`, {
42
75
  encoding: "utf-8",
43
76
  timeout: 5000,
44
- }).trim();
45
- const pid = parseInt(out.split("\n")[0], 10);
46
- if (!isNaN(pid) && pid > 0)
77
+ });
78
+ const pid = parseListenerPidFromNetstat(out, port);
79
+ if (pid)
80
+ return pid;
81
+ }
82
+ catch {
83
+ // netstat unavailable / failed — fall through to the PowerShell probe.
84
+ }
85
+ // Fallback: Get-NetTCPConnection maps port→owning PID structurally, with no
86
+ // dependence on console locale or column layout. Belt-and-suspenders for the
87
+ // portable/embedded-Python launch shape reported in #449.
88
+ try {
89
+ const out = execSync(`powershell -NoProfile -Command "Get-NetTCPConnection -LocalPort ${port} -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty OwningProcess"`, { encoding: "utf-8", timeout: 8000 }).trim();
90
+ const pid = parseInt(out, 10);
91
+ if (!Number.isNaN(pid) && pid > 0)
47
92
  return pid;
48
93
  }
94
+ catch {
95
+ // PowerShell unavailable / nothing listening.
96
+ }
97
+ return null;
98
+ }
99
+ try {
100
+ const out = execSync(`lsof -ti :${port}`, {
101
+ encoding: "utf-8",
102
+ timeout: 5000,
103
+ }).trim();
104
+ const pid = parseInt(out.split("\n")[0], 10);
105
+ if (!isNaN(pid) && pid > 0)
106
+ return pid;
49
107
  }
50
108
  catch {
51
109
  // Command failed — no process on that port
@@ -538,21 +596,31 @@ function assessRelaunch(info) {
538
596
  */
539
597
  async function acquireProcessInfo() {
540
598
  try {
541
- return await gatherProcessInfo();
599
+ return { info: await gatherProcessInfo() };
542
600
  }
543
- catch {
601
+ catch (err) {
602
+ // #449: the server answered /system_stats but we could not map its port to
603
+ // a PID. Do NOT fall through to killing a Desktop shell we can't confirm
604
+ // owns :PORT — surface the diagnostic and leave everything untouched.
605
+ if (err instanceof ProcessControlError && err.reachableButNoPid) {
606
+ return { info: null, diagnostic: err.message };
607
+ }
544
608
  const desktopPids = findDesktopAppPids();
545
609
  if (desktopPids.length > 0) {
546
610
  logger.info(`API unreachable but found Desktop app PIDs: ${desktopPids.join(", ")}`);
547
611
  return {
548
- pid: desktopPids[0],
549
- port: config.resolvedPort,
550
- argv: [],
551
- isDesktopApp: true,
552
- desktopExePath: findDesktopExeFromCommonPaths(),
612
+ info: {
613
+ pid: desktopPids[0],
614
+ port: config.resolvedPort,
615
+ argv: [],
616
+ isDesktopApp: true,
617
+ desktopExePath: findDesktopExeFromCommonPaths(),
618
+ },
553
619
  };
554
620
  }
555
- return null;
621
+ // Genuinely down (not reachable, no Desktop shell): let callers use their
622
+ // existing friendly "no process" message.
623
+ return { info: null };
556
624
  }
557
625
  }
558
626
  function handleSupervisedChildStop(child, reason) {
@@ -632,6 +700,18 @@ async function gatherProcessInfo() {
632
700
  // 2. Find PID by port
633
701
  const pid = findPidByPort(port);
634
702
  if (!pid) {
703
+ // Liveness is the reachable SERVER, not only a local PID scan. If
704
+ // /system_stats just answered (argv populated) yet we still can't map the
705
+ // listening socket to a PID, say so precisely instead of claiming the
706
+ // process doesn't exist (issue #449).
707
+ if (argv.length > 0) {
708
+ const reachableErr = new ProcessControlError(`ComfyUI is reachable on port ${port} but its listening process could not ` +
709
+ `be mapped to a local PID (port-owner lookup failed). The server was left ` +
710
+ `untouched. On a portable/embedded-Python install, restart it via its ` +
711
+ `launcher/console or trigger a ComfyUI-Manager reboot.`);
712
+ reachableErr.reachableButNoPid = true;
713
+ throw reachableErr;
714
+ }
635
715
  throw new ProcessControlError(`No process found listening on port ${port}. Is ComfyUI running?`);
636
716
  }
637
717
  const desktop = isDesktopApp(argv);
@@ -650,11 +730,18 @@ export async function stopComfyUI(preInfo) {
650
730
  detachSupervisor();
651
731
  // Gather info before we kill it (or reuse the caller's pre-validated info so a
652
732
  // relaunch preflight in restartComfyUI is not discarded).
653
- const info = preInfo ?? (await acquireProcessInfo());
733
+ let info = preInfo ?? null;
734
+ let acquireDiagnostic;
735
+ if (!info) {
736
+ const acquired = await acquireProcessInfo();
737
+ info = acquired.info;
738
+ acquireDiagnostic = acquired.diagnostic;
739
+ }
654
740
  if (!info) {
655
741
  return {
656
742
  stopped: false,
657
- message: `No ComfyUI process found on port ${config.resolvedPort}. Is ComfyUI running?`,
743
+ message: acquireDiagnostic ??
744
+ `No ComfyUI process found on port ${config.resolvedPort}. Is ComfyUI running?`,
658
745
  has_restart_info: false,
659
746
  };
660
747
  }
@@ -924,12 +1011,13 @@ export async function restartComfyUI() {
924
1011
  // command can't be built/validated (stale COMFYUI_PATH, unknown Desktop exe),
925
1012
  // refuse and leave the server up rather than take it down with no way back
926
1013
  // (issues #368/#370).
927
- const info = await acquireProcessInfo();
1014
+ const { info, diagnostic } = await acquireProcessInfo();
928
1015
  if (!info) {
929
1016
  return {
930
1017
  stopped: false,
931
1018
  started: false,
932
- message: `No ComfyUI process found on port ${config.resolvedPort} to restart. Is ComfyUI running?`,
1019
+ message: diagnostic ??
1020
+ `No ComfyUI process found on port ${config.resolvedPort} to restart. Is ComfyUI running?`,
933
1021
  };
934
1022
  }
935
1023
  const relaunch = assessRelaunch(info);
@@ -1 +1 @@
1
- {"version":3,"file":"process-control.js","sourceRoot":"","sources":["../../src/services/process-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-control.js","sourceRoot":"","sources":["../../src/services/process-control.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { createReadStream, createWriteStream } from "node:fs";
2
+ import { stat } from "node:fs/promises";
2
3
  import { pipeline } from "node:stream/promises";
3
4
  import { ModelError, ValidationError } from "../../utils/errors.js";
4
5
  import { requireOptionalDep } from "../../utils/optional-dep.js";
@@ -119,6 +120,16 @@ export async function downloadAzureBlobToFile(url, targetPath) {
119
120
  });
120
121
  }
121
122
  await pipeline(response.readableStreamBody, createWriteStream(targetPath));
123
+ // #343 edge: verify the written size against the blob's authoritative
124
+ // contentLength so an early-ending stream can't be reported as a complete
125
+ // download (silent truncation).
126
+ const expected = typeof response.contentLength === "number" ? response.contentLength : 0;
127
+ if (expected > 0) {
128
+ const actual = (await stat(targetPath)).size;
129
+ if (actual < expected) {
130
+ throw new ModelError(`Azure Blob download truncated: wrote ${actual} of ${expected} bytes — the stream ended early. Not complete; retry.`, { url: redactUrlForLogs(url) });
131
+ }
132
+ }
122
133
  }
123
134
  catch (err) {
124
135
  if (err instanceof ModelError || err instanceof ValidationError)
@@ -1 +1 @@
1
- {"version":3,"file":"azure-blob.js","sourceRoot":"","sources":["../../../src/services/storage/azure-blob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azure-blob.js","sourceRoot":"","sources":["../../../src/services/storage/azure-blob.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { createReadStream } from "node:fs";
2
2
  import { createWriteStream } from "node:fs";
3
+ import { stat } from "node:fs/promises";
3
4
  import { pipeline } from "node:stream/promises";
4
5
  import { ModelError, ValidationError } from "../../utils/errors.js";
5
6
  import { requireOptionalDep } from "../../utils/optional-dep.js";
@@ -54,6 +55,17 @@ export async function downloadS3ToFile(url, targetPath, auth) {
54
55
  throw new ModelError("S3 download response has no body", { url: redactUrlForLogs(url) });
55
56
  }
56
57
  await pipeline(bodyToReadable(response.Body), createWriteStream(targetPath));
58
+ // #343 edge: the S3 stream can end early (dropped connection) and pipeline()
59
+ // still resolves, leaving a truncated file. S3 tells us the authoritative
60
+ // object size in ContentLength — verify the bytes on disk match before this
61
+ // download can ever be reported as successful.
62
+ const expected = typeof response.ContentLength === "number" ? response.ContentLength : 0;
63
+ if (expected > 0) {
64
+ const actual = (await stat(targetPath)).size;
65
+ if (actual < expected) {
66
+ throw new ModelError(`S3 download truncated: wrote ${actual} of ${expected} bytes — the stream ended early. Not complete; retry.`, { url: redactUrlForLogs(url) });
67
+ }
68
+ }
57
69
  }
58
70
  catch (err) {
59
71
  if (err instanceof ModelError || err instanceof ValidationError)
@@ -1 +1 @@
1
- {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/services/storage/s3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/services/storage/s3.ts"],"names":[],"mappings":"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"}