Skip to content

Commit 0757f57

Browse files
committed
refcator for safety and settings params too
1 parent 151843d commit 0757f57

1 file changed

Lines changed: 34 additions & 10 deletions

File tree

runware/types.py

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -913,8 +913,8 @@ class IImageInference:
913913
acePlusPlus: Optional[IAcePlusPlus] = None
914914
puLID: Optional[IPuLID] = None
915915
providerSettings: Optional[ImageProviderSettings] = None
916-
safety: Optional[ISafety] = None
917-
settings: Optional[ISettings] = None
916+
safety: Optional[Union[ISafety, Dict[str, Any]]] = None
917+
settings: Optional[Union[ISettings, Dict[str, Any]]] = None
918918
inputs: Optional[Union[IInputs, Dict[str, Any]]] = None
919919
ultralytics: Optional[IUltralytics] = None
920920
useCache: Optional[bool] = None
@@ -924,6 +924,10 @@ class IImageInference:
924924
ttl: Optional[int] = None # time-to-live (TTL) in seconds, only applies when outputType is "URL"
925925

926926
def __post_init__(self):
927+
if self.safety is not None and isinstance(self.safety, dict):
928+
self.safety = ISafety(**self.safety)
929+
if self.settings is not None and isinstance(self.settings, dict):
930+
self.settings = ISettings(**self.settings)
927931
if self.inputs is not None and isinstance(self.inputs, dict):
928932
self.inputs = IInputs(**self.inputs)
929933

@@ -997,9 +1001,15 @@ class IImageBackgroundRemoval(IImageCaption):
9971001
outputQuality: Optional[int] = None
9981002
model: Optional[Union[int, str]] = None
9991003
taskUUID: Optional[str] = None
1000-
settings: Optional[IBackgroundRemovalSettings] = None
1004+
settings: Optional[Union[IBackgroundRemovalSettings, Dict[str, Any]]] = None
10011005
providerSettings: Optional[ImageProviderSettings] = None
1002-
safety: Optional[ISafety] = None
1006+
safety: Optional[Union[ISafety, Dict[str, Any]]] = None
1007+
1008+
def __post_init__(self):
1009+
if self.settings is not None and isinstance(self.settings, dict):
1010+
self.settings = IBackgroundRemovalSettings(**self.settings)
1011+
if self.safety is not None and isinstance(self.safety, dict):
1012+
self.safety = ISafety(**self.safety)
10031013

10041014

10051015
@dataclass
@@ -1058,16 +1068,20 @@ class IImageUpscale:
10581068
upscaleFactor: float # Changed to float to support decimal values like 1.5
10591069
inputImage: Optional[Union[str, File]] = None
10601070
model: Optional[str] = None # Model AIR ID (runware:500@1, runware:501@1, runware:502@1, runware:503@1)
1061-
settings: Optional[IUpscaleSettings] = None # Advanced upscaling settings
1071+
settings: Optional[Union[IUpscaleSettings, Dict[str, Any]]] = None # Advanced upscaling settings
10621072
outputType: Optional[IOutputType] = None
10631073
outputFormat: Optional[IOutputFormat] = None
10641074
includeCost: bool = False
10651075
webhookURL: Optional[str] = None
10661076
providerSettings: Optional[ImageProviderSettings] = None
1067-
safety: Optional[ISafety] = None
1077+
safety: Optional[Union[ISafety, Dict[str, Any]]] = None
10681078
inputs: Optional[Union[IInputs, Dict[str, Any]]] = None
10691079

10701080
def __post_init__(self):
1081+
if self.settings is not None and isinstance(self.settings, dict):
1082+
self.settings = IUpscaleSettings(**self.settings)
1083+
if self.safety is not None and isinstance(self.safety, dict):
1084+
self.safety = ISafety(**self.safety)
10711085
if self.inputs is not None and isinstance(self.inputs, dict):
10721086
self.inputs = IInputs(**self.inputs)
10731087

@@ -1429,14 +1443,16 @@ class IVideoInference:
14291443
speech: Optional[IVideoSpeechSettings] = None
14301444
webhookURL: Optional[str] = None
14311445
nsfw_check: Optional[Literal["none", "fast", "full"]] = None
1432-
safety: Optional[ISafety] = None
1446+
safety: Optional[Union[ISafety, Dict[str, Any]]] = None
14331447
advancedFeatures: Optional[IVideoAdvancedFeatures] = None
14341448
acceleratorOptions: Optional[IAcceleratorOptions] = None
14351449
inputs: Optional[Union[IVideoInputs, Dict[str, Any]]] = None
14361450
skipResponse: Optional[bool] = False
14371451
resolution: Optional[str] = None
14381452

14391453
def __post_init__(self):
1454+
if self.safety is not None and isinstance(self.safety, dict):
1455+
self.safety = ISafety(**self.safety)
14401456
if self.inputs is not None and isinstance(self.inputs, dict):
14411457
self.inputs = IVideoInputs(**self.inputs)
14421458

@@ -1458,9 +1474,11 @@ class I3dInference:
14581474
deliveryMethod: str = "async"
14591475
webhookURL: Optional[str] = None
14601476
inputs: Optional[Union[I3dInputs, Dict[str, Any]]] = None
1461-
settings: Optional[ISettings] = None
1477+
settings: Optional[Union[ISettings, Dict[str, Any]]] = None
14621478

14631479
def __post_init__(self):
1480+
if self.settings is not None and isinstance(self.settings, dict):
1481+
self.settings = ISettings(**self.settings)
14641482
if self.inputs is not None and isinstance(self.inputs, dict):
14651483
self.inputs = I3dInputs(**self.inputs)
14661484

@@ -1512,9 +1530,11 @@ class IAudioInference:
15121530
providerSettings: Optional[AudioProviderSettings] = None
15131531
inputs: Optional[Union[IAudioInputs, Dict[str, Any]]] = None
15141532
speech: Optional[IAudioSpeech] = None
1515-
settings: Optional[ISettings] = None
1533+
settings: Optional[Union[ISettings, Dict[str, Any]]] = None
15161534

15171535
def __post_init__(self):
1536+
if self.settings is not None and isinstance(self.settings, dict):
1537+
self.settings = ISettings(**self.settings)
15181538
if self.inputs is not None and isinstance(self.inputs, dict):
15191539
self.inputs = IAudioInputs(**self.inputs)
15201540

@@ -1663,7 +1683,11 @@ class IVideoBackgroundRemoval:
16631683
includeCost: Optional[bool] = None
16641684
webhookURL: Optional[str] = None
16651685
outputFormat: Optional[str] = None # MP4, WEBM
1666-
settings: Optional[IVideoBackgroundRemovalSettings] = None
1686+
settings: Optional[Union[IVideoBackgroundRemovalSettings, Dict[str, Any]]] = None
1687+
1688+
def __post_init__(self):
1689+
if self.settings is not None and isinstance(self.settings, dict):
1690+
self.settings = IVideoBackgroundRemovalSettings(**self.settings)
16671691

16681692

16691693
@dataclass

0 commit comments

Comments
 (0)