diff --git a/runware/types.py b/runware/types.py index f2cb329..b67cb25 100644 --- a/runware/types.py +++ b/runware/types.py @@ -1319,7 +1319,7 @@ def serialize(self) -> Dict[str, Any]: @dataclass class IInputs(SerializableMixin): references: Optional[List[Union[str, File]]] = None - referenceImages: Optional[List[Union[str, File, IInputReference]]] = None + referenceImages: Optional[List[Union[str, File, IInputReference, Dict[str, Any]]]] = None fonts: Optional[List[Union[IInputFont, Dict[str, Any]]]] = None image: Optional[Union[str, File]] = None images: Optional[List[Union[str, File]]] = None @@ -1339,6 +1339,19 @@ def __post_init__(self): ) if self.referenceImages is None: self.referenceImages = self.references + if self.referenceImages is not None: + coerced_reference_images: List[Union[str, File, IInputReference]] = [] + for item in self.referenceImages: + if isinstance(item, dict): + d = dict(item) + if "type" in d: + if "refType" not in d: + d["refType"] = d["type"] + d.pop("type", None) + coerced_reference_images.append(IInputReference(**d)) + else: + coerced_reference_images.append(item) + self.referenceImages = coerced_reference_images if self.fonts is not None: self.fonts = [ IInputFont(**item) if isinstance(item, dict) else item