Send DynamicCombo.Option inputs in the same format as normal v1 inputs

This commit is contained in:
Kosinkadink 2025-11-15 21:00:43 -08:00
parent 13aa23dff4
commit 4aaf0452e1

View File

@ -883,7 +883,7 @@ class DynamicCombo(ComfyTypeI):
def as_dict(self): def as_dict(self):
return { return {
"key": self.key, "key": self.key,
"inputs": [i.as_dict() for i in self.inputs], "inputs": create_input_dict_v1(self.inputs),
} }
class Input(DynamicInput): class Input(DynamicInput):
@ -1132,17 +1132,7 @@ class Schema:
def get_v1_info(self, cls) -> NodeInfoV1: def get_v1_info(self, cls) -> NodeInfoV1:
# get V1 inputs # get V1 inputs
input = { input = create_input_dict_v1(self.inputs)
"required": {}
}
if self.inputs:
for i in self.inputs:
if isinstance(i, DynamicInput):
dynamic_inputs = i.get_dynamic()
for d in dynamic_inputs:
add_to_dict_v1(d, input)
else:
add_to_dict_v1(i, input)
if self.hidden: if self.hidden:
for hidden in self.hidden: for hidden in self.hidden:
input.setdefault("hidden", {})[hidden.name] = (hidden.value,) input.setdefault("hidden", {})[hidden.name] = (hidden.value,)
@ -1223,6 +1213,19 @@ class Schema:
return info return info
def create_input_dict_v1(inputs: list[Input]) -> dict:
input = {
"required": {}
}
for i in inputs:
if isinstance(i, DynamicInput):
dynamic_inputs = i.get_dynamic()
for d in dynamic_inputs:
add_to_dict_v1(d, input)
else:
add_to_dict_v1(i, input)
return input
def add_to_dict_v1(i: Input, input: dict): def add_to_dict_v1(i: Input, input: dict):
key = "optional" if i.optional else "required" key = "optional" if i.optional else "required"
as_dict = i.as_dict() as_dict = i.as_dict()