comfyui-mcp 0.34.0 → 0.35.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/dist/config.js +40 -1
- package/dist/config.js.map +1 -1
- package/dist/orchestrator/index.js +23 -3
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/panel-agent.js +5 -0
- package/dist/orchestrator/panel-agent.js.map +1 -1
- package/dist/orchestrator/panel-tools.js +73 -0
- package/dist/orchestrator/panel-tools.js.map +1 -1
- package/dist/services/civitai-resolver.js +168 -22
- package/dist/services/civitai-resolver.js.map +1 -1
- package/dist/services/flatten-workflow.js +237 -0
- package/dist/services/flatten-workflow.js.map +1 -0
- package/dist/services/ui-bridge.js +240 -9
- package/dist/services/ui-bridge.js.map +1 -1
- package/dist/tools/model-extras.js +126 -8
- package/dist/tools/model-extras.js.map +1 -1
- package/package.json +1 -1
|
@@ -203,10 +203,37 @@ export async function resolveCivitaiModel(modelId, versionId) {
|
|
|
203
203
|
return resolveFromVersion(version, model);
|
|
204
204
|
}
|
|
205
205
|
const CIVITAI_SORTS = ["Highest Rated", "Most Downloaded", "Newest"];
|
|
206
|
+
function toSearchHit(m) {
|
|
207
|
+
const v = m.modelVersions?.[0];
|
|
208
|
+
const file = v ? pickFile(v) : undefined;
|
|
209
|
+
const sizeKb = file?.sizeKB;
|
|
210
|
+
return {
|
|
211
|
+
model_id: m.id,
|
|
212
|
+
name: m.name ?? `model ${m.id}`,
|
|
213
|
+
type: m.type,
|
|
214
|
+
creator: m.creator?.username,
|
|
215
|
+
downloads: m.stats?.downloadCount,
|
|
216
|
+
thumbs_up: m.stats?.thumbsUpCount,
|
|
217
|
+
nsfw: m.nsfw,
|
|
218
|
+
version_id: v?.id,
|
|
219
|
+
version_name: v?.name,
|
|
220
|
+
base_model: v?.baseModel,
|
|
221
|
+
trained_words: v?.trainedWords?.slice(0, 6),
|
|
222
|
+
...(sizeKb ? { size_mb: Math.round(sizeKb / 1024) } : {}),
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
/** Creator+keyword mode: pages of 100 scanned client-side, and how many pages
|
|
226
|
+
* to follow before giving up (4 → up to 400 of the creator's models). */
|
|
227
|
+
const CREATOR_SCAN_PAGE_SIZE = 100;
|
|
228
|
+
const CREATOR_SCAN_MAX_PAGES = 4;
|
|
206
229
|
export async function searchCivitaiModels(query, opts = {}) {
|
|
230
|
+
const creator = opts.creator?.trim();
|
|
231
|
+
const keyword = query.trim();
|
|
232
|
+
if (!creator && !keyword) {
|
|
233
|
+
throw new ValidationError("Provide a query, a creator, or both.");
|
|
234
|
+
}
|
|
235
|
+
const limit = Math.min(Math.max(opts.limit ?? 10, 1), 25);
|
|
207
236
|
const params = new URLSearchParams();
|
|
208
|
-
params.set("query", query);
|
|
209
|
-
params.set("limit", String(Math.min(Math.max(opts.limit ?? 10, 1), 25)));
|
|
210
237
|
params.set("sort", opts.sort ?? "Highest Rated");
|
|
211
238
|
// Civitai defaults to including NSFW for authed accounts — pin it explicitly
|
|
212
239
|
// so results are SFW unless the caller opted in.
|
|
@@ -215,25 +242,144 @@ export async function searchCivitaiModels(query, opts = {}) {
|
|
|
215
242
|
params.append("types", t);
|
|
216
243
|
for (const b of opts.baseModels ?? [])
|
|
217
244
|
params.append("baseModels", b);
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
245
|
+
if (!creator || !keyword) {
|
|
246
|
+
// Single-page modes: a plain keyword search, or ALL of a creator's models.
|
|
247
|
+
if (creator) {
|
|
248
|
+
params.set("username", creator);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
params.set("query", keyword);
|
|
252
|
+
}
|
|
253
|
+
params.set("limit", String(limit));
|
|
254
|
+
const data = await civitaiGet(`/models?${params.toString()}`);
|
|
255
|
+
return { hits: (data.items ?? []).slice(0, limit).map(toSearchHit) };
|
|
256
|
+
}
|
|
257
|
+
// Creator + keyword: `query` + `username` together return an EMPTY page
|
|
258
|
+
// (live-verified), so send only `username` and apply the keyword client-side
|
|
259
|
+
// — following cursor pagination (bounded) so a prolific creator's matching
|
|
260
|
+
// model past the first page is still found.
|
|
261
|
+
params.set("username", creator);
|
|
262
|
+
params.set("limit", String(CREATOR_SCAN_PAGE_SIZE));
|
|
263
|
+
const q = keyword.toLowerCase();
|
|
264
|
+
const matches = [];
|
|
265
|
+
const seenIds = new Set();
|
|
266
|
+
// Every cursor already followed — refuses ANY cycle (immediate repeat AND
|
|
267
|
+
// longer A→B→A loops), not just the previous cursor.
|
|
268
|
+
const seenCursors = new Set();
|
|
269
|
+
let scanned = 0;
|
|
270
|
+
let cursor;
|
|
271
|
+
// True when the scan stopped with pages plausibly unseen: the page cap was
|
|
272
|
+
// hit with a next cursor remaining, or the API handed back a degenerate
|
|
273
|
+
// (cycling) cursor we refuse to follow.
|
|
274
|
+
let stoppedEarly = false;
|
|
275
|
+
for (let page = 0; page < CREATOR_SCAN_MAX_PAGES; page++) {
|
|
276
|
+
if (cursor !== undefined)
|
|
277
|
+
params.set("cursor", cursor);
|
|
278
|
+
const data = await civitaiGet(`/models?${params.toString()}`);
|
|
279
|
+
// Dedupe across pages by model id — a misbehaving cursor that replays a
|
|
280
|
+
// page must not double-count `scanned` or fill `limit` with duplicates.
|
|
281
|
+
const items = (data.items ?? []).filter((m) => !seenIds.has(m.id));
|
|
282
|
+
for (const m of items)
|
|
283
|
+
seenIds.add(m.id);
|
|
284
|
+
scanned += items.length;
|
|
285
|
+
matches.push(...items.filter((m) => (m.name ?? "").toLowerCase().includes(q) ||
|
|
286
|
+
(m.tags ?? []).some((t) => t.toLowerCase().includes(q))));
|
|
287
|
+
// Falsy (missing OR empty-string) cursor → the catalog is exhausted; a
|
|
288
|
+
// cursor we ALREADY followed (immediate repeat or a longer cycle) would
|
|
289
|
+
// page in circles forever → treat as stuck.
|
|
290
|
+
const next = data.metadata?.nextCursor || undefined;
|
|
291
|
+
if (!next)
|
|
292
|
+
break;
|
|
293
|
+
if (seenCursors.has(next)) {
|
|
294
|
+
stoppedEarly = true; // cycling cursor: pages may remain unseen
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
297
|
+
seenCursors.add(next);
|
|
298
|
+
cursor = next;
|
|
299
|
+
if (matches.length >= limit)
|
|
300
|
+
break;
|
|
301
|
+
if (page === CREATOR_SCAN_MAX_PAGES - 1)
|
|
302
|
+
stoppedEarly = true; // page cap, more remained
|
|
303
|
+
}
|
|
304
|
+
return {
|
|
305
|
+
hits: matches.slice(0, limit).map(toSearchHit),
|
|
306
|
+
scanned,
|
|
307
|
+
scanCapped: stoppedEarly && matches.length < limit,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
const CIVITAI_LEADERBOARDS = [
|
|
311
|
+
"overall",
|
|
312
|
+
"overall_90",
|
|
313
|
+
"overall_nsfw",
|
|
314
|
+
"new_creators",
|
|
315
|
+
];
|
|
316
|
+
function creatorProfileUrl(username) {
|
|
317
|
+
return `https://civitai.com/user/${encodeURIComponent(username)}`;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Search CivitAI creators by (partial) username via GET /api/v1/creators.
|
|
321
|
+
* Returns matching creators plus the API's total match count.
|
|
322
|
+
*/
|
|
323
|
+
export async function searchCivitaiCreators(query, opts = {}) {
|
|
324
|
+
const params = new URLSearchParams();
|
|
325
|
+
params.set("query", query);
|
|
326
|
+
params.set("limit", String(Math.min(Math.max(opts.limit ?? 10, 1), 50)));
|
|
327
|
+
const data = await civitaiGet(`/creators?${params.toString()}`);
|
|
328
|
+
const hits = (data.items ?? [])
|
|
329
|
+
.filter((c) => !!c.username)
|
|
330
|
+
.map((c) => ({
|
|
331
|
+
username: c.username,
|
|
332
|
+
profile_url: creatorProfileUrl(c.username),
|
|
333
|
+
model_count: c.modelCount ?? 0,
|
|
334
|
+
}));
|
|
335
|
+
return { hits, total: data.metadata?.totalItems };
|
|
336
|
+
}
|
|
337
|
+
/** Browser-shaped headers for the tRPC leaderboard request (see section note). */
|
|
338
|
+
const TRPC_BROWSER_HEADERS = {
|
|
339
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " +
|
|
340
|
+
"(KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
|
|
341
|
+
Referer: "https://civitai.com/",
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Fetch a CivitAI creator leaderboard (the site's civitai.com/leaderboard
|
|
345
|
+
* ranking). `board` picks which one: "overall" (default), "overall_90",
|
|
346
|
+
* "overall_nsfw", or "new_creators".
|
|
347
|
+
*/
|
|
348
|
+
export async function fetchCivitaiTopCreators(opts = {}) {
|
|
349
|
+
if (civitaiDisabled()) {
|
|
350
|
+
throw new ModelError(CIVITAI_DISABLED_MESSAGE);
|
|
351
|
+
}
|
|
352
|
+
const board = opts.board ?? "overall";
|
|
353
|
+
const limit = Math.min(Math.max(opts.limit ?? 10, 1), 100);
|
|
354
|
+
const input = encodeURIComponent(JSON.stringify({ json: { id: board } }));
|
|
355
|
+
const url = `https://civitai.com/api/trpc/leaderboard.getLeaderboard?input=${input}`;
|
|
356
|
+
logger.debug("CivitAI leaderboard request", { url });
|
|
357
|
+
// No bearer token here: the leaderboard is public and the API token belongs
|
|
358
|
+
// to the documented v1 surface, not the site's tRPC endpoints.
|
|
359
|
+
const res = await fetch(url, { headers: TRPC_BROWSER_HEADERS });
|
|
360
|
+
if (!res.ok) {
|
|
361
|
+
const body = await res.text().catch(() => "");
|
|
362
|
+
throw new ModelError(`CivitAI leaderboard ${res.status}: ${res.statusText}`, {
|
|
363
|
+
url,
|
|
364
|
+
status: res.status,
|
|
365
|
+
body,
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
const data = (await res.json());
|
|
369
|
+
const entries = data.result?.data?.json ?? [];
|
|
370
|
+
const metric = (e, type) => e.metrics?.find((m) => m.type === type)?.value;
|
|
371
|
+
return entries
|
|
372
|
+
.filter((e) => e.user?.username && !e.user.deletedAt)
|
|
373
|
+
.slice(0, limit)
|
|
374
|
+
.map((e) => ({
|
|
375
|
+
username: e.user.username,
|
|
376
|
+
profile_url: creatorProfileUrl(e.user.username),
|
|
377
|
+
position: e.position,
|
|
378
|
+
score: e.score,
|
|
379
|
+
downloads: metric(e, "downloadCount"),
|
|
380
|
+
thumbs_up: metric(e, "thumbsUpCount"),
|
|
381
|
+
generations: metric(e, "generationCount"),
|
|
382
|
+
entries: metric(e, "entries"),
|
|
383
|
+
}));
|
|
238
384
|
}
|
|
239
385
|
//# sourceMappingURL=civitai-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"civitai-resolver.js","sourceRoot":"","sources":["../../src/services/civitai-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"civitai-resolver.js","sourceRoot":"","sources":["../../src/services/civitai-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAmGtD,SAAS,WAAW;IAClB,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,eAAe,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,UAAU,CAAI,IAAY;IACvC,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,gBAAgB,GAAG,IAAI,EAAE,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAAC,+BAA+B,IAAI,EAAE,EAAE;YAC1D,GAAG;YACH,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,UAAU,CAAC,eAAe,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,EAAE;YACnE,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;AACjC,CAAC;AAED,oFAAoF;AACpF,SAAS,QAAQ,CAAC,OAA4B;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,uFAAuF;AACvF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,aAAa,CAAC,OAA4B;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAClC,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;KACrB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CACpB,OAA4B,EAC5B,IAA6B,EAC7B,KAAoB;IAEpB,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,OAAO;QACvB,CAAC,CAAC,8BAA8B,OAAO,mBAAmB,OAAO,CAAC,EAAE,EAAE;QACtE,CAAC,CAAC,sCAAsC,OAAO,CAAC,EAAE,EAAE,CAAC;IACvD,OAAO;QACL,OAAO;QACP,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI;QAC7C,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI;QAC7C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ;QACjC,IAAI,EAAE,KAAK,EAAE,IAAI;QACjB,oBAAoB,EAAE,KAAK,EAAE,WAAW;QACxC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,sBAAsB,EAAE,OAAO,CAAC,WAAW;QAC3C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACxC,QAAQ,EAAE,IAAI,EAAE,IAAI;QACpB,UAAU,EAAE,IAAI,EAAE,MAAM;QACxB,SAAS;QACT,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAA4B,EAC5B,KAAoB;IAEpB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,WAAW,GACf,IAAI,EAAE,WAAW;QACjB,OAAO,CAAC,WAAW;QACnB,2CAA2C,OAAO,CAAC,EAAE,EAAE,CAAC;IAE1D,OAAO;QACL,WAAW;QACX,QAAQ,EAAE,IAAI,EAAE,IAAI;QACpB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI;QAC7C,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,mBAAmB,SAAS,EAAE,CAC/B,CAAC;IACF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAkB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,eAAe,EAAE,CAAC,CAAC;IAClD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAEzC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACvD,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAE3D,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAC3D,IAAI,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAChD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CACR,uGAAuG,CACxG,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC,GAAG;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,IAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED;+DAC+D;AAC/D,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,KAAK,GAAG;QACZ,QAAQ;QACR,gBAAgB;QAChB,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,oBAAoB;QACpB,WAAW;KACZ,CAAC;IACF,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAU,EAAE,EAAE;QACrC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO;QACtD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,sCAAsC;QACzE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,IAAI,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,SAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,UAAU,CAAe,WAAW,OAAO,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;IAE3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,iBAAiB,OAAO,gCAAgC,EACxD,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,CAAC;IAED,IAAI,OAAwC,CAAC;IAC7C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CACvB,SAAS,OAAO,2BAA2B,SAAS,IAAI;gBACtD,uBAAuB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AA4BD,MAAM,aAAa,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,QAAQ,CAAU,CAAC;AAsC9E,SAAS,WAAW,CAAC,CAAoB;IACvC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzC,MAAM,MAAM,GAAI,IAAwC,EAAE,MAAM,CAAC;IACjE,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE;QAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ;QAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa;QACjC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa;QACjC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,EAAE,EAAE;QACjB,YAAY,EAAE,CAAC,EAAE,IAAI;QACrB,UAAU,EAAE,CAAC,EAAE,SAAS;QACxB,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;0EAC0E;AAC1E,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAa,EACb,OAA6B,EAAE;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IACjD,6EAA6E;IAC7E,iDAAiD;IACjD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;QAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE;QAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAEtE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,2EAA2E;QAC3E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAwB,WAAW,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,wEAAwE;IACxE,6EAA6E;IAC7E,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAA0B,CAAC;IAC/B,2EAA2E;IAC3E,wEAAwE;IACxE,wCAAwC;IACxC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,sBAAsB,EAAE,IAAI,EAAE,EAAE,CAAC;QACzD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAwB,WAAW,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrF,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;QACxB,OAAO,CAAC,IAAI,CACV,GAAG,KAAK,CAAC,MAAM,CACb,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC1D,CACF,CAAC;QACF,uEAAuE;QACvE,wEAAwE;QACxE,4CAA4C;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,IAAI,SAAS,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,MAAM;QACjB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,YAAY,GAAG,IAAI,CAAC,CAAC,0CAA0C;YAC/D,MAAM;QACR,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,GAAG,IAAI,CAAC;QACd,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;QACnC,IAAI,IAAI,KAAK,sBAAsB,GAAG,CAAC;YAAE,YAAY,GAAG,IAAI,CAAC,CAAC,0BAA0B;IAC1F,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QAC9C,OAAO;QACP,UAAU,EAAE,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK;KACnD,CAAC;AACJ,CAAC;AAgCD,MAAM,oBAAoB,GAAG;IAC3B,SAAS;IACT,YAAY;IACZ,cAAc;IACd,cAAc;CACN,CAAC;AAGX,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,4BAA4B,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpE,CAAC;AAOD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAa,EACb,OAA2B,EAAE;IAE7B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,aAAa,MAAM,CAAC,QAAQ,EAAE,EAAE,CACjC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAkD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1C,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC;KAC/B,CAAC,CAAC,CAAC;IACN,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;AACpD,CAAC;AAED,kFAAkF;AAClF,MAAM,oBAAoB,GAA2B;IACnD,YAAY,EACV,+DAA+D;QAC/D,oDAAoD;IACtD,OAAO,EAAE,sBAAsB;CAChC,CAAC;AASF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuD,EAAE;IAEzD,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,iEAAiE,KAAK,EAAE,CAAC;IACrF,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAErD,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,UAAU,CAAC,uBAAuB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,EAAE;YAC3E,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,CAA0B,EAAE,IAAY,EAAE,EAAE,CAC1D,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;IACjD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;SACpD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,CAAC,CAAC,IAAK,CAAC,QAAS;QAC3B,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAK,CAAC,QAAS,CAAC;QACjD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC;QACrC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC;QACzC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC;KAC9B,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
// In-place workflow flattener: resolve virtual wiring — rgthree/KJ Get/Set
|
|
2
|
+
// buses, Reroutes, and cg-use-everywhere (UE) broadcast links — into direct
|
|
3
|
+
// real links on the ORIGINAL UI graph, deleting the now-dead virtual nodes.
|
|
4
|
+
//
|
|
5
|
+
// This deliberately does NOT round-trip through the API converter
|
|
6
|
+
// (convertUiToApi → convertApiToUi): that regenerates the layout and throws
|
|
7
|
+
// away everything the author arranged. Litegraph groups are geometric (a
|
|
8
|
+
// titled bounding box — no node membership), so by never moving a kept node,
|
|
9
|
+
// positions/sizes/colors/groups/titles are preserved for free; the only
|
|
10
|
+
// visible change is the deleted virtual nodes leaving empty space.
|
|
11
|
+
//
|
|
12
|
+
// UE resolution strategy (see docs in the panel_flatten_workflow tool):
|
|
13
|
+
// 1. `extra.ue_links` — cg-use-everywhere writes its computed broadcast
|
|
14
|
+
// links there on every graph analysis, as objects
|
|
15
|
+
// { downstream, downstream_slot, upstream, upstream_slot, controller, type }
|
|
16
|
+
// where `upstream` is already the REAL producer (for Seed Everywhere the
|
|
17
|
+
// controller IS the producer — it owns the seed widget). Materializing
|
|
18
|
+
// these is the pack's own ground truth: zero re-implementation.
|
|
19
|
+
// 2. If UE sender nodes exist but ue_links is absent/stale → warn and leave
|
|
20
|
+
// those senders in place (never guess a broadcast match).
|
|
21
|
+
//
|
|
22
|
+
// Unlike the API converter, the resolver here stops at ANY real node
|
|
23
|
+
// regardless of mode: muted/bypassed toggle branches are the author's state
|
|
24
|
+
// and a wiring-only flatten must not collapse or drop them.
|
|
25
|
+
const GET_SET_TYPES = new Set([
|
|
26
|
+
"GetNode", "SetNode", "PRO_GetNode", "PRO_SetNode",
|
|
27
|
+
"SetNode_GetNode", "SetNode_SetNode",
|
|
28
|
+
]);
|
|
29
|
+
const isGetType = (t) => GET_SET_TYPES.has(t) && /get/i.test(t);
|
|
30
|
+
const isSetType = (t) => GET_SET_TYPES.has(t) && /set/i.test(t) && !/get/i.test(t);
|
|
31
|
+
const isRerouteType = (t) => t === "Reroute";
|
|
32
|
+
/** Wiring-only virtual node: exists purely to carry a connection. */
|
|
33
|
+
const isWiringVirtual = (t) => isRerouteType(t) || GET_SET_TYPES.has(t);
|
|
34
|
+
/** cg-use-everywhere sender detection — mirrors the pack's own is_UEnode(). */
|
|
35
|
+
export const isUeSender = (t) => t.startsWith("Anything Everywhere") || t === "Seed Everywhere" || t === "Prompts Everywhere";
|
|
36
|
+
/**
|
|
37
|
+
* Flatten a UI workflow in place (on a deep copy): every consumer input fed
|
|
38
|
+
* through virtual wiring gets a fresh direct link to its real producer, UE
|
|
39
|
+
* broadcasts become real links, and the virtual nodes are deleted. Kept nodes
|
|
40
|
+
* are NEVER moved or otherwise altered (widgets, mode, size, color, title all
|
|
41
|
+
* untouched), so the author's formatting survives exactly.
|
|
42
|
+
*/
|
|
43
|
+
export function flattenUiWorkflow(input, opts = {}) {
|
|
44
|
+
const includeGetSet = opts.includeGetSet !== false;
|
|
45
|
+
const includeUe = opts.includeUe !== false;
|
|
46
|
+
const ui = JSON.parse(JSON.stringify(input));
|
|
47
|
+
const warnings = [];
|
|
48
|
+
const nodes = ui.nodes ?? [];
|
|
49
|
+
const nodesById = new Map(nodes.map((n) => [n.id, n]));
|
|
50
|
+
const linkMap = new Map();
|
|
51
|
+
for (const l of ui.links ?? [])
|
|
52
|
+
if (Array.isArray(l))
|
|
53
|
+
linkMap.set(l[0], l);
|
|
54
|
+
// bus name (Set node's first widget) -> the link id feeding that Set's input.
|
|
55
|
+
// Multiple Sets writing the same key: LAST one wins (matches litegraph's
|
|
56
|
+
// iteration order at prompt time) — warn so the author knows.
|
|
57
|
+
const busSource = new Map();
|
|
58
|
+
if (includeGetSet) {
|
|
59
|
+
for (const n of nodes) {
|
|
60
|
+
if (!isSetType(n.type))
|
|
61
|
+
continue;
|
|
62
|
+
const bus = n.widgets_values?.[0];
|
|
63
|
+
const inp = (n.inputs ?? []).find((i) => i.link != null);
|
|
64
|
+
if (bus == null || inp?.link == null)
|
|
65
|
+
continue;
|
|
66
|
+
if (busSource.has(String(bus))) {
|
|
67
|
+
warnings.push(`multiple Set nodes write bus "${String(bus)}" — the last one wins`);
|
|
68
|
+
}
|
|
69
|
+
busSource.set(String(bus), inp.link);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** Walk upstream past Get/Set/Reroute to the first REAL node (any mode). */
|
|
73
|
+
const resolveReal = (linkId, depth = 0) => {
|
|
74
|
+
if (depth > 100)
|
|
75
|
+
return null;
|
|
76
|
+
const link = linkMap.get(linkId);
|
|
77
|
+
if (!link)
|
|
78
|
+
return null;
|
|
79
|
+
const src = nodesById.get(link[1]);
|
|
80
|
+
if (!src)
|
|
81
|
+
return { id: link[1], slot: link[2], type: link[5] };
|
|
82
|
+
if (includeGetSet && isGetType(src.type)) {
|
|
83
|
+
const bus = src.widgets_values?.[0];
|
|
84
|
+
const setLink = bus != null ? busSource.get(String(bus)) : undefined;
|
|
85
|
+
return setLink != null ? resolveReal(setLink, depth + 1) : null;
|
|
86
|
+
}
|
|
87
|
+
if (includeGetSet && (isSetType(src.type) || isRerouteType(src.type))) {
|
|
88
|
+
const inp = (src.inputs ?? []).find((i) => i.link != null);
|
|
89
|
+
return inp?.link != null ? resolveReal(inp.link, depth + 1) : null;
|
|
90
|
+
}
|
|
91
|
+
return { id: link[1], slot: link[2], type: link[5] };
|
|
92
|
+
};
|
|
93
|
+
let nextLinkId = (ui.last_link_id ?? Math.max(0, ...linkMap.keys())) + 1;
|
|
94
|
+
const freshLinks = [];
|
|
95
|
+
let rewired = 0;
|
|
96
|
+
const addDirectLink = (srcId, srcSlot, dstId, dstSlot, type) => {
|
|
97
|
+
const src = nodesById.get(srcId);
|
|
98
|
+
const dst = nodesById.get(dstId);
|
|
99
|
+
const dstInput = dst?.inputs?.[dstSlot];
|
|
100
|
+
const srcOutput = src?.outputs?.[srcSlot];
|
|
101
|
+
if (!src || !dst || !dstInput || !srcOutput)
|
|
102
|
+
return null;
|
|
103
|
+
const id = nextLinkId++;
|
|
104
|
+
freshLinks.push([id, srcId, srcSlot, dstId, dstSlot, type]);
|
|
105
|
+
dstInput.link = id;
|
|
106
|
+
srcOutput.links = [...(srcOutput.links ?? []), id];
|
|
107
|
+
return id;
|
|
108
|
+
};
|
|
109
|
+
// ── Pass 1: rewire consumer inputs fed through Get/Set/Reroute chains ─────
|
|
110
|
+
if (includeGetSet) {
|
|
111
|
+
for (const node of nodes) {
|
|
112
|
+
if (isWiringVirtual(node.type))
|
|
113
|
+
continue;
|
|
114
|
+
for (let slot = 0; slot < (node.inputs?.length ?? 0); slot++) {
|
|
115
|
+
const inp = node.inputs?.[slot];
|
|
116
|
+
if (inp?.link == null)
|
|
117
|
+
continue;
|
|
118
|
+
const link = linkMap.get(inp.link);
|
|
119
|
+
if (!link)
|
|
120
|
+
continue;
|
|
121
|
+
const origin = nodesById.get(link[1]);
|
|
122
|
+
if (!origin || !isWiringVirtual(origin.type))
|
|
123
|
+
continue; // already direct
|
|
124
|
+
const resolved = resolveReal(inp.link);
|
|
125
|
+
if (!resolved) {
|
|
126
|
+
inp.link = null;
|
|
127
|
+
warnings.push(`${node.type} #${node.id} input "${inp.name ?? slot}" fed by a dangling ${origin.type} chain — left unconnected`);
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
addDirectLink(resolved.id, resolved.slot, node.id, slot, resolved.type ?? link[5]);
|
|
131
|
+
rewired++;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// ── Pass 2: materialize UE broadcasts from the pack's own computed list ───
|
|
136
|
+
const ueSenders = nodes.filter((n) => isUeSender(n.type));
|
|
137
|
+
const ueDeletable = new Set();
|
|
138
|
+
if (includeUe && ueSenders.length) {
|
|
139
|
+
const ueLinks = ui.extra?.ue_links ?? null;
|
|
140
|
+
if (!Array.isArray(ueLinks) || ueLinks.length === 0) {
|
|
141
|
+
warnings.push(`${ueSenders.length} Use-Everywhere sender(s) present but extra.ue_links is empty — ` +
|
|
142
|
+
`UE broadcasts NOT materialized (open the graph with cg-use-everywhere active and save/queue once, then retry); senders left in place`);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
for (const uel of ueLinks) {
|
|
146
|
+
const dst = nodesById.get(uel.downstream);
|
|
147
|
+
const dstInput = dst?.inputs?.[uel.downstream_slot];
|
|
148
|
+
if (!dst || !dstInput) {
|
|
149
|
+
warnings.push(`ue_link → node #${uel.downstream} slot ${uel.downstream_slot} no longer exists — skipped`);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (dstInput.link != null)
|
|
153
|
+
continue; // got a real link since analysis — UE wouldn't fire
|
|
154
|
+
// upstream is the real producer per the pack's analysis; if it is itself
|
|
155
|
+
// virtual wiring (producer behind a Get/Set), normalize through pass-1 logic.
|
|
156
|
+
let srcId = uel.upstream;
|
|
157
|
+
let srcSlot = uel.upstream_slot;
|
|
158
|
+
const up = nodesById.get(srcId);
|
|
159
|
+
if (up && isWiringVirtual(up.type)) {
|
|
160
|
+
const viaInp = (up.inputs ?? []).find((i) => i.link != null);
|
|
161
|
+
const resolved = viaInp?.link != null ? resolveReal(viaInp.link) : null;
|
|
162
|
+
if (!resolved) {
|
|
163
|
+
warnings.push(`ue_link upstream #${srcId} is an unresolvable virtual node — skipped`);
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
srcId = resolved.id;
|
|
167
|
+
srcSlot = resolved.slot;
|
|
168
|
+
}
|
|
169
|
+
const added = addDirectLink(srcId, srcSlot, uel.downstream, uel.downstream_slot, uel.type ?? dstInput.type ?? "*");
|
|
170
|
+
if (added != null)
|
|
171
|
+
rewired++;
|
|
172
|
+
}
|
|
173
|
+
// A sender is deletable only when it is not the real producer of any
|
|
174
|
+
// surviving link (Seed Everywhere IS its own upstream — it must stay).
|
|
175
|
+
const liveOrigins = new Set();
|
|
176
|
+
for (const l of freshLinks)
|
|
177
|
+
liveOrigins.add(l[1]);
|
|
178
|
+
for (const s of ueSenders) {
|
|
179
|
+
if (!liveOrigins.has(s.id))
|
|
180
|
+
ueDeletable.add(s.id);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// ── Deletion + purge ───────────────────────────────────────────────────────
|
|
185
|
+
const removedIds = new Set();
|
|
186
|
+
let getset = 0;
|
|
187
|
+
let reroute = 0;
|
|
188
|
+
let ue = 0;
|
|
189
|
+
for (const n of nodes) {
|
|
190
|
+
if (includeGetSet && GET_SET_TYPES.has(n.type)) {
|
|
191
|
+
removedIds.add(n.id);
|
|
192
|
+
getset++;
|
|
193
|
+
}
|
|
194
|
+
else if (includeGetSet && isRerouteType(n.type)) {
|
|
195
|
+
removedIds.add(n.id);
|
|
196
|
+
reroute++;
|
|
197
|
+
}
|
|
198
|
+
else if (ueDeletable.has(n.id)) {
|
|
199
|
+
removedIds.add(n.id);
|
|
200
|
+
ue++;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
ui.nodes = nodes.filter((n) => !removedIds.has(n.id));
|
|
204
|
+
const survivingLinks = [...(ui.links ?? []), ...freshLinks].filter((l) => Array.isArray(l) && !removedIds.has(l[1]) && !removedIds.has(l[3]));
|
|
205
|
+
const survivingIds = new Set(survivingLinks.map((l) => l[0]));
|
|
206
|
+
ui.links = survivingLinks;
|
|
207
|
+
ui.last_link_id = nextLinkId - 1;
|
|
208
|
+
// Scrub dangling link references on kept nodes (inputs fed by a deleted
|
|
209
|
+
// virtual node that pass-1 already rewired keep their fresh id; anything
|
|
210
|
+
// still pointing at a purged link gets cleared).
|
|
211
|
+
for (const n of ui.nodes) {
|
|
212
|
+
for (const inp of n.inputs ?? []) {
|
|
213
|
+
if (inp.link != null && !survivingIds.has(inp.link))
|
|
214
|
+
inp.link = null;
|
|
215
|
+
}
|
|
216
|
+
for (const out of n.outputs ?? []) {
|
|
217
|
+
if (out.links)
|
|
218
|
+
out.links = out.links.filter((id) => survivingIds.has(id));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
// The senders are gone — stale UE bookkeeping would confuse the pack's JS.
|
|
222
|
+
if (ui.extra && includeUe && ueSenders.length && ueDeletable.size === ueSenders.length) {
|
|
223
|
+
delete ui.extra.ue_links;
|
|
224
|
+
delete ui.extra.links_added_by_ue;
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
graph: ui,
|
|
228
|
+
report: {
|
|
229
|
+
removed: { getset, reroute, ue },
|
|
230
|
+
added_links: freshLinks.length,
|
|
231
|
+
rewired_inputs: rewired,
|
|
232
|
+
kept_nodes: ui.nodes.length,
|
|
233
|
+
warnings,
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=flatten-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten-workflow.js","sourceRoot":"","sources":["../../src/services/flatten-workflow.ts"],"names":[],"mappings":"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"}
|