mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-15 07:52:35 +08:00
Populate primitive to reroute input
This commit is contained in:
parent
99555a1873
commit
0276444f59
@ -912,6 +912,9 @@ describe("group node", () => {
|
||||
const r1 = ez.Reroute();
|
||||
const r2 = ez.Reroute();
|
||||
|
||||
latent.widgets.width.value = 64;
|
||||
latent.widgets.height.value = 128;
|
||||
|
||||
latent.widgets.width.convertToInput();
|
||||
latent.widgets.height.convertToInput();
|
||||
latent.widgets.batch_size.convertToInput();
|
||||
@ -947,6 +950,9 @@ describe("group node", () => {
|
||||
expect(p2.widgets.value.widget.options?.max).toBe(8192); // width/height max
|
||||
expect(p2.widgets.value.widget.options?.step).toBe(80); // width/height step * 10
|
||||
|
||||
expect(p1.widgets.value.value).toBe(128);
|
||||
expect(p2.widgets.value.value).toBe(64);
|
||||
|
||||
p1.widgets.value.value = 16;
|
||||
p2.widgets.value.value = 32;
|
||||
|
||||
|
||||
@ -966,17 +966,44 @@ export class GroupNodeHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
populateReroute(node, nodeId, map) {
|
||||
if (node.type !== "Reroute") return;
|
||||
|
||||
const link = this.groupData.linksFrom[nodeId]?.[0]?.[0];
|
||||
if (!link) return;
|
||||
const [, , targetNodeId, targetNodeSlot] = link;
|
||||
const targetNode = this.groupData.nodeData.nodes[targetNodeId];
|
||||
const inputs = targetNode.inputs;
|
||||
const targetWidget = inputs?.[targetNodeSlot].widget;
|
||||
if (!targetWidget) return;
|
||||
|
||||
const offset = inputs.length - (targetNode.widgets_values?.length ?? 0);
|
||||
const v = targetNode.widgets_values?.[targetNodeSlot - offset];
|
||||
if (v == null) return;
|
||||
|
||||
const widgetName = Object.values(map)[0];
|
||||
const widget = this.node.widgets.find(w => w.name === widgetName);
|
||||
if(widget) {
|
||||
widget.value = v;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
populateWidgets() {
|
||||
if (!this.node.widgets) return;
|
||||
|
||||
for (let nodeId = 0; nodeId < this.groupData.nodeData.nodes.length; nodeId++) {
|
||||
const node = this.groupData.nodeData.nodes[nodeId];
|
||||
|
||||
if (!node.widgets_values?.length) continue;
|
||||
|
||||
const map = this.groupData.oldToNewWidgetMap[nodeId];
|
||||
const map = this.groupData.oldToNewWidgetMap[nodeId] ?? {};
|
||||
const widgets = Object.keys(map);
|
||||
|
||||
if (!node.widgets_values?.length) {
|
||||
// special handling for populating values into reroutes
|
||||
// this allows primitives connect to them to pick up the correct value
|
||||
this.populateReroute(node, nodeId, map);
|
||||
continue;
|
||||
}
|
||||
|
||||
let linkedShift = 0;
|
||||
for (let i = 0; i < widgets.length; i++) {
|
||||
const oldName = widgets[i];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user