From 6cc52b42bb94a37211ec9de81e9d791554323f45 Mon Sep 17 00:00:00 2001 From: flyingshutter Date: Fri, 31 Mar 2023 19:18:58 +0200 Subject: [PATCH 1/6] do not serialize seedControl --- web/scripts/widgets.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/scripts/widgets.js b/web/scripts/widgets.js index c073f365e..c312928db 100644 --- a/web/scripts/widgets.js +++ b/web/scripts/widgets.js @@ -12,7 +12,8 @@ function getNumberDefaults(inputData, defaultStep) { export function addSeedControlWidget(node, targetWidget, defaultValue = "randomize", values) { const seedControl = node.addWidget("combo", "seed control after generating", "randomize", function (v) { }, { - values: ["fixed seed", "increment", "decrement", "randomize"] + values: ["fixed seed", "increment", "decrement", "randomize"], + serialize: false, // Don't include this in prompt. }) seedControl.afterQueued = () => { From 3fe76483fba2ce957acbc8035a0eb7e716499293 Mon Sep 17 00:00:00 2001 From: flyingshutter Date: Fri, 31 Mar 2023 19:20:47 +0200 Subject: [PATCH 2/6] make createWidget subtype aware -> if (widget.name === "seed") is not necessary anymore --- web/extensions/core/widgetInputs.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/web/extensions/core/widgetInputs.js b/web/extensions/core/widgetInputs.js index 6d7867961..323bace6d 100644 --- a/web/extensions/core/widgetInputs.js +++ b/web/extensions/core/widgetInputs.js @@ -275,9 +275,7 @@ app.registerExtension({ } */ this.#createWidget(widget.config, theirNode, widget.name); - if (widget.name === "seed") { - addSeedControlWidget(this, this.widget, "randomize"); - } + } #createWidget(inputData, node, widgetName) { @@ -289,12 +287,25 @@ app.registerExtension({ let widget; - if (type in ComfyWidgets) { - widget = (ComfyWidgets[type](this, widgetName/*"value*"*/, inputData, app) || {}).widget; + // ComfyWidgets allows a subtype of widgets which is defined by ":" + // common example is "INT:seed" + // so let's check for those first + let combinedWidgetType = type + ":" + widgetName; + if (combinedWidgetType in ComfyWidgets) { + widget = (ComfyWidgets[combinedWidgetType](this, "value", inputData, app) || {}).widget; } else { - widget = this.addWidget(type, widgetName /*"value"*/, null, () => { }, {}); + // we did not find a subtype, so proceed with "" only + if (type in ComfyWidgets) { + widget = (ComfyWidgets[type](this, widgetName/*"value*"*/, inputData, app) || {}).widget; + } else { + widget = this.addWidget(type, widgetName /*"value"*/, null, () => { }, {}); + } + + + // if (widget.type === "number") { + // addSeedControlWidget(this, this.widget, "randomize"); + // } } - if (node?.widgets && widget) { From 6566a4a33b0da647730092c73e1524ccb2789964 Mon Sep 17 00:00:00 2001 From: flyingshutter Date: Fri, 31 Mar 2023 20:23:46 +0200 Subject: [PATCH 3/6] fix params in call to addSeedControlWidget was: ...(this, this.widget, "randomize") isnow: (this, widget, "randomize") --- web/extensions/core/widgetInputs.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web/extensions/core/widgetInputs.js b/web/extensions/core/widgetInputs.js index 323bace6d..71e8d4b5b 100644 --- a/web/extensions/core/widgetInputs.js +++ b/web/extensions/core/widgetInputs.js @@ -301,10 +301,11 @@ app.registerExtension({ widget = this.addWidget(type, widgetName /*"value"*/, null, () => { }, {}); } + // addSeedControlWidget(node, seed.widget, "randomize"); - // if (widget.type === "number") { - // addSeedControlWidget(this, this.widget, "randomize"); - // } + if (widget.type === "number") { + addSeedControlWidget(this, widget, "randomize"); + } } if (node?.widgets && widget) { From 21b0104602af0f26ef6cb5a3f539e459a89c0394 Mon Sep 17 00:00:00 2001 From: flyingshutter Date: Fri, 31 Mar 2023 23:27:06 +0200 Subject: [PATCH 4/6] cleanup return value of seedWidget --- web/extensions/core/widgetInputs.js | 5 +++-- web/scripts/widgets.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/web/extensions/core/widgetInputs.js b/web/extensions/core/widgetInputs.js index 4fc9f332c..092367962 100644 --- a/web/extensions/core/widgetInputs.js +++ b/web/extensions/core/widgetInputs.js @@ -284,7 +284,8 @@ app.registerExtension({ // so let's check for those first let combinedWidgetType = type + ":" + widgetName; if (combinedWidgetType in ComfyWidgets) { - widget = (ComfyWidgets[combinedWidgetType](this, "value", inputData, app) || {}).widget; + // widget = (ComfyWidgets[combinedWidgetType](this, "value", inputData, app) || {}).widget; + widget = (ComfyWidgets[combinedWidgetType](this, widgetName, inputData, app) || {}).widget; } else { // we did not find a subtype, so proceed with "" only if (type in ComfyWidgets) { @@ -302,7 +303,7 @@ app.registerExtension({ if (node?.widgets && widget) { - const theirWidget = node.widgets.find((w) => w.name === widgetName); + const theirWidget = node.widgets.find((w) => w.name === widgetName); if (theirWidget) { widget.value = theirWidget.value; } diff --git a/web/scripts/widgets.js b/web/scripts/widgets.js index c312928db..130f1f0c5 100644 --- a/web/scripts/widgets.js +++ b/web/scripts/widgets.js @@ -59,7 +59,7 @@ function seedWidget(node, inputName, inputData) { const seedControl = addSeedControlWidget(node, seed.widget, "randomize"); seed.widget.linkedWidgets = [seedControl]; - return { widget: seed, seedControl }; + return seed; } const MultilineSymbol = Symbol(); From 4661163a82c2fa3e739ec49774cd599e1f27a090 Mon Sep 17 00:00:00 2001 From: flyingshutter Date: Fri, 31 Mar 2023 23:58:09 +0200 Subject: [PATCH 5/6] set seedControl to fexed seed for non seed numbers --- web/extensions/core/widgetInputs.js | 2 +- web/scripts/widgets.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/extensions/core/widgetInputs.js b/web/extensions/core/widgetInputs.js index f9a19c35f..4afb14110 100644 --- a/web/extensions/core/widgetInputs.js +++ b/web/extensions/core/widgetInputs.js @@ -294,7 +294,7 @@ app.registerExtension({ // addSeedControlWidget(node, seed.widget, "randomize"); if (widget.type === "number") { - addSeedControlWidget(this, widget, "randomize"); + addSeedControlWidget(this, widget, "fixed seed"); } } diff --git a/web/scripts/widgets.js b/web/scripts/widgets.js index 130f1f0c5..98a7c9e93 100644 --- a/web/scripts/widgets.js +++ b/web/scripts/widgets.js @@ -11,7 +11,7 @@ function getNumberDefaults(inputData, defaultStep) { } export function addSeedControlWidget(node, targetWidget, defaultValue = "randomize", values) { - const seedControl = node.addWidget("combo", "seed control after generating", "randomize", function (v) { }, { + const seedControl = node.addWidget("combo", "seed control after generating", defaultValue, function (v) { }, { values: ["fixed seed", "increment", "decrement", "randomize"], serialize: false, // Don't include this in prompt. }) From 12ba214a5deafedd330b1f295cb9e9c04d95c717 Mon Sep 17 00:00:00 2001 From: flyingshutter Date: Sat, 1 Apr 2023 01:27:11 +0200 Subject: [PATCH 6/6] remove randomizing combo --- web/extensions/core/widgetInputs.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/web/extensions/core/widgetInputs.js b/web/extensions/core/widgetInputs.js index f0d18d5a2..714802fda 100644 --- a/web/extensions/core/widgetInputs.js +++ b/web/extensions/core/widgetInputs.js @@ -308,10 +308,6 @@ app.registerExtension({ } } - 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 const callback = widget.callback;