1
mirror of https://github.com/comfyanonymous/ComfyUI.git synced 2025-08-02 23:14:49 +08:00

Show message in the frontend if prompt execution raises an exception

This commit is contained in:
space-nuko
2023-05-25 13:03:41 -05:00
parent ffec815257
commit 6b2a8a3845
3 changed files with 45 additions and 10 deletions

View File

@@ -258,27 +258,31 @@ class PromptExecutor:
self.old_prompt = {}
self.server = server
def handle_execution_error(self, prompt_id, current_outputs, executed, error, ex):
def handle_execution_error(self, prompt_id, prompt, current_outputs, executed, error, ex):
node_id = error["node_id"]
class_type = prompt[node_id]["class_type"]
# First, send back the status to the frontend depending
# on the exception type
if isinstance(ex, comfy.model_management.InterruptProcessingException):
mes = {
"prompt_id": prompt_id,
"node_id": node_id,
"node_type": class_type,
"executed": list(executed),
"node_id": error["node_id"],
}
self.server.send_sync("execution_interrupted", mes, self.server.client_id)
else:
if self.server.client_id is not None:
mes = {
"prompt_id": prompt_id,
"node_id": node_id,
"node_type": class_type,
"executed": list(executed),
"message": error["message"],
"exception_type": error["exception_type"],
"traceback": error["traceback"],
"node_id": error["node_id"],
"current_inputs": error["current_inputs"],
"current_outputs": error["current_outputs"],
}
@@ -346,7 +350,7 @@ class PromptExecutor:
# error was raised
success, error, ex = recursive_execute(self.server, prompt, self.outputs, output_node_id, extra_data, executed, prompt_id, self.outputs_ui)
if success is not True:
self.handle_execution_error(prompt_id, current_outputs, executed, error, ex)
self.handle_execution_error(prompt_id, prompt, current_outputs, executed, error, ex)
for x in executed:
self.old_prompt[x] = copy.deepcopy(prompt[x])