|
|
@ -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; |
|
|
|