Browse Source

Highlight nodes with errors in red even when workflow works fine.

pull/899/head
comfyanonymous 1 year ago
parent
commit
876dadca84
  1. 3
      server.py
  2. 2
      web/scripts/api.js
  3. 16
      web/scripts/app.js

3
server.py

@ -444,7 +444,8 @@ class PromptServer():
prompt_id = str(uuid.uuid4())
outputs_to_execute = valid[2]
self.prompt_queue.put((number, prompt_id, prompt, extra_data, outputs_to_execute))
return web.json_response({"prompt_id": prompt_id, "number": number})
response = {"prompt_id": prompt_id, "number": number, "node_errors": valid[3]}
return web.json_response(response)
else:
print("invalid prompt:", valid[1])
return web.json_response({"error": valid[1], "node_errors": valid[3]}, status=400)

2
web/scripts/api.js

@ -202,6 +202,8 @@ class ComfyApi extends EventTarget {
response: await res.json(),
};
}
return await res.json();
}
/**

16
web/scripts/app.js

@ -836,7 +836,7 @@ export class ComfyApp {
LGraphCanvas.prototype.drawNodeShape = function (node, ctx, size, fgcolor, bgcolor, selected, mouse_over) {
const res = origDrawNodeShape.apply(this, arguments);
const nodeErrors = self.lastPromptError?.node_errors[node.id];
const nodeErrors = self.lastNodeErrors?.[node.id];
let color = null;
let lineWidth = 1;
@ -845,7 +845,7 @@ export class ComfyApp {
} else if (self.dragOverNode && node.id === self.dragOverNode.id) {
color = "dodgerblue";
}
else if (self.lastPromptError != null && nodeErrors?.errors) {
else if (nodeErrors?.errors) {
color = "red";
lineWidth = 2;
}
@ -1413,7 +1413,7 @@ export class ComfyApp {
}
this.#processingQueue = true;
this.lastPromptError = null;
this.lastNodeErrors = null;
try {
while (this.#queueItems.length) {
@ -1423,12 +1423,16 @@ export class ComfyApp {
const p = await this.graphToPrompt();
try {
await api.queuePrompt(number, p);
const res = await api.queuePrompt(number, p);
this.lastNodeErrors = res.node_errors;
if (this.lastNodeErrors.length > 0) {
this.canvas.draw(true, true);
}
} catch (error) {
const formattedError = this.#formatPromptError(error)
this.ui.dialog.show(formattedError);
if (error.response) {
this.lastPromptError = error.response;
this.lastNodeErrors = error.response.node_errors;
this.canvas.draw(true, true);
}
break;
@ -1534,7 +1538,7 @@ export class ComfyApp {
clean() {
this.nodeOutputs = {};
this.nodePreviewImages = {}
this.lastPromptError = null;
this.lastNodeErrors = null;
this.lastExecutionError = null;
this.runningNodeId = null;
}

Loading…
Cancel
Save