Browse Source

Merge branch 'Allow-connect-premitiveNode-to-forceInput-comfyiUI-nodes' of https://github.com/omar92/ComfyUI

pull/507/head
comfyanonymous 2 years ago
parent
commit
61e7767ca6
  1. 24
      web/extensions/core/widgetInputs.js

24
web/extensions/core/widgetInputs.js

@ -159,7 +159,12 @@ app.registerExtension({
const r = origOnInputDblClick ? origOnInputDblClick.apply(this, arguments) : undefined; const r = origOnInputDblClick ? origOnInputDblClick.apply(this, arguments) : undefined;
const input = this.inputs[slot]; const input = this.inputs[slot];
if (input.widget && !input[ignoreDblClick]) { if (!input.widget || !input[ignoreDblClick])// Not a widget input or already handled input
{
if (!(input.type in ComfyWidgets)) return r;//also Not a ComfyWidgets input (do nothing)
}
// Create a primitive node
const node = LiteGraph.createNode("PrimitiveNode"); const node = LiteGraph.createNode("PrimitiveNode");
app.graph.add(node); app.graph.add(node);
@ -178,7 +183,6 @@ app.registerExtension({
setTimeout(() => { setTimeout(() => {
delete input[ignoreDblClick]; delete input[ignoreDblClick];
}, 300); }, 300);
}
return r; return r;
}; };
@ -233,7 +237,9 @@ app.registerExtension({
// Fires before the link is made allowing us to reject it if it isn't valid // Fires before the link is made allowing us to reject it if it isn't valid
// No widget, we cant connect // No widget, we cant connect
if (!input.widget) return false; if (!input.widget) {
if (!(input.type in ComfyWidgets)) return false;
}
if (this.outputs[slot].links?.length) { if (this.outputs[slot].links?.length) {
return this.#isValidConnection(input); return this.#isValidConnection(input);
@ -252,9 +258,17 @@ app.registerExtension({
const input = theirNode.inputs[link.target_slot]; const input = theirNode.inputs[link.target_slot];
if (!input) return; if (!input) return;
const widget = input.widget;
const { type, linkType } = getWidgetType(widget.config);
var _widget;
if (!input.widget) {
if (!(input.type in ComfyWidgets)) return;
_widget = { "name": input.name, "config": [input.type, {}] }//fake widget
} else {
_widget = input.widget;
}
const widget = _widget;
const { type, linkType } = getWidgetType(widget.config);
// Update our output to restrict to the widget type // Update our output to restrict to the widget type
this.outputs[0].type = linkType; this.outputs[0].type = linkType;
this.outputs[0].name = type; this.outputs[0].name = type;

Loading…
Cancel
Save