mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-08-03 15:39:54 +08:00
Export and import templates
This commit is contained in:
@@ -1416,6 +1416,43 @@ export class ComfyApp {
|
||||
}
|
||||
}
|
||||
|
||||
loadTemplateData(templateData) {
|
||||
if (!templateData?.templates) {
|
||||
return;
|
||||
}
|
||||
|
||||
const old = localStorage.getItem("litegrapheditor_clipboard");
|
||||
|
||||
var maxY, nodeBottom, node;
|
||||
|
||||
for (const template of templateData.templates) {
|
||||
if (!template?.data) {
|
||||
continue;
|
||||
}
|
||||
|
||||
localStorage.setItem("litegrapheditor_clipboard", template.data);
|
||||
app.canvas.pasteFromClipboard();
|
||||
|
||||
// Move mouse position down to paste the next template below
|
||||
|
||||
maxY = false;
|
||||
|
||||
for (const i in app.canvas.selected_nodes) {
|
||||
node = app.canvas.selected_nodes[i];
|
||||
|
||||
nodeBottom = node.pos[1] + node.size[1];
|
||||
|
||||
if (maxY === false || nodeBottom > maxY) {
|
||||
maxY = nodeBottom;
|
||||
}
|
||||
}
|
||||
|
||||
app.canvas.graph_mouse[1] = maxY + 50;
|
||||
}
|
||||
|
||||
localStorage.setItem("litegrapheditor_clipboard", old);
|
||||
}
|
||||
|
||||
/**
|
||||
* Populates the graph with the specified workflow data
|
||||
* @param {*} graphData A serialized graph object
|
||||
@@ -1756,7 +1793,12 @@ export class ComfyApp {
|
||||
} else if (file.type === "application/json" || file.name?.endsWith(".json")) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = () => {
|
||||
this.loadGraphData(JSON.parse(reader.result));
|
||||
var jsonContent = JSON.parse(reader.result);
|
||||
if (jsonContent?.templates) {
|
||||
this.loadTemplateData(jsonContent);
|
||||
} else {
|
||||
this.loadGraphData(jsonContent);
|
||||
}
|
||||
};
|
||||
reader.readAsText(file);
|
||||
} else if (file.name?.endsWith(".latent") || file.name?.endsWith(".safetensors")) {
|
||||
|
Reference in New Issue
Block a user