add batch count to the menu

This commit is contained in:
m957ymj75urz 2023-03-09 18:02:03 +01:00
parent 4ed39cf038
commit 21553316f2
2 changed files with 28 additions and 21 deletions

View File

@ -641,31 +641,33 @@ class ComfyApp {
return { workflow, output }; return { workflow, output };
} }
async queuePrompt(number) { async queuePrompt(number, batchCount = 1) {
const p = await this.graphToPrompt(); for (let i = 0; i < batchCount; i++) {
const p = await this.graphToPrompt();
try { try {
await api.queuePrompt(number, p); await api.queuePrompt(number, p);
} catch (error) { } catch (error) {
this.ui.dialog.show(error.response || error.toString()); this.ui.dialog.show(error.response || error.toString());
return; return;
} }
for (const n of p.workflow.nodes) { for (const n of p.workflow.nodes) {
const node = graph.getNodeById(n.id); const node = graph.getNodeById(n.id);
if (node.widgets) { if (node.widgets) {
for (const widget of node.widgets) { for (const widget of node.widgets) {
// Allow widgets to run callbacks after a prompt has been queued // Allow widgets to run callbacks after a prompt has been queued
// e.g. random seed after every gen // e.g. random seed after every gen
if (widget.afterQueued) { if (widget.afterQueued) {
widget.afterQueued(); widget.afterQueued();
}
} }
} }
} }
}
this.canvas.draw(true, true); this.canvas.draw(true, true);
await this.ui.queue.update(); await this.ui.queue.update();
}
} }
/** /**

View File

@ -254,9 +254,14 @@ export class ComfyUI {
$el("span", { $: (q) => (this.queueSize = q) }), $el("span", { $: (q) => (this.queueSize = q) }),
$el("button.comfy-settings-btn", { textContent: "⚙️", onclick: () => this.settings.show() }), $el("button.comfy-settings-btn", { textContent: "⚙️", onclick: () => this.settings.show() }),
]), ]),
$el("button.comfy-queue-btn", { textContent: "Queue Prompt", onclick: () => app.queuePrompt(0) }), $el("div", { style: { width: "100%" }}, [
$el("label", { innerHTML: "Batch count" }, [
$el("input", { type: "number", value: "1", min: "1", style: { width: "30%", "margin-left": "0.4em" }, onchange: (i) => this.batchCount = i.target.value })
]),
]),
$el("button.comfy-queue-btn", { textContent: "Queue Prompt", onclick: () => app.queuePrompt(0, this.batchCount) }),
$el("div.comfy-menu-btns", [ $el("div.comfy-menu-btns", [
$el("button", { textContent: "Queue Front", onclick: () => app.queuePrompt(-1) }), $el("button", { textContent: "Queue Front", onclick: () => app.queuePrompt(-1, this.batchCount) }),
$el("button", { $el("button", {
$: (b) => (this.queue.button = b), $: (b) => (this.queue.button = b),
textContent: "View Queue", textContent: "View Queue",