From 48923ec60fff37af6d5d9596c60e23cb57a0bea0 Mon Sep 17 00:00:00 2001 From: space-nuko <24979496+space-nuko@users.noreply.github.com> Date: Wed, 10 May 2023 21:49:46 -0500 Subject: [PATCH] WOrkflow/layout fixes --- public/workflows/defaultWorkflow.json | 25 +- public/workflows/upscale.json | 838 +++++++++++++++++++ src/lib/ComfyGraph.ts | 7 +- src/lib/components/AccordionContainer.svelte | 25 +- src/lib/components/ComfyApp.svelte | 2 +- src/lib/components/ComfyApp.ts | 7 +- src/lib/components/ComfyProperties.svelte | 35 +- src/lib/stores/layoutState.ts | 25 +- src/lib/widgets/CheckboxWidget.svelte | 8 +- src/lib/widgets/ComboWidget.svelte | 1 + src/mobile/GenToolbar.svelte | 2 +- 11 files changed, 933 insertions(+), 42 deletions(-) create mode 100644 public/workflows/upscale.json diff --git a/public/workflows/defaultWorkflow.json b/public/workflows/defaultWorkflow.json index 0391946..9e81420 100644 --- a/public/workflows/defaultWorkflow.json +++ b/public/workflows/defaultWorkflow.json @@ -816,11 +816,11 @@ "multiline": false }, "widgets_values": [ - "cached" + "none" ], "color": "#223", "bgColor": "#335", - "comfyValue": "cached", + "comfyValue": "none", "shownOutputProperties": {}, "saveUserState": true }, @@ -1275,11 +1275,11 @@ "multiline": false }, "widgets_values": [ - "2240" + "2" ], "color": "#223", "bgColor": "#335", - "comfyValue": "2240", + "comfyValue": "2", "shownOutputProperties": {}, "saveUserState": true }, @@ -1370,11 +1370,11 @@ "multiline": false }, "widgets_values": [ - "2240" + "2" ], "color": "#223", "bgColor": "#335", - "comfyValue": "2240", + "comfyValue": "2", "shownOutputProperties": {}, "saveUserState": true }, @@ -3203,7 +3203,7 @@ "outputs": [ { "name": "", - "type": "number", + "type": "*", "links": [ 299 ], @@ -3374,7 +3374,7 @@ "outputs": [ { "name": "", - "type": "*", + "type": "string", "links": [ 310, 311 @@ -4161,7 +4161,7 @@ "title": "Operation", "properties": { "A": 2, - "B": 1120, + "B": 1, "OP": "*", "tags": [] } @@ -4207,7 +4207,7 @@ "title": "Operation", "properties": { "A": 2, - "B": 1120, + "B": 1, "OP": "*", "tags": [] } @@ -12370,7 +12370,7 @@ "properties": { "tags": [], "defaultValue": null, - "index": 0, + "index": null, "updateMode": "append", "values": [] }, @@ -13051,7 +13051,7 @@ "properties": { "tags": [], "defaultValue": null, - "index": 5, + "index": null, "updateMode": "append", "values": [] }, @@ -19697,6 +19697,7 @@ "currentId": 223, "attrs": { "queuePromptButtonName": "Queue txt2img", + "queuePromptButtonRunWorkflow": false, "defaultSubgraph": "txt2img" } }, diff --git a/public/workflows/upscale.json b/public/workflows/upscale.json new file mode 100644 index 0000000..8f47dc6 --- /dev/null +++ b/public/workflows/upscale.json @@ -0,0 +1,838 @@ +{ + "createdBy": "ComfyBox", + "version": 1, + "workflow": { + "last_node_id": 13, + "last_link_id": 11, + "nodes": [ + { + "id": 2, + "type": "ui/combo", + "pos": [ + 1957.9086484470572, + 1203.438046544425 + ], + "size": [ + 210, + 78 + ], + "flags": { + "collapsed": true + }, + "order": 0, + "mode": 0, + "inputs": [ + { + "name": "value", + "type": "string", + "link": null + }, + { + "name": "store", + "type": -1, + "link": null, + "shape": 1 + } + ], + "outputs": [ + { + "name": "value", + "type": "string", + "links": [ + 1 + ] + }, + { + "name": "changed", + "type": -2, + "links": null, + "shape": 1 + } + ], + "title": "UI.Combo", + "properties": { + "tags": [], + "defaultValue": null, + "values": [], + "convertValueToLabelCode": "" + }, + "widgets_values": [], + "color": "#223", + "bgColor": "#335", + "comfyValue": "A", + "shownOutputProperties": {}, + "saveUserState": false + }, + { + "id": 3, + "type": "ui/image_upload", + "pos": [ + 1925.8925619834713, + 1247.7851239669424 + ], + "size": [ + 210, + 138 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "store", + "type": -1, + "link": null, + "shape": 1 + } + ], + "outputs": [ + { + "name": "filename", + "type": "string", + "links": [ + 4 + ] + }, + { + "name": "width", + "type": "number", + "links": null + }, + { + "name": "height", + "type": "number", + "links": null + }, + { + "name": "image_count", + "type": "number", + "links": null + }, + { + "name": "changed", + "type": -2, + "links": null, + "shape": 1 + } + ], + "title": "UI.ImageUpload", + "properties": { + "defaultValue": null, + "tags": [], + "fileCount": "single" + }, + "widgets_values": [], + "color": "#223", + "bgColor": "#335", + "comfyValue": [], + "shownOutputProperties": {}, + "saveUserState": false + }, + { + "id": 5, + "type": "ImageUpscaleWithModel", + "pos": [ + 2322, + 1204 + ], + "size": [ + 176.4, + 46 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "upscale_model", + "type": "UPSCALE_MODEL", + "link": 2, + "config": {} + }, + { + "name": "image", + "type": "IMAGE", + "link": 5, + "config": {} + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 7 + ], + "slot_index": 0 + } + ], + "title": "ImageUpscaleWithModel", + "properties": { + "tags": [] + }, + "color": "#432", + "bgColor": "#653", + "saveUserState": true + }, + { + "id": 10, + "type": "ui/button", + "pos": [ + 2657, + 1335 + ], + "size": [ + 210, + 78 + ], + "flags": { + "collapsed": true + }, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "clicked", + "type": -2, + "links": [ + 9 + ], + "shape": 1, + "slot_index": 0 + }, + { + "name": "isClicked", + "type": "boolean", + "links": null + } + ], + "title": "UI.Button", + "properties": { + "tags": [], + "defaultValue": false, + "param": "bang" + }, + "widgets_values": [ + "false" + ], + "color": "#223", + "bgColor": "#335", + "comfyValue": false, + "shownOutputProperties": {}, + "saveUserState": true + }, + { + "id": 8, + "type": "SaveImage", + "pos": [ + 2542, + 1254 + ], + "size": [ + 220, + 46 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 7, + "config": {} + }, + { + "name": "filename_prefix", + "type": "string", + "link": 11, + "config": {}, + "defaultWidgetNode": null, + "widgetNodeType": "ui/text", + "serialize": true + } + ], + "outputs": [ + { + "name": "onExecuted", + "type": -2, + "links": [ + 8 + ], + "color_off": "rebeccapurple", + "color_on": "rebeccapurple", + "shape": 1, + "slot_index": 0 + } + ], + "title": "SaveImage", + "properties": { + "tags": [] + }, + "color": "#432", + "bgColor": "#653", + "saveUserState": true + }, + { + "id": 6, + "type": "LoadImage", + "pos": [ + 2160, + 1264 + ], + "size": [ + 140, + 46 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "string", + "link": 4, + "config": {}, + "defaultWidgetNode": null, + "widgetNodeType": "ui/combo", + "serialize": true, + "slot_index": 0 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 5 + ], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "title": "LoadImage", + "properties": { + "tags": [] + }, + "color": "#432", + "bgColor": "#653", + "saveUserState": true + }, + { + "id": 9, + "type": "ui/text", + "pos": [ + 2445, + 1300 + ], + "size": [ + 210, + 78 + ], + "flags": { + "collapsed": true + }, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "value", + "type": "string", + "link": null + }, + { + "name": "store", + "type": -1, + "link": null, + "shape": 1 + } + ], + "outputs": [ + { + "name": "value", + "type": "string", + "links": [ + 11 + ], + "slot_index": 0 + }, + { + "name": "changed", + "type": -2, + "links": null, + "shape": 1 + } + ], + "title": "UI.Text", + "properties": { + "tags": [], + "defaultValue": "ComfyUI", + "multiline": false + }, + "widgets_values": [ + "ComfyUI" + ], + "color": "#223", + "bgColor": "#335", + "comfyValue": "ComfyUI", + "shownOutputProperties": {}, + "saveUserState": true + }, + { + "id": 4, + "type": "ui/gallery", + "pos": [ + 2819, + 1259 + ], + "size": [ + 210, + 166 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "OUTPUT", + "link": null, + "slot_index": 0 + }, + { + "name": "store", + "type": -1, + "link": 8, + "color_off": "rebeccapurple", + "color_on": "rebeccapurple", + "shape": 1 + }, + { + "name": "clear", + "type": -1, + "link": 9, + "shape": 1 + } + ], + "outputs": [ + { + "name": "selected_index", + "type": "number", + "links": null + }, + { + "name": "width", + "type": "number", + "links": null + }, + { + "name": "height", + "type": "number", + "links": null + }, + { + "name": "filename", + "type": "string", + "links": null + } + ], + "title": "UI.Gallery", + "properties": { + "tags": [], + "defaultValue": null, + "index": 0, + "updateMode": "replace" + }, + "widgets_values": [], + "color": "#223", + "bgColor": "#335", + "comfyValue": [], + "shownOutputProperties": {}, + "saveUserState": false + }, + { + "id": 1, + "type": "UpscaleModelLoader", + "pos": [ + 2088, + 1179 + ], + "size": [ + 203.2, + 26 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "model_name", + "type": "string", + "link": 1, + "config": {}, + "defaultWidgetNode": null, + "widgetNodeType": "ui/combo", + "serialize": true + } + ], + "outputs": [ + { + "name": "UPSCALE_MODEL", + "type": "UPSCALE_MODEL", + "links": [ + 2 + ], + "slot_index": 0 + } + ], + "title": "UpscaleModelLoader", + "properties": { + "tags": [] + }, + "color": "#432", + "bgColor": "#653", + "saveUserState": true + } + ], + "links": [ + [ + 1, + 2, + 0, + 1, + 0, + "string" + ], + [ + 2, + 1, + 0, + 5, + 0, + "UPSCALE_MODEL" + ], + [ + 4, + 3, + 0, + 6, + 0, + "string" + ], + [ + 5, + 6, + 0, + 5, + 1, + "IMAGE" + ], + [ + 7, + 5, + 0, + 8, + 0, + "IMAGE" + ], + [ + 8, + 8, + 0, + 4, + 1, + -1 + ], + [ + 9, + 10, + 0, + 4, + 2, + -1 + ], + [ + 11, + 9, + 0, + 8, + 1, + "string" + ] + ], + "groups": [], + "config": {}, + "extra": {}, + "version": 10 + }, + "layout": { + "root": "0", + "allItems": { + "0": { + "dragItem": { + "type": "container", + "id": "0", + "attrs": { + "title": "", + "hidden": false, + "disabled": false, + "direction": "horizontal", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [ + "1", + "2" + ] + }, + "1": { + "dragItem": { + "type": "container", + "id": "1", + "attrs": { + "title": "", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [ + "5", + "4" + ], + "parent": "0" + }, + "2": { + "dragItem": { + "type": "container", + "id": "2", + "attrs": { + "title": "", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [ + "6", + "12" + ], + "parent": "0" + }, + "3": { + "dragItem": { + "type": "widget", + "id": "3", + "nodeId": 2, + "attrs": { + "title": "Model Name", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [], + "parent": "4" + }, + "4": { + "dragItem": { + "type": "container", + "id": "4", + "attrs": { + "title": "UpscaleModelLoader", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [ + "3" + ], + "parent": "1" + }, + "5": { + "dragItem": { + "type": "widget", + "id": "5", + "nodeId": 3, + "attrs": { + "title": "Image", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [], + "parent": "1" + }, + "6": { + "dragItem": { + "type": "widget", + "id": "6", + "nodeId": 4, + "attrs": { + "title": "Result", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [], + "parent": "2" + }, + "9": { + "dragItem": { + "type": "widget", + "id": "9", + "nodeId": 9, + "attrs": { + "title": "Filename Prefix", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [], + "parent": "12" + }, + "11": { + "dragItem": { + "type": "widget", + "id": "11", + "nodeId": 10, + "attrs": { + "title": "Clear Outputs", + "hidden": false, + "disabled": false, + "direction": "vertical", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "secondary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [], + "parent": "12" + }, + "12": { + "dragItem": { + "type": "container", + "id": "12", + "attrs": { + "title": "", + "hidden": false, + "disabled": false, + "direction": "horizontal", + "classes": "", + "style": "", + "nodeDisabledState": "disabled", + "variant": "gallery", + "containerVariant": "block", + "openOnStartup": false, + "buttonVariant": "primary", + "buttonSize": "large", + "tags": [] + } + }, + "children": [ + "9", + "11" + ], + "parent": "2" + } + }, + "currentId": 15, + "attrs": { + "queuePromptButtonName": "Queue Prompt", + "queuePromptButtonRunWorkflow": true + } + }, + "canvas": { + "offset": [ + -1717.3714583644114, + -1017.6529225774816 + ], + "scale": 1 + } +} \ No newline at end of file diff --git a/src/lib/ComfyGraph.ts b/src/lib/ComfyGraph.ts index e0f9f19..d89b11e 100644 --- a/src/lib/ComfyGraph.ts +++ b/src/lib/ComfyGraph.ts @@ -8,7 +8,7 @@ import { get } from "svelte/store"; import type ComfyGraphNode from "./nodes/ComfyGraphNode"; import type IComfyInputSlot from "./IComfyInputSlot"; import type { ComfyBackendNode } from "./nodes/ComfyBackendNode"; -import type { ComfyWidgetNode } from "./nodes"; +import type { ComfyComboNode, ComfyWidgetNode } from "./nodes"; type ComfyGraphEvents = { configured: (graph: LGraph) => void @@ -108,6 +108,11 @@ export default class ComfyGraph extends LGraph { widgetNode.collapse(); widgetNode.pos = [inputPos[0] - 140, inputPos[1] + LiteGraph.NODE_SLOT_HEIGHT / 2]; widgetNodesAdded.push(widgetNode) + + // Set combo box as loaded + if (widgetNode.type === "ui/combo" && widgetNode.properties.values != null) { + (widgetNode as ComfyComboNode).formatValues(widgetNode.properties.values); + } } } } diff --git a/src/lib/components/AccordionContainer.svelte b/src/lib/components/AccordionContainer.svelte index 65e2124..dbac247 100644 --- a/src/lib/components/AccordionContainer.svelte +++ b/src/lib/components/AccordionContainer.svelte @@ -12,7 +12,7 @@ import { flip } from 'svelte/animate'; import layoutState, { type ContainerLayout, type WidgetLayout, type IDragItem } from "$lib/stores/layoutState"; import { startDrag, stopDrag } from "$lib/utils" - import type { Writable } from "svelte/store"; + import { writable, type Writable } from "svelte/store"; import { isHidden } from "$lib/widgets/utils"; export let container: ContainerLayout | null = null; @@ -22,23 +22,27 @@ export let edit: boolean = false; export let dragDisabled: boolean = false; export let isMobile: boolean = false; + let isOpen: Writable | null = null; - let attrsChanged: Writable | null = null; let children: IDragItem[] | null = null; const flipDurationMs = 100; let selectedIndex: number = 0; $: if (container) { - children = $layoutState.allItems[container.id].children; - attrsChanged = container.attrsChanged - if (container.isOpen == null) { - container.isOpen = container.attrs.openOnStartup - } + setupState() } else { children = null; - attrsChanged = null + } + + function setupState() { + children = $layoutState.allItems[container.id].children; + if (container.isOpen == null) { + container.isOpen = writable(container.attrs.openOnStartup) + } + isOpen = container.isOpen + console.warn("REBUILD", container.attrs.title, $isOpen) } function handleConsider(evt: any) { @@ -51,8 +55,9 @@ // Ensure dragging is stopped on drag finish }; - function handleClick({ clicked }: CustomEvent) { + function handleClick(e: CustomEvent) { navigator.vibrate(20) + $isOpen = e.detail } @@ -104,7 +109,7 @@ {:else} - + {#each children.filter(item => item.id !== SHADOW_PLACEHOLDER_ITEM_ID) as item(item.id)} {/each} diff --git a/src/lib/components/ComfyApp.svelte b/src/lib/components/ComfyApp.svelte index 73c0296..589efe1 100644 --- a/src/lib/components/ComfyApp.svelte +++ b/src/lib/components/ComfyApp.svelte @@ -1,6 +1,6 @@
@@ -251,7 +264,7 @@
- {#key $refreshPanel} + {#key $refreshPropsPanel} {#each ALL_ATTRIBUTES as category(category.categoryName)}
@@ -379,7 +392,7 @@
{#if spec.type === "string"} updateWorkflowAttribute(spec, e.detail)} on:input={(e) => updateWorkflowAttribute(spec, e.detail)} label={spec.name} @@ -388,7 +401,7 @@ /> {:else if spec.type === "boolean"} updateWorkflowAttribute(spec, e.detail)} disabled={!$uiState.uiUnlocked || !spec.editable} label={spec.name} @@ -396,7 +409,7 @@ {:else if spec.type === "number"} updateWorkflowAttribute(spec, e.detail)} diff --git a/src/lib/stores/layoutState.ts b/src/lib/stores/layoutState.ts index 96a499d..a74b18b 100644 --- a/src/lib/stores/layoutState.ts +++ b/src/lib/stores/layoutState.ts @@ -31,6 +31,12 @@ export type LayoutAttributes = { * Name of the "Queue Prompt" button. Set to blank to hide the button. */ queuePromptButtonName: string, + + /* + * If true, clicking the "Queue Prompt" button will run the default subgraph. + * Set this to false if you need special behavior before running any subgraphs. + */ + queuePromptButtonRunWorkflow: boolean, } /* @@ -86,6 +92,8 @@ export type LayoutState = { * Global workflow attributes */ attrs: LayoutAttributes + + refreshPropsPanel: Writable } /** @@ -539,6 +547,13 @@ const ALL_ATTRIBUTES: AttributesSpecList = [ location: "workflow", editable: true, defaultValue: "Queue Prompt" + }, + { + name: "queuePromptButtonRunWorkflow", + type: "boolean", + location: "workflow", + editable: true, + defaultValue: true } ] } @@ -612,7 +627,7 @@ export interface ContainerLayout extends IDragItem { // (not serialized) // Accordion - isOpen?: boolean, + isOpen?: Writable, } /* @@ -657,6 +672,7 @@ const store: Writable = writable({ currentSelectionNodes: [], isMenuOpen: false, isConfiguring: true, + refreshPropsPanel: writable(0), attrs: { ...defaultWorkflowAttributes } @@ -913,6 +929,7 @@ function initDefaultLayout() { currentSelectionNodes: [], isMenuOpen: false, isConfiguring: false, + refreshPropsPanel: writable(0), attrs: { ...defaultWorkflowAttributes } @@ -1028,12 +1045,16 @@ function deserialize(data: SerializedLayoutState, graph: LGraph) { currentSelectionNodes: [], isMenuOpen: false, isConfiguring: false, + refreshPropsPanel: writable(0), attrs: { ...defaultWorkflowAttributes, ...data.attrs } } - console.debug("[layoutState] deserialize", data, state) + console.debug("[layoutState] deserialize", data, state, defaultWorkflowAttributes) store.set(state) + + // Ensure properties panel is updated with new state + state.refreshPropsPanel.set(get(state.refreshPropsPanel) + 1) } function onStartConfigure() { diff --git a/src/lib/widgets/CheckboxWidget.svelte b/src/lib/widgets/CheckboxWidget.svelte index 1b84c5b..a9407be 100644 --- a/src/lib/widgets/CheckboxWidget.svelte +++ b/src/lib/widgets/CheckboxWidget.svelte @@ -5,12 +5,13 @@ import { Checkbox } from "@gradio/form"; import { get, type Writable, writable } from "svelte/store"; import { isDisabled } from "./utils" + import type { SelectData } from "@gradio/utils"; export let widget: WidgetLayout | null = null; export let isMobile: boolean = false; let node: ComfyCheckboxNode | null = null; let nodeValue: Writable | null = null; - let attrsChanged: Writable | null = null; + let attrsChanged: Writable | null = null; $: widget && setNodeValue(widget); @@ -22,7 +23,8 @@ } }; - function onSelect() { + function onSelect(e: CustomEvent) { + $nodeValue = e.detail.selected navigator.vibrate(20) } @@ -35,7 +37,7 @@ diff --git a/src/lib/widgets/ComboWidget.svelte b/src/lib/widgets/ComboWidget.svelte index 18293d5..30c4880 100644 --- a/src/lib/widgets/ComboWidget.svelte +++ b/src/lib/widgets/ComboWidget.svelte @@ -41,6 +41,7 @@ nodeValue = node.value; propsChanged = node.propsChanged; valuesForCombo = node.valuesForCombo; + lastConfigured = $valuesForCombo } } diff --git a/src/mobile/GenToolbar.svelte b/src/mobile/GenToolbar.svelte index d7245d9..a2be969 100644 --- a/src/mobile/GenToolbar.svelte +++ b/src/mobile/GenToolbar.svelte @@ -76,7 +76,7 @@ {#if $layoutState.attrs.queuePromptButtonName != ""} - {$layoutState.attrs.queuePromptButtonName} + {$layoutState.attrs.queuePromptButtonName} {/if} 🔄