|
|
|
@ -2157,6 +2157,14 @@ export class ComfyApp {
|
|
|
|
|
api.dispatchEvent(new CustomEvent("promptQueued", { detail: { number, batchCount } })); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
showErrorOnFileLoad(file) { |
|
|
|
|
this.ui.dialog.show( |
|
|
|
|
$el("div", [ |
|
|
|
|
$el("p", {textContent: `Unable to find workflow in ${file.name}`}) |
|
|
|
|
]).outerHTML |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Loads workflow data from the specified file |
|
|
|
|
* @param {File} file |
|
|
|
@ -2164,27 +2172,27 @@ export class ComfyApp {
|
|
|
|
|
async handleFile(file) { |
|
|
|
|
if (file.type === "image/png") { |
|
|
|
|
const pngInfo = await getPngMetadata(file); |
|
|
|
|
if (pngInfo) { |
|
|
|
|
if (pngInfo.workflow) { |
|
|
|
|
await this.loadGraphData(JSON.parse(pngInfo.workflow)); |
|
|
|
|
} else if (pngInfo.prompt) { |
|
|
|
|
this.loadApiJson(JSON.parse(pngInfo.prompt)); |
|
|
|
|
} else if (pngInfo.parameters) { |
|
|
|
|
importA1111(this.graph, pngInfo.parameters); |
|
|
|
|
} |
|
|
|
|
if (pngInfo?.workflow) { |
|
|
|
|
await this.loadGraphData(JSON.parse(pngInfo.workflow)); |
|
|
|
|
} else if (pngInfo?.prompt) { |
|
|
|
|
this.loadApiJson(JSON.parse(pngInfo.prompt)); |
|
|
|
|
} else if (pngInfo?.parameters) { |
|
|
|
|
importA1111(this.graph, pngInfo.parameters); |
|
|
|
|
} else { |
|
|
|
|
this.showErrorOnFileLoad(file); |
|
|
|
|
} |
|
|
|
|
} else if (file.type === "image/webp") { |
|
|
|
|
const pngInfo = await getWebpMetadata(file); |
|
|
|
|
if (pngInfo) { |
|
|
|
|
if (pngInfo.workflow) { |
|
|
|
|
this.loadGraphData(JSON.parse(pngInfo.workflow)); |
|
|
|
|
} else if (pngInfo.Workflow) { |
|
|
|
|
this.loadGraphData(JSON.parse(pngInfo.Workflow)); // Support loading workflows from that webp custom node.
|
|
|
|
|
} else if (pngInfo.prompt) { |
|
|
|
|
this.loadApiJson(JSON.parse(pngInfo.prompt)); |
|
|
|
|
} else if (pngInfo.Prompt) { |
|
|
|
|
this.loadApiJson(JSON.parse(pngInfo.Prompt)); // Support loading prompts from that webp custom node.
|
|
|
|
|
} |
|
|
|
|
// Support loading workflows from that webp custom node.
|
|
|
|
|
const workflow = pngInfo?.workflow || pngInfo?.Workflow; |
|
|
|
|
const prompt = pngInfo?.prompt || pngInfo?.Prompt; |
|
|
|
|
|
|
|
|
|
if (workflow) { |
|
|
|
|
this.loadGraphData(JSON.parse(workflow)); |
|
|
|
|
} else if (prompt) { |
|
|
|
|
this.loadApiJson(JSON.parse(prompt)); |
|
|
|
|
} else { |
|
|
|
|
this.showErrorOnFileLoad(file); |
|
|
|
|
} |
|
|
|
|
} else if (file.type === "application/json" || file.name?.endsWith(".json")) { |
|
|
|
|
const reader = new FileReader(); |
|
|
|
@ -2205,7 +2213,11 @@ export class ComfyApp {
|
|
|
|
|
await this.loadGraphData(JSON.parse(info.workflow)); |
|
|
|
|
} else if (info.prompt) { |
|
|
|
|
this.loadApiJson(JSON.parse(info.prompt)); |
|
|
|
|
} else { |
|
|
|
|
this.showErrorOnFileLoad(file); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
this.showErrorOnFileLoad(file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|