@@ -518,10 +518,20 @@ class IInputs:
518518ImageProviderSettings = IOpenAIProviderSettings | IBriaProviderSettings | ILightricksProviderSettings
519519
520520
521+
522+
523+ @dataclass
524+ class IInputFrame :
525+ image : Union [str , File ]
526+ frame : Optional [Union [Literal ["first" , "last" ], int ]] = None
527+
528+
521529@dataclass
522530class IVideoInputs :
523531 references : Optional [List [Union [str , File , Dict [str , Any ]]]] = field (default_factory = list )
524532 image : Optional [Union [str , File ]] = None
533+ images : Optional [List [Union [str , File ]]] = None
534+ frames : Optional [List [IInputFrame ]] = None
525535 video : Optional [str ] = None
526536 audio : Optional [str ] = None
527537 mask : Optional [Union [str , File ]] = None
@@ -957,7 +967,29 @@ def provider_key(self) -> str:
957967 return "elevenlabs"
958968
959969
960- VideoProviderSettings = IKlingAIProviderSettings | IGoogleProviderSettings | IMinimaxProviderSettings | IBytedanceProviderSettings | IPixverseProviderSettings | IViduProviderSettings
970+ @dataclass
971+ class IRunwayContentModeration (SerializableMixin ):
972+ publicFigureThreshold : str = None
973+
974+
975+ @dataclass
976+ class IRunwayProviderSettings (BaseProviderSettings ):
977+ contentModeration : Optional [IRunwayContentModeration ] = None
978+
979+ @property
980+ def provider_key (self ) -> str :
981+ return "runway"
982+
983+ def serialize (self ) -> Dict [str , Any ]:
984+ result = {}
985+ if self .contentModeration :
986+ content_moderation_data = self .contentModeration .serialize ()
987+ if content_moderation_data :
988+ result ["contentModeration" ] = content_moderation_data
989+ return result
990+
991+
992+ VideoProviderSettings = IKlingAIProviderSettings | IGoogleProviderSettings | IMinimaxProviderSettings | IBytedanceProviderSettings | IPixverseProviderSettings | IViduProviderSettings | IRunwayProviderSettings
961993AudioProviderSettings = IElevenLabsProviderSettings
962994
963995@dataclass
0 commit comments