diff --git a/.vs/ComfyUI/v17/.suo b/.vs/ComfyUI/v17/.suo index 69729b930..012475533 100644 Binary files a/.vs/ComfyUI/v17/.suo and b/.vs/ComfyUI/v17/.suo differ diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index 35fb3a8b4..9899ef565 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -7,6 +7,6 @@ "\\web\\lib", "\\web\\scripts" ], - "SelectedNode": "\\web\\scripts\\ui.js", + "SelectedNode": "\\web\\scripts\\widgets.js", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index 6d0786e3c..b08cc5283 100644 Binary files a/.vs/slnx.sqlite and b/.vs/slnx.sqlite differ diff --git a/web/extensions/core/widgetInputs.js b/web/extensions/core/widgetInputs.js index 8343726f1..234529cf9 100644 --- a/web/extensions/core/widgetInputs.js +++ b/web/extensions/core/widgetInputs.js @@ -5,6 +5,9 @@ const CONVERTED_TYPE = "converted-widget"; const VALID_TYPES = ["STRING", "combo", "number"]; function isConvertableWidget(widget, config) { + if (widget.name == "seed control after generating") + widget.allowConvertToInput = false; + else return VALID_TYPES.includes(widget.type) || VALID_TYPES.includes(config[0]); } @@ -173,10 +176,6 @@ app.registerExtension({ node.pos = pos; node.connect(0, this, slot); node.title = input.name; - if (node.title == "seed") { - node.widgets.addSeedControlWidget(node, node.widgets[0], "randomize"); - value.widget.linkedWidgets = [seedControl]; - } // Prevent adding duplicates due to triple clicking input[ignoreDblClick] = true; @@ -193,7 +192,7 @@ app.registerExtension({ constructor() { this.addOutput("connect to widget input", "*"); this.serialize_widgets = true; - this.isVirtualNode = true; + this.isVirtualNode = true; } applyToGraph() { @@ -276,11 +275,19 @@ app.registerExtension({ } let widget; + if (type in ComfyWidgets) { - widget = (ComfyWidgets[type](this, "value", inputData, app) || {}).widget; + widget = (ComfyWidgets[type](this, widgetName/*"value*"*/, inputData, app) || {}).widget; + if (widgetName == "seed") { + addSeedControlWidget(node, node.widgets[0],"randomize"); + } } else { - widget = this.addWidget(type, "value", null, () => {}, {}); + widget = this.addWidget(type, widgetName /*"value"*/, null, () => { }, {}); + if (widgetName == "seed") { + addSeedControlWidget(node, node.widgets[0], "randomize"); + } } + if (node?.widgets && widget) { const theirWidget = node.widgets.find((w) => w.name === widgetName); @@ -288,9 +295,6 @@ app.registerExtension({ widget.value = theirWidget.value; } } - if (widget.type === "combo") { - addSeedControlWidget(this, widget, "randomize"); - } // When our value changes, update other widgets to reflect our changes // e.g. so LoadImage shows correct image diff --git a/web/scripts/app.js b/web/scripts/app.js index 291867f91..3fd8762d8 100644 --- a/web/scripts/app.js +++ b/web/scripts/app.js @@ -1,4 +1,4 @@ -import { addSeedControlWidget, ComfyWidgets } from "./widgets.js"; +import { ComfyWidgets } from "./widgets.js"; import { ComfyUI } from "./ui.js"; import { api } from "./api.js"; import { defaultGraph } from "./defaultGraph.js"; @@ -771,23 +771,15 @@ class ComfyApp { widget.value = widget.value.slice(7); } } - if (widget.name == "seed control after generating") { if (widget.value == true) { widget.value = "randomize"; - - } + } } } - if (widget.name == "seed control after generating") { - if (widget.value == true) { - widget.value = "randomize"; - } - - } } + this.#invokeExtensions("loadedGraphNode", node); } - this.#invokeExtensions("loadedGraphNode", node); } }