From fec95825871d911a43bb1a245cf35e105dd6f951 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 28 May 2026 16:28:50 +0530 Subject: [PATCH 1/2] Added support for VTO --- runware/base.py | 6 ++++++ runware/types.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/runware/base.py b/runware/base.py index 20d5aa9..b5ef8a3 100644 --- a/runware/base.py +++ b/runware/base.py @@ -783,6 +783,12 @@ async def _imageInference( requestImage.inputs.images ) + if requestImage.inputs.person: + requestImage.inputs.person = await self._process_media(requestImage.inputs.person) + + if requestImage.inputs.garment: + requestImage.inputs.garment = await self._process_media(requestImage.inputs.garment) + if requestImage.inputs.referenceImages: requestImage.inputs.referenceImages = await self._process_media_list( requestImage.inputs.referenceImages, diff --git a/runware/types.py b/runware/types.py index 13f5f22..2db213b 100644 --- a/runware/types.py +++ b/runware/types.py @@ -1160,6 +1160,8 @@ class IInputs(SerializableMixin): referenceImages: Optional[List[Union[str, File, IInputReference]]] = None image: Optional[Union[str, File]] = None images: Optional[List[Union[str, File]]] = None + person: Optional[Union[str, File]] = None + garment: Optional[Union[str, File]] = None mask: Optional[Union[str, File]] = None superResolutionReferences: Optional[List[Union[str, File]]] = None From f2024f055d49e5b79e737fabebc288f42eb90ba3 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 28 May 2026 19:50:19 +0530 Subject: [PATCH 2/2] Changed to using roles --- runware/base.py | 6 ------ runware/types.py | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/runware/base.py b/runware/base.py index b5ef8a3..20d5aa9 100644 --- a/runware/base.py +++ b/runware/base.py @@ -783,12 +783,6 @@ async def _imageInference( requestImage.inputs.images ) - if requestImage.inputs.person: - requestImage.inputs.person = await self._process_media(requestImage.inputs.person) - - if requestImage.inputs.garment: - requestImage.inputs.garment = await self._process_media(requestImage.inputs.garment) - if requestImage.inputs.referenceImages: requestImage.inputs.referenceImages = await self._process_media_list( requestImage.inputs.referenceImages, diff --git a/runware/types.py b/runware/types.py index 2db213b..f9d8048 100644 --- a/runware/types.py +++ b/runware/types.py @@ -1142,6 +1142,7 @@ class IInputFrame(SerializableMixin): @dataclass class IInputReference(SerializableMixin): image: Union[str, File] + role: Optional[str] = None tag: Optional[str] = None refType: Optional[str] = None strength: Optional[float] = None @@ -1160,8 +1161,6 @@ class IInputs(SerializableMixin): referenceImages: Optional[List[Union[str, File, IInputReference]]] = None image: Optional[Union[str, File]] = None images: Optional[List[Union[str, File]]] = None - person: Optional[Union[str, File]] = None - garment: Optional[Union[str, File]] = None mask: Optional[Union[str, File]] = None superResolutionReferences: Optional[List[Union[str, File]]] = None