comfyanonymous 2 years ago
commit d4273eadcd

@ -5,6 +5,15 @@ import { defaultGraph } from "./defaultGraph.js";
import { getPngMetadata, importA1111 } from "./pnginfo.js";
class ComfyApp {
/**
* List of {number, batchCount} entries to queue
*/
#queueItems = [];
/**
* If the queue is currently being processed
*/
#processingQueue = false;
constructor() {
this.ui = new ComfyUI(this);
this.extensions = [];
@ -915,6 +924,18 @@ class ComfyApp {
}
async queuePrompt(number, batchCount = 1) {
this.#queueItems.push({ number, batchCount });
// Only have one action process the items so each one gets a unique seed correctly
if (this.#processingQueue) {
return;
}
this.#processingQueue = true;
try {
while (this.#queueItems.length) {
({ number, batchCount } = this.#queueItems.pop());
for (let i = 0; i < batchCount; i++) {
const p = await this.graphToPrompt();
@ -922,7 +943,7 @@ class ComfyApp {
await api.queuePrompt(number, p);
} catch (error) {
this.ui.dialog.show(error.response || error.toString());
return;
break;
}
for (const n of p.workflow.nodes) {
@ -942,6 +963,10 @@ class ComfyApp {
await this.ui.queue.update();
}
}
} finally {
this.#processingQueue = false;
}
}
/**
* Loads workflow data from the specified file

Loading…
Cancel
Save