From 8b0ec819ff2b68d5c523fb00918cf25884387981 Mon Sep 17 00:00:00 2001 From: "Dr.Lt.Data" Date: Sat, 17 Jun 2023 20:05:57 +0900 Subject: [PATCH] bugfix: loop explosion by multiple input nodes --- worklist_execution.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/worklist_execution.py b/worklist_execution.py index e28170a62..2d29ee977 100644 --- a/worklist_execution.py +++ b/worklist_execution.py @@ -156,6 +156,10 @@ def worklist_execute(server, prompt, outputs, extra_data, prompt_id, outputs_ui, def add_work(item): worklist.put(item) cnt = will_execute.get(item, 0) + + if item in outputs: + del outputs[item] + will_execute[item] = cnt + 1 def get_work(): @@ -227,6 +231,9 @@ def worklist_execute(server, prompt, outputs, extra_data, prompt_id, outputs_ui, nonlocal input_data_all input_data_all = get_input_data(inputs, class_def, unique_id, outputs, prompt, extra_data) + if input_data_all is None: + return + if server.client_id is not None: server.last_node_id = unique_id server.send_sync("executing", {"node": unique_id, "prompt_id": prompt_id, "progress": get_progress()}, @@ -244,6 +251,10 @@ def worklist_execute(server, prompt, outputs, extra_data, prompt_id, outputs_ui, executed.add(unique_id) result = exception_helper(unique_id, input_data_all, executed, outputs, task) + + if input_data_all is None: + continue + if result is not None: return result # error state else: