Ensure inputs/outputs/hidden are lists in schema finalize function, remove no longer needed 'is not None' checks

This commit is contained in:
Jedrzej Kosinski 2025-12-03 11:13:42 -08:00
parent 203a4e9b46
commit c4bbb1e320

View File

@ -1253,11 +1253,10 @@ class Schema:
- verify ids on inputs and outputs are unique - both internally and in relation to each other - verify ids on inputs and outputs are unique - both internally and in relation to each other
''' '''
nested_inputs: list[Input] = [] nested_inputs: list[Input] = []
if self.inputs is not None:
for input in self.inputs: for input in self.inputs:
nested_inputs.extend(input.get_all()) nested_inputs.extend(input.get_all())
input_ids = [i.id for i in nested_inputs] if nested_inputs is not None else [] input_ids = [i.id for i in nested_inputs]
output_ids = [o.id for o in self.outputs] if self.outputs is not None else [] output_ids = [o.id for o in self.outputs]
input_set = set(input_ids) input_set = set(input_ids)
output_set = set(output_ids) output_set = set(output_ids)
issues = [] issues = []
@ -1273,33 +1272,33 @@ class Schema:
if len(issues) > 0: if len(issues) > 0:
raise ValueError("\n".join(issues)) raise ValueError("\n".join(issues))
# validate inputs and outputs # validate inputs and outputs
if self.inputs is not None:
for input in self.inputs: for input in self.inputs:
input.validate() input.validate()
if self.outputs is not None:
for output in self.outputs: for output in self.outputs:
output.validate() output.validate()
def finalize(self): def finalize(self):
"""Add hidden based on selected schema options, and give outputs without ids default ids.""" """Add hidden based on selected schema options, and give outputs without ids default ids."""
# if is an api_node, will need key-related hidden # ensure inputs, outputs, and hidden are lists
if self.is_api_node: if self.inputs is None:
self.inputs = []
if self.outputs is None:
self.outputs = []
if self.hidden is None: if self.hidden is None:
self.hidden = [] self.hidden = []
# if is an api_node, will need key-related hidden
if self.is_api_node:
if Hidden.auth_token_comfy_org not in self.hidden: if Hidden.auth_token_comfy_org not in self.hidden:
self.hidden.append(Hidden.auth_token_comfy_org) self.hidden.append(Hidden.auth_token_comfy_org)
if Hidden.api_key_comfy_org not in self.hidden: if Hidden.api_key_comfy_org not in self.hidden:
self.hidden.append(Hidden.api_key_comfy_org) self.hidden.append(Hidden.api_key_comfy_org)
# if is an output_node, will need prompt and extra_pnginfo # if is an output_node, will need prompt and extra_pnginfo
if self.is_output_node: if self.is_output_node:
if self.hidden is None:
self.hidden = []
if Hidden.prompt not in self.hidden: if Hidden.prompt not in self.hidden:
self.hidden.append(Hidden.prompt) self.hidden.append(Hidden.prompt)
if Hidden.extra_pnginfo not in self.hidden: if Hidden.extra_pnginfo not in self.hidden:
self.hidden.append(Hidden.extra_pnginfo) self.hidden.append(Hidden.extra_pnginfo)
# give outputs without ids default ids # give outputs without ids default ids
if self.outputs is not None:
for i, output in enumerate(self.outputs): for i, output in enumerate(self.outputs):
if output.id is None: if output.id is None:
output.id = f"_{i}_{output.io_type}_" output.id = f"_{i}_{output.io_type}_"