mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-03-14 13:17:32 +00:00
Make auto saved workflow stored per tab
This commit is contained in:
parent
9321198da6
commit
ed2fa105ae
@ -5,6 +5,7 @@ class ComfyApi extends EventTarget {
|
|||||||
super();
|
super();
|
||||||
this.api_host = location.host;
|
this.api_host = location.host;
|
||||||
this.api_base = location.pathname.split('/').slice(0, -1).join('/');
|
this.api_base = location.pathname.split('/').slice(0, -1).join('/');
|
||||||
|
this.initialClientId = sessionStorage.getItem("clientId");
|
||||||
}
|
}
|
||||||
|
|
||||||
apiURL(route) {
|
apiURL(route) {
|
||||||
@ -118,7 +119,8 @@ class ComfyApi extends EventTarget {
|
|||||||
case "status":
|
case "status":
|
||||||
if (msg.data.sid) {
|
if (msg.data.sid) {
|
||||||
this.clientId = msg.data.sid;
|
this.clientId = msg.data.sid;
|
||||||
window.name = this.clientId;
|
window.name = this.clientId; // use window name so it isnt reused when duplicating tabs
|
||||||
|
sessionStorage.setItem("clientId", this.clientId); // store in session storage so duplicate tab can load correct workflow
|
||||||
}
|
}
|
||||||
this.dispatchEvent(new CustomEvent("status", { detail: msg.data.status }));
|
this.dispatchEvent(new CustomEvent("status", { detail: msg.data.status }));
|
||||||
break;
|
break;
|
||||||
|
@ -1499,12 +1499,17 @@ export class ComfyApp {
|
|||||||
// Load previous workflow
|
// Load previous workflow
|
||||||
let restored = false;
|
let restored = false;
|
||||||
try {
|
try {
|
||||||
const json = localStorage.getItem("workflow");
|
const loadWorkflow = async (json) => {
|
||||||
if (json) {
|
if (json) {
|
||||||
const workflow = JSON.parse(json);
|
const workflow = JSON.parse(json);
|
||||||
await this.loadGraphData(workflow);
|
await this.loadGraphData(workflow);
|
||||||
restored = true;
|
return true;
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
const clientId = api.initialClientId ?? api.clientId;
|
||||||
|
restored =
|
||||||
|
(clientId && (await loadWorkflow(sessionStorage.getItem(`workflow:${clientId}`)))) ||
|
||||||
|
(await loadWorkflow(localStorage.getItem("workflow")));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Error loading previous workflow", err);
|
console.error("Error loading previous workflow", err);
|
||||||
}
|
}
|
||||||
@ -1515,7 +1520,13 @@ export class ComfyApp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Save current workflow automatically
|
// Save current workflow automatically
|
||||||
setInterval(() => localStorage.setItem("workflow", JSON.stringify(this.graph.serialize())), 1000);
|
setInterval(() => {
|
||||||
|
const workflow = JSON.stringify(this.graph.serialize());
|
||||||
|
localStorage.setItem("workflow", workflow);
|
||||||
|
if (api.clientId) {
|
||||||
|
sessionStorage.setItem(`workflow:${api.clientId}`, workflow);
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
this.#addDrawNodeHandler();
|
this.#addDrawNodeHandler();
|
||||||
this.#addDrawGroupsHandler();
|
this.#addDrawGroupsHandler();
|
||||||
|
Loading…
Reference in New Issue
Block a user