diff --git a/web/js/workflows.js b/web/js/workflows.js index cf312a6..7558f6d 100644 --- a/web/js/workflows.js +++ b/web/js/workflows.js @@ -265,12 +265,40 @@ app.registerExtension({ parent: document.head, }); }, - setup() { + async setup() { workflows = new PysssssWorkflows(); app.refreshComboInNodes = function () { workflows.load(); refreshComboInNodes.apply(this, arguments); }; + + const comfyDefault = "[ComfyUI Default]"; + const defaultWorkflow = app.ui.settings.addSetting({ + id: "pysssss.Workflows.Default", + name: "🐍 Default Workflow", + defaultValue: comfyDefault, + type: "combo", + options: (value) => + [comfyDefault, workflows.workflows].map((m) => ({ + value: m, + text: m, + selected: m === value, + })), + }); + + document.getElementById("comfy-load-default-button").onclick = async function () { + if ( + localStorage["Comfy.Settings.Comfy.ConfirmClear"] === "false" || + confirm(`Load default workflow (${defaultWorkflow.value})?`) + ) { + if (defaultWorkflow.value === comfyDefault) { + app.loadGraphData(); + } else { + const json = await getWorkflow(defaultWorkflow.value); + app.loadGraphData(json); + } + } + }; }, async beforeRegisterNodeDef(nodeType, nodeData, app) { const getExtraMenuOptions = nodeType.prototype.getExtraMenuOptions;