mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-04-20 03:13:30 +00:00
Apply primitive nodes to graph before serializing workflow.
This commit is contained in:
parent
723847f6b3
commit
40963b5a16
@ -1586,6 +1586,16 @@ export class ComfyApp {
|
|||||||
* @returns The workflow and node links
|
* @returns The workflow and node links
|
||||||
*/
|
*/
|
||||||
async graphToPrompt() {
|
async graphToPrompt() {
|
||||||
|
for (const node of this.graph.computeExecutionOrder(false)) {
|
||||||
|
if (node.isVirtualNode) {
|
||||||
|
// Don't serialize frontend only nodes but let them make changes
|
||||||
|
if (node.applyToGraph) {
|
||||||
|
node.applyToGraph();
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const workflow = this.graph.serialize();
|
const workflow = this.graph.serialize();
|
||||||
const output = {};
|
const output = {};
|
||||||
// Process nodes in order of execution
|
// Process nodes in order of execution
|
||||||
@ -1593,10 +1603,6 @@ export class ComfyApp {
|
|||||||
const n = workflow.nodes.find((n) => n.id === node.id);
|
const n = workflow.nodes.find((n) => n.id === node.id);
|
||||||
|
|
||||||
if (node.isVirtualNode) {
|
if (node.isVirtualNode) {
|
||||||
// Don't serialize frontend only nodes but let them make changes
|
|
||||||
if (node.applyToGraph) {
|
|
||||||
node.applyToGraph(workflow);
|
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -719,20 +719,22 @@ export class ComfyUI {
|
|||||||
filename += ".json";
|
filename += ".json";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const json = JSON.stringify(app.graph.serialize(), null, 2); // convert the data to a JSON string
|
app.graphToPrompt().then(p=>{
|
||||||
const blob = new Blob([json], {type: "application/json"});
|
const json = JSON.stringify(p.workflow, null, 2); // convert the data to a JSON string
|
||||||
const url = URL.createObjectURL(blob);
|
const blob = new Blob([json], {type: "application/json"});
|
||||||
const a = $el("a", {
|
const url = URL.createObjectURL(blob);
|
||||||
href: url,
|
const a = $el("a", {
|
||||||
download: filename,
|
href: url,
|
||||||
style: {display: "none"},
|
download: filename,
|
||||||
parent: document.body,
|
style: {display: "none"},
|
||||||
|
parent: document.body,
|
||||||
|
});
|
||||||
|
a.click();
|
||||||
|
setTimeout(function () {
|
||||||
|
a.remove();
|
||||||
|
window.URL.revokeObjectURL(url);
|
||||||
|
}, 0);
|
||||||
});
|
});
|
||||||
a.click();
|
|
||||||
setTimeout(function () {
|
|
||||||
a.remove();
|
|
||||||
window.URL.revokeObjectURL(url);
|
|
||||||
}, 0);
|
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
$el("button", {
|
$el("button", {
|
||||||
|
Loading…
Reference in New Issue
Block a user