MCPcopy Index your code
hub / github.com/pythongosssss/ComfyUI-Custom-Scripts / setup

Function setup

web/js/widgetDefaults.js:14–296  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12 nodeType[nodeDataKey] = nodeData;
13 },
14 setup() {
15 let defaults;
16 let regexDefaults;
17 let setting;
18
19 const getNodeDefaults = (node, defaults) => {
20 const nodeDefaults = defaults[node.type] ?? {};
21 const propSetBy = {};
22
23 Object.keys(regexDefaults)
24 .filter((r) => new RegExp(r).test(node.type))
25 .reduce((p, n) => {
26 const props = regexDefaults[n];
27 for (const k in props) {
28 // Use the longest matching key as its probably the most specific
29 if (!(k in nodeDefaults) || (k in propSetBy && n.length > propSetBy[k].length)) {
30 propSetBy[k] = n;
31 nodeDefaults[k] = props[k];
32 }
33 }
34 return p;
35 }, nodeDefaults);
36
37 return nodeDefaults;
38 };
39
40 const applyDefaults = (defaults) => {
41 for (const node of Object.values(LiteGraph.registered_node_types)) {
42 const nodeData = node[nodeDataKey];
43 if (!nodeData) continue;
44 const nodeDefaults = getNodeDefaults(node, defaults);
45 if (!nodeDefaults) continue;
46 const inputs = { ...(nodeData.input?.required || {}), ...(nodeData.input?.optional || {}) };
47
48 for (const w in nodeDefaults) {
49 const widgetDef = inputs[w];
50 if (widgetDef) {
51 let v = nodeDefaults[w];
52 if (widgetDef[0] === "INT" || widgetDef[0] === "FLOAT") {
53 v = +v;
54 }
55 if (widgetDef[1]) {
56 widgetDef[1].default = v;
57 } else {
58 widgetDef[1] = { default: v };
59 }
60 }
61 }
62 }
63 };
64
65 const getDefaults = () => {
66 let items;
67 regexDefaults = {};
68 try {
69 items = JSON.parse(setting.value);
70 items = items.reduce((p, n) => {
71 if (n.node.startsWith("/") && n.node.endsWith("/")) {

Callers

nothing calls this directly

Calls 4

showMethod · 0.95
getNodeDefaultsFunction · 0.85
getDefaultsFunction · 0.85
closeMethod · 0.80

Tested by

no test coverage detected