From fecd06d3f4cd09ef52433a0a66538b799050aebe Mon Sep 17 00:00:00 2001 From: space-nuko <24979496+space-nuko@users.noreply.github.com> Date: Thu, 25 May 2023 15:46:04 -0500 Subject: [PATCH] Refactor for built-in templates --- litegraph | 2 +- src/lib/ComfyBoxTemplate.ts | 1 + src/lib/ComfyGraphCanvas.ts | 2 +- src/lib/components/ComfyApp.ts | 12 ++- src/lib/components/ComfyTemplates.svelte | 46 +++++++----- src/lib/stores/templateState.ts | 93 ++++++++++++++++-------- src/tests/ComfyGraphTests.ts | 35 ++++++--- 7 files changed, 126 insertions(+), 65 deletions(-) diff --git a/litegraph b/litegraph index 8ca6cca..d335948 160000 --- a/litegraph +++ b/litegraph @@ -1 +1 @@ -Subproject commit 8ca6cca77709af3644bb9474b28654f0459ec507 +Subproject commit d335948703b8705e7bc2b3a042142442a5d45853 diff --git a/src/lib/ComfyBoxTemplate.ts b/src/lib/ComfyBoxTemplate.ts index d3ec966..c59b040 100644 --- a/src/lib/ComfyBoxTemplate.ts +++ b/src/lib/ComfyBoxTemplate.ts @@ -42,6 +42,7 @@ export type SerializedComfyBoxTemplate = { version: 1, id: UUID, commitHash: string, + isBuiltIn?: boolean, /* * Serialized metadata diff --git a/src/lib/ComfyGraphCanvas.ts b/src/lib/ComfyGraphCanvas.ts index 8dd4b11..c3b792e 100644 --- a/src/lib/ComfyGraphCanvas.ts +++ b/src/lib/ComfyGraphCanvas.ts @@ -489,7 +489,7 @@ export default class ComfyGraphCanvas extends LGraphCanvas { const serialized = serializeTemplate(this, template); try { - if (templateState.add(serialized)) { + if (templateState.addTemplate(serialized)) { notify("Template saved!", { type: "success" }) } else { diff --git a/src/lib/components/ComfyApp.ts b/src/lib/components/ComfyApp.ts index b08c4a5..96e1cda 100644 --- a/src/lib/components/ComfyApp.ts +++ b/src/lib/components/ComfyApp.ts @@ -36,7 +36,7 @@ import { type SvelteComponentDev } from "svelte/internal"; import { get, writable, type Writable } from "svelte/store"; import ComfyPromptSerializer, { isActiveBackendNode, UpstreamNodeLocator } from "./ComfyPromptSerializer"; import DanbooruTags from "$lib/DanbooruTags"; -import { deserializeTemplateFromSVG } from "$lib/ComfyBoxTemplate"; +import { deserializeTemplateFromSVG, type SerializedComfyBoxTemplate } from "$lib/ComfyBoxTemplate"; import templateState from "$lib/stores/templateState"; export const COMFYBOX_SERIAL_VERSION = 1; @@ -240,7 +240,9 @@ export default class ComfyApp { this.addKeyboardHandler(); await this.updateHistoryAndQueue(); - templateState.load(); + + const builtInTemplates = await this.loadBuiltInTemplates(); + templateState.load(builtInTemplates); await this.initFrontendFeatures(); @@ -271,6 +273,10 @@ export default class ComfyApp { } } + async loadBuiltInTemplates(): Promise { + return [] + } + resizeCanvas() { if (!this.canvasEl) return; @@ -1062,7 +1068,7 @@ export default class ComfyApp { const importTemplate = () => { try { - if (templateState.add(templateAndSvg)) { + if (templateState.addTemplate(templateAndSvg)) { notify("Template imported successfully!", { type: "success" }) } else { diff --git a/src/lib/components/ComfyTemplates.svelte b/src/lib/components/ComfyTemplates.svelte index 3746a65..aae70a4 100644 --- a/src/lib/components/ComfyTemplates.svelte +++ b/src/lib/components/ComfyTemplates.svelte @@ -1,6 +1,7 @@