|
|
@ -262,6 +262,36 @@ export class ComfyApp { |
|
|
|
}) |
|
|
|
}) |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#addRestoreWorkflowView() { |
|
|
|
|
|
|
|
const serialize = LGraph.prototype.serialize; |
|
|
|
|
|
|
|
const self = this; |
|
|
|
|
|
|
|
LGraph.prototype.serialize = function() { |
|
|
|
|
|
|
|
const workflow = serialize.apply(this, arguments); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Store the drag & scale info in the serialized workflow if the setting is enabled
|
|
|
|
|
|
|
|
if (self.enableWorkflowViewRestore.value) { |
|
|
|
|
|
|
|
if (!workflow.extra) { |
|
|
|
|
|
|
|
workflow.extra = {}; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
workflow.extra.ds = { |
|
|
|
|
|
|
|
scale: self.canvas.ds.scale, |
|
|
|
|
|
|
|
offset: self.canvas.ds.offset, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
} else if (workflow.extra?.ds) { |
|
|
|
|
|
|
|
// Clear any old view data
|
|
|
|
|
|
|
|
delete workflow.extra.ds; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return workflow; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.enableWorkflowViewRestore = this.ui.settings.addSetting({ |
|
|
|
|
|
|
|
id: "Comfy.EnableWorkflowViewRestore", |
|
|
|
|
|
|
|
name: "Save and restore canvas position and zoom level in workflows", |
|
|
|
|
|
|
|
type: "boolean", |
|
|
|
|
|
|
|
defaultValue: true |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Adds special context menu handling for nodes |
|
|
|
* Adds special context menu handling for nodes |
|
|
@ -1505,6 +1535,7 @@ export class ComfyApp { |
|
|
|
this.#addProcessKeyHandler(); |
|
|
|
this.#addProcessKeyHandler(); |
|
|
|
this.#addConfigureHandler(); |
|
|
|
this.#addConfigureHandler(); |
|
|
|
this.#addApiUpdateHandlers(); |
|
|
|
this.#addApiUpdateHandlers(); |
|
|
|
|
|
|
|
this.#addRestoreWorkflowView(); |
|
|
|
|
|
|
|
|
|
|
|
this.graph = new LGraph(); |
|
|
|
this.graph = new LGraph(); |
|
|
|
|
|
|
|
|
|
|
@ -1805,6 +1836,10 @@ export class ComfyApp { |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
this.graph.configure(graphData); |
|
|
|
this.graph.configure(graphData); |
|
|
|
|
|
|
|
if (this.enableWorkflowViewRestore.value && graphData.extra?.ds) { |
|
|
|
|
|
|
|
this.canvas.ds.offset = graphData.extra.ds.offset; |
|
|
|
|
|
|
|
this.canvas.ds.scale = graphData.extra.ds.scale; |
|
|
|
|
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
} catch (error) { |
|
|
|
let errorHint = []; |
|
|
|
let errorHint = []; |
|
|
|
// Try extracting filename to see if it was caused by an extension script
|
|
|
|
// Try extracting filename to see if it was caused by an extension script
|
|
|
|