Skip to content

Commit 3762e67

Browse files
Support refresh on group node combos (#2625)
* Support refresh on group node combos * fix check
1 parent 05cd006 commit 3762e67

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

web/extensions/core/groupNode.js

+28
Original file line numberDiff line numberDiff line change
@@ -966,6 +966,26 @@ export class GroupNodeHandler {
966966
api.removeEventListener("executing", executing);
967967
api.removeEventListener("executed", executed);
968968
};
969+
970+
this.node.refreshComboInNode = (defs) => {
971+
// Update combo widget options
972+
for (const widgetName in this.groupData.newToOldWidgetMap) {
973+
const widget = this.node.widgets.find((w) => w.name === widgetName);
974+
if (widget?.type === "combo") {
975+
const old = this.groupData.newToOldWidgetMap[widgetName];
976+
const def = defs[old.node.type];
977+
const input = def?.input?.required?.[old.inputName] ?? def?.input?.optional?.[old.inputName];
978+
if (!input) continue;
979+
980+
widget.options.values = input[0];
981+
982+
if (old.inputName !== "image" && !widget.options.values.includes(widget.value)) {
983+
widget.value = widget.options.values[0];
984+
widget.callback(widget.value);
985+
}
986+
}
987+
}
988+
};
969989
}
970990

971991
updateInnerWidgets() {
@@ -1245,6 +1265,14 @@ const ext = {
12451265
node[GROUP] = new GroupNodeHandler(node);
12461266
}
12471267
},
1268+
async refreshComboInNodes(defs) {
1269+
// Re-register group nodes so new ones are created with the correct options
1270+
Object.assign(globalDefs, defs);
1271+
const nodes = app.graph.extra?.groupNodes;
1272+
if (nodes) {
1273+
await GroupNodeConfig.registerFromWorkflow(nodes, {});
1274+
}
1275+
}
12481276
};
12491277

12501278
app.registerExtension(ext);

web/scripts/app.js

+2
Original file line numberDiff line numberDiff line change
@@ -2212,6 +2212,8 @@ export class ComfyApp {
22122212
}
22132213
}
22142214
}
2215+
2216+
await this.#invokeExtensionsAsync("refreshComboInNodes", defs);
22152217
}
22162218

22172219
/**

0 commit comments

Comments
 (0)