Compare commits

..

2 Commits

Author SHA1 Message Date
comfyanonymous
ba55063ac5 Remove all fields not defined in nodes from prompt before execution. 2025-05-28 00:04:08 -04:00
comfyanonymous
06c661004e
Memory estimation code can now take into account conds. (#8307) 2025-05-27 15:09:05 -04:00

View File

@ -435,6 +435,20 @@ def execute(server, dynprompt, caches, current_item, extra_data, executed, promp
return (ExecutionResult.SUCCESS, None, None)
def clean_inputs(prompt):
for unique_id, node in prompt.items():
inputs = node['inputs']
class_type = node['class_type']
obj_class = nodes.NODE_CLASS_MAPPINGS[class_type]
class_inputs = obj_class.INPUT_TYPES()
valid_inputs = set(class_inputs.get('required',{})).union(set(class_inputs.get('optional',{})))
for k in list(inputs.keys()):
if k not in valid_inputs:
inputs.pop(k)
return prompt
class PromptExecutor:
def __init__(self, server, cache_type=False, cache_size=None):
self.cache_size = cache_size
@ -486,6 +500,7 @@ class PromptExecutor:
def execute(self, prompt, prompt_id, extra_data={}, execute_outputs=[]):
nodes.interrupt_processing(False)
prompt = clean_inputs(prompt)
if "client_id" in extra_data:
self.server.client_id = extra_data["client_id"]