diff --git a/execution.py b/execution.py index f096e6e78..a62f0cab1 100644 --- a/execution.py +++ b/execution.py @@ -667,6 +667,9 @@ def validate_inputs(prompt, item, validated): if type_input == "STRING": val = str(val) inputs[x] = val + if type_input == "BOOL": + val = bool(val) + inputs[x] = val except Exception as ex: error = { "type": "invalid_input_type", diff --git a/web/extensions/core/widgetInputs.js b/web/extensions/core/widgetInputs.js index 7600ce87b..8255eaaf3 100644 --- a/web/extensions/core/widgetInputs.js +++ b/web/extensions/core/widgetInputs.js @@ -2,7 +2,7 @@ import { ComfyWidgets, addValueControlWidget } from "../../scripts/widgets.js"; import { app } from "../../scripts/app.js"; const CONVERTED_TYPE = "converted-widget"; -const VALID_TYPES = ["STRING", "combo", "number"]; +const VALID_TYPES = ["STRING", "combo", "number", "toggle"]; function isConvertableWidget(widget, config) { return VALID_TYPES.includes(widget.type) || VALID_TYPES.includes(config[0]); diff --git a/web/scripts/widgets.js b/web/scripts/widgets.js index a8afc29b0..2b71d1715 100644 --- a/web/scripts/widgets.js +++ b/web/scripts/widgets.js @@ -273,6 +273,10 @@ export const ComfyWidgets = { ), }; }, + BOOL(node, inputName, inputData) { + const defaultVal = inputData[1]?.default || false; + return { widget: node.addWidget("toggle", inputName, defaultVal, () => {}, {}) }; + }, STRING(node, inputName, inputData, app) { const defaultVal = inputData[1].default || ""; const multiline = !!inputData[1].multiline;