mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-04-19 10:53:29 +00:00
Merge branch 'Allow-connect-premitiveNode-to-forceInput-comfyiUI-nodes' of https://github.com/omar92/ComfyUI
This commit is contained in:
commit
61e7767ca6
@ -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;
|
||||||
@ -274,7 +288,7 @@ app.registerExtension({
|
|||||||
if (type in ComfyWidgets) {
|
if (type in ComfyWidgets) {
|
||||||
widget = (ComfyWidgets[type](this, "value", inputData, app) || {}).widget;
|
widget = (ComfyWidgets[type](this, "value", inputData, app) || {}).widget;
|
||||||
} else {
|
} else {
|
||||||
widget = this.addWidget(type, "value", null, () => {}, {});
|
widget = this.addWidget(type, "value", null, () => { }, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node?.widgets && widget) {
|
if (node?.widgets && widget) {
|
||||||
|
Loading…
Reference in New Issue
Block a user