@@ -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