diff --git a/runware/base.py b/runware/base.py index b060f80..7a2d5f4 100644 --- a/runware/base.py +++ b/runware/base.py @@ -2223,6 +2223,8 @@ def _addVideoImages(self, request_object: Dict[str, Any], requestVideo: IVideoIn async def _process3dInputs(self, request3d: I3dInference) -> None: if not request3d.inputs: return + if request3d.inputs.images: + request3d.inputs.images = await process_image(request3d.inputs.images) if request3d.inputs.image: request3d.inputs.image = await process_image(request3d.inputs.image) if request3d.inputs.mask: diff --git a/runware/types.py b/runware/types.py index d1fdf3a..d11a203 100644 --- a/runware/types.py +++ b/runware/types.py @@ -828,6 +828,21 @@ class ISettings(SerializableMixin): sparseStructure: Optional[Union[ISparseStructure, Dict[str, Any]]] = None shapeSlat: Optional[Union[IShapeSlat, Dict[str, Any]]] = None texSlat: Optional[Union[ITexSlat, Dict[str, Any]]] = None + imageAutoFix: Optional[bool] = None + faceLimit: Optional[int] = None + texture: Optional[bool] = None + pbr: Optional[bool] = None + textureSeed: Optional[int] = None + textureAlignment: Optional[str] = None + textureQuality: Optional[str] = None + autoSize: Optional[bool] = None + orientation: Optional[str] = None + quad: Optional[bool] = None + compress: Optional[str] = None + smartLowPoly: Optional[bool] = None + generateParts: Optional[bool] = None + exportUv: Optional[bool] = None + geometryQuality: Optional[str] = None # Audio languageBoost: Optional[str] = None turbo: Optional[bool] = None @@ -997,6 +1012,7 @@ def request_key(self) -> str: @dataclass class I3dInputs(SerializableMixin): image: Optional[Union[str, File]] = None + images: Optional[List[Union[str, File]]] = None mask: Optional[Union[str, File]] = None meshFile: Optional[Union[str, File]] = None