diff --git a/src/transformers/models/bit/image_processing_bit.py b/src/transformers/models/bit/image_processing_bit.py index c9d5c7a7594a..a836d136ec96 100644 --- a/src/transformers/models/bit/image_processing_bit.py +++ b/src/transformers/models/bit/image_processing_bit.py @@ -36,10 +36,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging logger = logging.get_logger(__name__) @@ -122,23 +121,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_convert_rgb", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.clip.image_processing_clip.CLIPImageProcessor.resize def resize( @@ -190,6 +172,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -207,7 +190,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Optional[ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -274,8 +256,6 @@ def preprocess( image_std = image_std if image_std is not None else self.image_std do_convert_rgb = do_convert_rgb if do_convert_rgb is not None else self.do_convert_rgb - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - images = make_list_of_images(images) if not valid_images(images): diff --git a/src/transformers/models/blip/image_processing_blip.py b/src/transformers/models/blip/image_processing_blip.py index a65ccc2d9839..6f520f9fb9cb 100644 --- a/src/transformers/models/blip/image_processing_blip.py +++ b/src/transformers/models/blip/image_processing_blip.py @@ -31,10 +31,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -107,21 +106,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_convert_rgb", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize with PILImageResampling.BILINEAR->PILImageResampling.BICUBIC def resize( @@ -172,6 +156,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -187,7 +172,6 @@ def preprocess( do_convert_rgb: bool = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -250,8 +234,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/bridgetower/image_processing_bridgetower.py b/src/transformers/models/bridgetower/image_processing_bridgetower.py index 327450712459..7272093715f8 100644 --- a/src/transformers/models/bridgetower/image_processing_bridgetower.py +++ b/src/transformers/models/bridgetower/image_processing_bridgetower.py @@ -32,10 +32,9 @@ is_scaled_image, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -205,24 +204,6 @@ def __init__( self.do_pad = do_pad self.do_center_crop = do_center_crop self.crop_size = crop_size - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "size_divisor", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_pad", - "do_center_crop", - "crop_size", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vilt.image_processing_vilt.ViltImageProcessor.resize def resize( @@ -389,6 +370,7 @@ def pad( return BatchFeature(data=data, tensor_type=return_tensors) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -407,7 +389,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -484,8 +465,6 @@ def preprocess( size = size if size is not None else self.size size = get_size_dict(size, default_to_square=False) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not is_batched(images): images = [images] diff --git a/src/transformers/models/chameleon/image_processing_chameleon.py b/src/transformers/models/chameleon/image_processing_chameleon.py index 021a1f5680c6..a23fdbed0288 100644 --- a/src/transformers/models/chameleon/image_processing_chameleon.py +++ b/src/transformers/models/chameleon/image_processing_chameleon.py @@ -33,10 +33,9 @@ is_valid_image, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging logger = logging.get_logger(__name__) @@ -141,23 +140,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else [1.0, 1.0, 1.0] self.image_std = image_std if image_std is not None else [1.0, 1.0, 1.0] self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_convert_rgb", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.clip.image_processing_clip.CLIPImageProcessor.resize def resize( @@ -209,6 +191,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -226,7 +209,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Optional[ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -293,8 +275,6 @@ def preprocess( image_std = image_std if image_std is not None else self.image_std do_convert_rgb = do_convert_rgb if do_convert_rgb is not None else self.do_convert_rgb - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - images = make_batched_images(images) if not valid_images(images): diff --git a/src/transformers/models/chinese_clip/image_processing_chinese_clip.py b/src/transformers/models/chinese_clip/image_processing_chinese_clip.py index 60f40272bf92..b93bb81606a9 100644 --- a/src/transformers/models/chinese_clip/image_processing_chinese_clip.py +++ b/src/transformers/models/chinese_clip/image_processing_chinese_clip.py @@ -36,10 +36,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging logger = logging.get_logger(__name__) @@ -122,23 +121,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_convert_rgb", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -179,6 +161,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -196,7 +179,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Optional[ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -265,8 +247,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/convnext/image_processing_convnext.py b/src/transformers/models/convnext/image_processing_convnext.py index 54060105f59e..aaabc677f182 100644 --- a/src/transformers/models/convnext/image_processing_convnext.py +++ b/src/transformers/models/convnext/image_processing_convnext.py @@ -36,10 +36,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -114,21 +113,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "crop_pct", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -199,6 +183,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -214,7 +199,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -276,8 +260,6 @@ def preprocess( size = size if size is not None else self.size size = get_size_dict(size, default_to_square=False) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - images = make_list_of_images(images) if not valid_images(images): diff --git a/src/transformers/models/deit/image_processing_deit.py b/src/transformers/models/deit/image_processing_deit.py index 2a8ebb363778..d5dfb211e03c 100644 --- a/src/transformers/models/deit/image_processing_deit.py +++ b/src/transformers/models/deit/image_processing_deit.py @@ -31,10 +31,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -110,22 +109,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize with PILImageResampling.BILINEAR->PILImageResampling.BICUBIC def resize( @@ -176,6 +159,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -192,7 +176,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -257,8 +240,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/donut/image_processing_donut.py b/src/transformers/models/donut/image_processing_donut.py index 1c6e47231390..edb0629d44bd 100644 --- a/src/transformers/models/donut/image_processing_donut.py +++ b/src/transformers/models/donut/image_processing_donut.py @@ -37,10 +37,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging from ...utils.import_utils import is_vision_available @@ -124,24 +123,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_thumbnail", - "do_align_long_axis", - "do_pad", - "random_padding", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def align_long_axis( self, @@ -314,6 +295,7 @@ def resize( ) return resized_image + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -332,7 +314,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Optional[ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -407,8 +388,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/dpt/image_processing_dpt.py b/src/transformers/models/dpt/image_processing_dpt.py index a4e3da1528ec..a263d8a51f42 100644 --- a/src/transformers/models/dpt/image_processing_dpt.py +++ b/src/transformers/models/dpt/image_processing_dpt.py @@ -35,10 +35,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_torch_available(): @@ -165,24 +164,6 @@ def __init__( self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD self.do_pad = do_pad self.size_divisor = size_divisor - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "keep_aspect_ratio", - "ensure_multiple_of", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_pad", - "size_divisor", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -284,6 +265,7 @@ def _get_pad(size, size_divisor): return pad(image, ((pad_size_left, pad_size_right), (pad_size_top, pad_size_bottom)), data_format=data_format) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -302,7 +284,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -369,8 +350,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/efficientnet/image_processing_efficientnet.py b/src/transformers/models/efficientnet/image_processing_efficientnet.py index 4fd2364a3020..3383fff9b0e8 100644 --- a/src/transformers/models/efficientnet/image_processing_efficientnet.py +++ b/src/transformers/models/efficientnet/image_processing_efficientnet.py @@ -31,10 +31,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -119,24 +118,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD self.include_top = include_top - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "rescale_offset", - "do_normalize", - "image_mean", - "image_std", - "include_top", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize with PILImageResampling.BILINEAR->PILImageResampling.NEAREST def resize( @@ -227,6 +208,7 @@ def rescale( return rescaled_image + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -245,7 +227,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -316,8 +297,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/flava/image_processing_flava.py b/src/transformers/models/flava/image_processing_flava.py index d6a7c8080bb6..72ef141df83d 100644 --- a/src/transformers/models/flava/image_processing_flava.py +++ b/src/transformers/models/flava/image_processing_flava.py @@ -34,10 +34,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -302,41 +301,6 @@ def __init__( self.codebook_image_mean = codebook_image_mean self.codebook_image_mean = codebook_image_mean if codebook_image_mean is not None else FLAVA_CODEBOOK_MEAN self.codebook_image_std = codebook_image_std if codebook_image_std is not None else FLAVA_CODEBOOK_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_image_mask", - "input_size_patches", - "total_mask_patches", - "mask_group_min_patches", - "mask_group_max_patches", - "mask_group_min_aspect_ratio", - "mask_group_max_aspect_ratio", - "return_codebook_pixels", - "codebook_do_resize", - "codebook_size", - "codebook_resample", - "codebook_do_center_crop", - "codebook_crop_size", - "codebook_do_rescale", - "codebook_rescale_factor", - "codebook_do_map_pixels", - "codebook_do_normalize", - "codebook_image_mean", - "codebook_image_std", - "return_tensors", - "data_format", - "input_data_format", - ] @classmethod def from_dict(cls, image_processor_dict: Dict[str, Any], **kwargs): @@ -486,6 +450,7 @@ def _preprocess_image( image = to_channel_dimension_format(image, data_format, input_channel_dim=input_data_format) return image + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -523,7 +488,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -672,8 +636,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/fuyu/image_processing_fuyu.py b/src/transformers/models/fuyu/image_processing_fuyu.py index ec5e1a36abb7..255922b83088 100644 --- a/src/transformers/models/fuyu/image_processing_fuyu.py +++ b/src/transformers/models/fuyu/image_processing_fuyu.py @@ -39,6 +39,7 @@ ) from ...utils import ( TensorType, + filter_out_non_signature_kwargs, is_torch_available, is_torch_device, is_torch_dtype, @@ -261,24 +262,6 @@ def __init__( self.do_rescale = do_rescale self.rescale_factor = rescale_factor self.patch_size = patch_size if patch_size is not None else {"height": 30, "width": 30} - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_pad", - "padding_value", - "padding_mode", - "do_normalize", - "image_mean", - "image_std", - "do_rescale", - "rescale_factor", - "patch_size", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -376,6 +359,7 @@ def pad_image( ) return padded_image + @filter_out_non_signature_kwargs() def preprocess( self, images, diff --git a/src/transformers/models/glpn/image_processing_glpn.py b/src/transformers/models/glpn/image_processing_glpn.py index 7577b4eeb3d0..9e69c8ae8a6e 100644 --- a/src/transformers/models/glpn/image_processing_glpn.py +++ b/src/transformers/models/glpn/image_processing_glpn.py @@ -30,10 +30,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging logger = logging.get_logger(__name__) @@ -72,16 +71,6 @@ def __init__( self.size_divisor = size_divisor self.resample = resample super().__init__(**kwargs) - self._valid_processor_keys = [ - "images", - "do_resize", - "size_divisor", - "resample", - "do_rescale", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -133,6 +122,7 @@ def resize( ) return image + @filter_out_non_signature_kwargs() def preprocess( self, images: Union["PIL.Image.Image", TensorType, List["PIL.Image.Image"], List[TensorType]], @@ -143,7 +133,6 @@ def preprocess( return_tensors: Optional[Union[TensorType, str]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> BatchFeature: """ Preprocess the given images. @@ -187,8 +176,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/imagegpt/image_processing_imagegpt.py b/src/transformers/models/imagegpt/image_processing_imagegpt.py index fecdd061d4e4..47fb0f6056ed 100644 --- a/src/transformers/models/imagegpt/image_processing_imagegpt.py +++ b/src/transformers/models/imagegpt/image_processing_imagegpt.py @@ -29,10 +29,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -103,18 +102,6 @@ def __init__( self.resample = resample self.do_normalize = do_normalize self.do_color_quantize = do_color_quantize - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_normalize", - "do_color_quantize", - "clusters", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize def resize( @@ -186,6 +173,7 @@ def normalize( image = image - 1 return image + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -198,7 +186,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Optional[Union[str, ChannelDimension]] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -251,8 +238,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/instructblipvideo/image_processing_instructblipvideo.py b/src/transformers/models/instructblipvideo/image_processing_instructblipvideo.py index 69f2feebd39c..131b8fe57bd6 100644 --- a/src/transformers/models/instructblipvideo/image_processing_instructblipvideo.py +++ b/src/transformers/models/instructblipvideo/image_processing_instructblipvideo.py @@ -35,10 +35,9 @@ is_valid_image, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -128,21 +127,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_convert_rgb", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize with PILImageResampling.BILINEAR->PILImageResampling.BICUBIC def resize( @@ -195,6 +179,7 @@ def resize( ) # Ignore copy + @filter_out_non_signature_kwargs() def preprocess( self, images: VideoInput = None, @@ -210,7 +195,6 @@ def preprocess( do_convert_rgb: bool = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess a video or batch of images/videos. @@ -272,7 +256,6 @@ def preprocess( size = get_size_dict(size, default_to_square=False) videos = make_batched_videos(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) validate_preprocess_arguments( do_rescale=do_rescale, diff --git a/src/transformers/models/layoutlmv2/image_processing_layoutlmv2.py b/src/transformers/models/layoutlmv2/image_processing_layoutlmv2.py index e23699119413..c47d58c30c01 100644 --- a/src/transformers/models/layoutlmv2/image_processing_layoutlmv2.py +++ b/src/transformers/models/layoutlmv2/image_processing_layoutlmv2.py @@ -28,10 +28,16 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_pytesseract_available, is_vision_available, logging, requires_backends +from ...utils import ( + TensorType, + filter_out_non_signature_kwargs, + is_pytesseract_available, + is_vision_available, + logging, + requires_backends, +) if is_vision_available(): @@ -138,18 +144,6 @@ def __init__( self.apply_ocr = apply_ocr self.ocr_lang = ocr_lang self.tesseract_config = tesseract_config - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "apply_ocr", - "ocr_lang", - "tesseract_config", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize def resize( @@ -200,6 +194,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -212,7 +207,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -257,8 +251,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/layoutlmv3/image_processing_layoutlmv3.py b/src/transformers/models/layoutlmv3/image_processing_layoutlmv3.py index 8c5356993f16..6f16435c14dd 100644 --- a/src/transformers/models/layoutlmv3/image_processing_layoutlmv3.py +++ b/src/transformers/models/layoutlmv3/image_processing_layoutlmv3.py @@ -31,10 +31,16 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_pytesseract_available, is_vision_available, logging, requires_backends +from ...utils import ( + TensorType, + filter_out_non_signature_kwargs, + is_pytesseract_available, + is_vision_available, + logging, + requires_backends, +) if is_vision_available(): @@ -165,23 +171,6 @@ def __init__( self.apply_ocr = apply_ocr self.ocr_lang = ocr_lang self.tesseract_config = tesseract_config - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "apply_ocr", - "ocr_lang", - "tesseract_config", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize def resize( @@ -232,6 +221,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -249,7 +239,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -316,8 +305,6 @@ def preprocess( tesseract_config = tesseract_config if tesseract_config is not None else self.tesseract_config images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/levit/image_processing_levit.py b/src/transformers/models/levit/image_processing_levit.py index b861a4ebf8b2..fad47ee02736 100644 --- a/src/transformers/models/levit/image_processing_levit.py +++ b/src/transformers/models/levit/image_processing_levit.py @@ -35,10 +35,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging logger = logging.get_logger(__name__) @@ -116,22 +115,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_DEFAULT_MEAN self.image_std = image_std if image_std is not None else IMAGENET_DEFAULT_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -188,6 +171,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -204,7 +188,6 @@ def preprocess( return_tensors: Optional[TensorType] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> BatchFeature: """ Preprocess an image or batch of images to be used as input to a LeViT model. @@ -271,8 +254,6 @@ def preprocess( crop_size = get_size_dict(crop_size, param_name="crop_size") images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/mobilenet_v1/image_processing_mobilenet_v1.py b/src/transformers/models/mobilenet_v1/image_processing_mobilenet_v1.py index 086ab8924920..967d17929f82 100644 --- a/src/transformers/models/mobilenet_v1/image_processing_mobilenet_v1.py +++ b/src/transformers/models/mobilenet_v1/image_processing_mobilenet_v1.py @@ -35,10 +35,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging logger = logging.get_logger(__name__) @@ -114,22 +113,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.clip.image_processing_clip.CLIPImageProcessor.resize def resize( @@ -181,6 +164,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -197,7 +181,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ): """ Preprocess an image or batch of images. @@ -262,8 +245,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/mobilenet_v2/image_processing_mobilenet_v2.py b/src/transformers/models/mobilenet_v2/image_processing_mobilenet_v2.py index 44b784d2a7c3..072295a4ff77 100644 --- a/src/transformers/models/mobilenet_v2/image_processing_mobilenet_v2.py +++ b/src/transformers/models/mobilenet_v2/image_processing_mobilenet_v2.py @@ -35,10 +35,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_torch_available, is_torch_tensor, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_torch_available, is_torch_tensor, logging if is_torch_available(): @@ -118,22 +117,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.mobilenet_v1.image_processing_mobilenet_v1.MobileNetV1ImageProcessor.resize def resize( @@ -185,6 +168,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -201,7 +185,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ): """ Preprocess an image or batch of images. @@ -266,8 +249,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/mobilevit/image_processing_mobilevit.py b/src/transformers/models/mobilevit/image_processing_mobilevit.py index 8cc79a283e05..e6a8692edfd4 100644 --- a/src/transformers/models/mobilevit/image_processing_mobilevit.py +++ b/src/transformers/models/mobilevit/image_processing_mobilevit.py @@ -29,10 +29,16 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_torch_available, is_torch_tensor, is_vision_available, logging +from ...utils import ( + TensorType, + filter_out_non_signature_kwargs, + is_torch_available, + is_torch_tensor, + is_vision_available, + logging, +) if is_vision_available(): @@ -105,21 +111,6 @@ def __init__( self.do_center_crop = do_center_crop self.crop_size = crop_size self.do_flip_channel_order = do_flip_channel_order - self._valid_processor_keys = [ - "images", - "segmentation_maps", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_center_crop", - "crop_size", - "do_flip_channel_order", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.mobilenet_v1.image_processing_mobilenet_v1.MobileNetV1ImageProcessor.resize with PILImageResampling.BICUBIC->PILImageResampling.BILINEAR def resize( @@ -306,6 +297,7 @@ def _preprocess_mask( segmentation_map = segmentation_map.astype(np.int64) return segmentation_map + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -321,7 +313,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -383,8 +374,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if segmentation_maps is not None: segmentation_maps = make_list_of_images(segmentation_maps, expected_ndims=2) diff --git a/src/transformers/models/nougat/image_processing_nougat.py b/src/transformers/models/nougat/image_processing_nougat.py index 49913d5baa08..792f4a14325a 100644 --- a/src/transformers/models/nougat/image_processing_nougat.py +++ b/src/transformers/models/nougat/image_processing_nougat.py @@ -38,10 +38,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging from ...utils.import_utils import is_cv2_available, is_vision_available @@ -126,24 +125,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_DEFAULT_MEAN self.image_std = image_std if image_std is not None else IMAGENET_DEFAULT_STD - self._valid_processor_keys = [ - "images", - "do_crop_margin", - "do_resize", - "size", - "resample", - "do_thumbnail", - "do_align_long_axis", - "do_pad", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def python_find_non_zero(self, image: np.array): """This is a reimplementation of a findNonZero function equivalent to cv2.""" @@ -375,6 +356,7 @@ def resize( ) return resized_image + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -393,7 +375,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Optional[ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -461,8 +442,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/owlv2/image_processing_owlv2.py b/src/transformers/models/owlv2/image_processing_owlv2.py index 8d4e8b8e003b..dd32dc9f1411 100644 --- a/src/transformers/models/owlv2/image_processing_owlv2.py +++ b/src/transformers/models/owlv2/image_processing_owlv2.py @@ -37,11 +37,11 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) from ...utils import ( TensorType, + filter_out_non_signature_kwargs, is_scipy_available, is_torch_available, is_vision_available, @@ -233,20 +233,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD - self._valid_processor_keys = [ - "images", - "do_pad", - "do_resize", - "size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def pad( self, @@ -346,6 +332,7 @@ def resize( ) return image + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -360,7 +347,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -416,8 +402,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/owlvit/image_processing_owlvit.py b/src/transformers/models/owlvit/image_processing_owlvit.py index 5bc889ba85d5..63c2d6089559 100644 --- a/src/transformers/models/owlvit/image_processing_owlvit.py +++ b/src/transformers/models/owlvit/image_processing_owlvit.py @@ -38,10 +38,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_torch_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_torch_available, logging if is_torch_available(): @@ -167,22 +166,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -285,6 +268,7 @@ def rescale( """ return rescale(image, rescale_factor, data_format=data_format, input_data_format=input_data_format) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -301,7 +285,6 @@ def preprocess( return_tensors: Optional[Union[TensorType, str]] = None, data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> BatchFeature: """ Prepares an image or batch of images for the model. @@ -373,7 +356,6 @@ def preprocess( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " "torch.Tensor, tf.Tensor or jax.ndarray." ) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) validate_preprocess_arguments( do_rescale=do_rescale, diff --git a/src/transformers/models/perceiver/image_processing_perceiver.py b/src/transformers/models/perceiver/image_processing_perceiver.py index 02dd527e437b..faacc873b9b0 100644 --- a/src/transformers/models/perceiver/image_processing_perceiver.py +++ b/src/transformers/models/perceiver/image_processing_perceiver.py @@ -32,10 +32,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -114,22 +113,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_DEFAULT_MEAN self.image_std = image_std if image_std is not None else IMAGENET_DEFAULT_STD - self._valid_processor_keys = [ - "images", - "do_center_crop", - "crop_size", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def center_crop( self, @@ -224,6 +207,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -240,7 +224,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -303,8 +286,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/poolformer/image_processing_poolformer.py b/src/transformers/models/poolformer/image_processing_poolformer.py index dcdb1591b1c3..669617f95973 100644 --- a/src/transformers/models/poolformer/image_processing_poolformer.py +++ b/src/transformers/models/poolformer/image_processing_poolformer.py @@ -35,10 +35,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -133,23 +132,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_DEFAULT_MEAN self.image_std = image_std if image_std is not None else IMAGENET_DEFAULT_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "crop_pct", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -227,6 +209,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -244,7 +227,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -311,8 +293,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/pvt/image_processing_pvt.py b/src/transformers/models/pvt/image_processing_pvt.py index f3907edf3af0..c8edba4dc67b 100644 --- a/src/transformers/models/pvt/image_processing_pvt.py +++ b/src/transformers/models/pvt/image_processing_pvt.py @@ -31,10 +31,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging logger = logging.get_logger(__name__) @@ -96,20 +95,6 @@ def __init__( self.rescale_factor = rescale_factor self.image_mean = image_mean if image_mean is not None else IMAGENET_DEFAULT_MEAN self.image_std = image_std if image_std is not None else IMAGENET_DEFAULT_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] # Copied from transformers.models.vit.image_processing_vit.ViTImageProcessor.resize def resize( @@ -160,6 +145,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -174,7 +160,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ): """ Preprocess an image or batch of images. @@ -233,8 +218,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/rt_detr/image_processing_rt_detr.py b/src/transformers/models/rt_detr/image_processing_rt_detr.py index 1c66dee5c983..44b2702aa634 100644 --- a/src/transformers/models/rt_detr/image_processing_rt_detr.py +++ b/src/transformers/models/rt_detr/image_processing_rt_detr.py @@ -45,10 +45,10 @@ to_numpy_array, valid_images, validate_annotations, - validate_kwargs, validate_preprocess_arguments, ) from ...utils import ( + filter_out_non_signature_kwargs, is_flax_available, is_jax_tensor, is_tf_available, @@ -471,27 +471,6 @@ def __init__( self.image_std = image_std if image_std is not None else IMAGENET_DEFAULT_STD self.do_pad = do_pad self.pad_size = pad_size - self._valid_processor_keys = [ - "images", - "annotations", - "return_segmentation_masks", - "masks_path", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "do_convert_annotations", - "image_mean", - "image_std", - "do_pad", - "pad_size", - "format", - "return_tensors", - "data_format", - "input_data_format", - ] def prepare_annotation( self, @@ -800,6 +779,7 @@ def pad( return encoded_inputs + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -821,7 +801,6 @@ def preprocess( data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, pad_size: Optional[Dict[str, int]] = None, - **kwargs, ) -> BatchFeature: """ Preprocess an image or a batch of images so that it can be used by the model. @@ -920,7 +899,6 @@ def preprocess( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " "torch.Tensor, tf.Tensor or jax.ndarray." ) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) # Here, the pad() method pads to the maximum of (width, height). It does not need to be validated. diff --git a/src/transformers/models/sam/image_processing_sam.py b/src/transformers/models/sam/image_processing_sam.py index 99315858a3f0..beea3f4b01c3 100644 --- a/src/transformers/models/sam/image_processing_sam.py +++ b/src/transformers/models/sam/image_processing_sam.py @@ -35,11 +35,11 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) from ...utils import ( TensorType, + filter_out_non_signature_kwargs, is_tf_available, is_torch_available, is_torchvision_available, @@ -162,26 +162,6 @@ def __init__( self.pad_size = pad_size self.mask_pad_size = mask_pad_size self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "segmentation_maps", - "do_resize", - "size", - "mask_size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_pad", - "pad_size", - "mask_pad_size", - "do_convert_rgb", - "return_tensors", - "data_format", - "input_data_format", - ] def pad_image( self, @@ -409,6 +389,7 @@ def _preprocess_mask( return segmentation_map, original_size + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -429,7 +410,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ): """ Preprocess an image or batch of images. @@ -513,8 +493,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/siglip/image_processing_siglip.py b/src/transformers/models/siglip/image_processing_siglip.py index c624df3c7518..5bbeeb74c8f1 100644 --- a/src/transformers/models/siglip/image_processing_siglip.py +++ b/src/transformers/models/siglip/image_processing_siglip.py @@ -33,10 +33,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging logger = logging.get_logger(__name__) @@ -107,22 +106,8 @@ def __init__( self.image_mean = image_mean self.image_std = image_std self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - "do_convert_rgb", - ] + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -138,7 +123,6 @@ def preprocess( data_format: Optional[ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, do_convert_rgb: bool = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -199,8 +183,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/swin2sr/image_processing_swin2sr.py b/src/transformers/models/swin2sr/image_processing_swin2sr.py index a126e6eee5e8..f65842374320 100644 --- a/src/transformers/models/swin2sr/image_processing_swin2sr.py +++ b/src/transformers/models/swin2sr/image_processing_swin2sr.py @@ -28,10 +28,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging logger = logging.get_logger(__name__) @@ -66,16 +65,6 @@ def __init__( self.rescale_factor = rescale_factor self.do_pad = do_pad self.pad_size = pad_size - self._valid_processor_keys = [ - "images", - "do_rescale", - "rescale_factor", - "do_pad", - "pad_size", - "return_tensors", - "data_format", - "input_data_format", - ] def pad( self, @@ -118,6 +107,7 @@ def pad( input_data_format=input_data_format, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -128,7 +118,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ): """ Preprocess an image or batch of images. @@ -172,8 +161,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/tvp/image_processing_tvp.py b/src/transformers/models/tvp/image_processing_tvp.py index 18600ee5fbe7..100ec133e8b0 100644 --- a/src/transformers/models/tvp/image_processing_tvp.py +++ b/src/transformers/models/tvp/image_processing_tvp.py @@ -36,10 +36,9 @@ is_valid_image, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -173,27 +172,6 @@ def __init__( self.do_flip_channel_order = do_flip_channel_order self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "videos", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_pad", - "pad_size", - "constant_values", - "pad_mode", - "do_normalize", - "do_flip_channel_order", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -358,6 +336,7 @@ def _preprocess_image( return image + @filter_out_non_signature_kwargs() def preprocess( self, videos: Union[ImageInput, List[ImageInput], List[List[ImageInput]]], @@ -379,7 +358,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -459,8 +437,6 @@ def preprocess( crop_size = crop_size if crop_size is not None else self.crop_size crop_size = get_size_dict(crop_size, param_name="crop_size") - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(videos): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/video_llava/image_processing_video_llava.py b/src/transformers/models/video_llava/image_processing_video_llava.py index 943c2fe51a0e..3e77110c7d45 100644 --- a/src/transformers/models/video_llava/image_processing_video_llava.py +++ b/src/transformers/models/video_llava/image_processing_video_llava.py @@ -38,10 +38,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging logger = logging.get_logger(__name__) @@ -140,24 +139,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD self.do_convert_rgb = do_convert_rgb - self._valid_processor_keys = [ - "images", - "videos", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_convert_rgb", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -208,6 +189,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: List[ImageInput] = None, @@ -226,7 +208,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Optional[ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -301,8 +282,6 @@ def preprocess( if videos is not None: videos = make_batched_videos(videos) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if (videos is not None and not valid_images(videos)) or (images is not None and not valid_images(images)): raise ValueError( "Invalid input type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/videomae/image_processing_videomae.py b/src/transformers/models/videomae/image_processing_videomae.py index 6563d69c6503..413589523aa6 100644 --- a/src/transformers/models/videomae/image_processing_videomae.py +++ b/src/transformers/models/videomae/image_processing_videomae.py @@ -35,10 +35,9 @@ is_valid_image, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -131,22 +130,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "videos", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -249,6 +232,7 @@ def _preprocess_image( image = to_channel_dimension_format(image, data_format, input_channel_dim=input_data_format) return image + @filter_out_non_signature_kwargs() def preprocess( self, videos: ImageInput, @@ -265,7 +249,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -328,8 +311,6 @@ def preprocess( crop_size = crop_size if crop_size is not None else self.crop_size crop_size = get_size_dict(crop_size, param_name="crop_size") - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(videos): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/vilt/image_processing_vilt.py b/src/transformers/models/vilt/image_processing_vilt.py index 5ee481d08f71..66ffeb816fec 100644 --- a/src/transformers/models/vilt/image_processing_vilt.py +++ b/src/transformers/models/vilt/image_processing_vilt.py @@ -32,10 +32,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, is_vision_available, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, is_vision_available, logging if is_vision_available(): @@ -192,22 +191,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD self.do_pad = do_pad - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "size_divisor", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_pad", - "return_tensors", - "data_format", - "input_data_format", - ] @classmethod def from_dict(cls, image_processor_dict: Dict[str, Any], **kwargs): @@ -351,6 +334,7 @@ def pad( return BatchFeature(data=data, tensor_type=return_tensors) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -367,7 +351,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -433,8 +416,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/vit/image_processing_vit.py b/src/transformers/models/vit/image_processing_vit.py index 4c7d8de714f7..7c0d8abefd8b 100644 --- a/src/transformers/models/vit/image_processing_vit.py +++ b/src/transformers/models/vit/image_processing_vit.py @@ -31,10 +31,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging logger = logging.get_logger(__name__) @@ -96,20 +95,6 @@ def __init__( self.rescale_factor = rescale_factor self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -159,6 +144,7 @@ def resize( **kwargs, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -173,7 +159,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ): """ Preprocess an image or batch of images. @@ -232,8 +217,6 @@ def preprocess( images = make_list_of_images(images) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(images): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/vitmatte/image_processing_vitmatte.py b/src/transformers/models/vitmatte/image_processing_vitmatte.py index 6e4465e2dbd7..599442267822 100644 --- a/src/transformers/models/vitmatte/image_processing_vitmatte.py +++ b/src/transformers/models/vitmatte/image_processing_vitmatte.py @@ -31,10 +31,9 @@ make_list_of_images, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import TensorType, logging +from ...utils import TensorType, filter_out_non_signature_kwargs, logging logger = logging.get_logger(__name__) @@ -88,20 +87,6 @@ def __init__( self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD self.size_divisibility = size_divisibility - self._valid_processor_keys = [ - "images", - "trimaps", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_pad", - "size_divisibility", - "return_tensors", - "data_format", - "input_data_format", - ] def pad_image( self, @@ -144,6 +129,7 @@ def pad_image( return image + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, @@ -158,7 +144,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: Union[str, ChannelDimension] = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ): """ Preprocess an image or batch of images. @@ -213,8 +198,6 @@ def preprocess( images = make_list_of_images(images) trimaps = make_list_of_images(trimaps, expected_ndims=2) - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(trimaps): raise ValueError( "Invalid trimap type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/vivit/image_processing_vivit.py b/src/transformers/models/vivit/image_processing_vivit.py index 35babdfd2c85..5f251bbd1b95 100644 --- a/src/transformers/models/vivit/image_processing_vivit.py +++ b/src/transformers/models/vivit/image_processing_vivit.py @@ -39,10 +39,9 @@ is_valid_image, to_numpy_array, valid_images, - validate_kwargs, validate_preprocess_arguments, ) -from ...utils import logging +from ...utils import filter_out_non_signature_kwargs, logging if is_vision_available(): @@ -139,23 +138,6 @@ def __init__( self.do_normalize = do_normalize self.image_mean = image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN self.image_std = image_std if image_std is not None else IMAGENET_STANDARD_STD - self._valid_processor_keys = [ - "videos", - "do_resize", - "size", - "resample", - "do_center_crop", - "crop_size", - "do_rescale", - "rescale_factor", - "offset", - "do_normalize", - "image_mean", - "image_std", - "return_tensors", - "data_format", - "input_data_format", - ] def resize( self, @@ -304,6 +286,7 @@ def _preprocess_image( image = to_channel_dimension_format(image, data_format, input_channel_dim=input_data_format) return image + @filter_out_non_signature_kwargs() def preprocess( self, videos: ImageInput, @@ -321,7 +304,6 @@ def preprocess( return_tensors: Optional[Union[str, TensorType]] = None, data_format: ChannelDimension = ChannelDimension.FIRST, input_data_format: Optional[Union[str, ChannelDimension]] = None, - **kwargs, ) -> PIL.Image.Image: """ Preprocess an image or batch of images. @@ -387,8 +369,6 @@ def preprocess( crop_size = crop_size if crop_size is not None else self.crop_size crop_size = get_size_dict(crop_size, param_name="crop_size") - validate_kwargs(captured_kwargs=kwargs.keys(), valid_processor_keys=self._valid_processor_keys) - if not valid_images(videos): raise ValueError( "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, " diff --git a/src/transformers/models/zoedepth/image_processing_zoedepth.py b/src/transformers/models/zoedepth/image_processing_zoedepth.py index 5276f2239151..c43142501518 100644 --- a/src/transformers/models/zoedepth/image_processing_zoedepth.py +++ b/src/transformers/models/zoedepth/image_processing_zoedepth.py @@ -35,7 +35,14 @@ valid_images, validate_preprocess_arguments, ) -from ...utils import TensorType, is_torch_available, is_vision_available, logging, requires_backends +from ...utils import ( + TensorType, + filter_out_non_signature_kwargs, + is_torch_available, + is_vision_available, + logging, + requires_backends, +) if is_vision_available(): @@ -164,24 +171,6 @@ def __init__( self.ensure_multiple_of = ensure_multiple_of self.resample = resample - self._valid_processor_keys = [ - "images", - "do_resize", - "size", - "keep_aspect_ratio", - "ensure_multiple_of", - "resample", - "do_rescale", - "rescale_factor", - "do_normalize", - "image_mean", - "image_std", - "do_pad", - "return_tensors", - "data_format", - "input_data_format", - ] - def resize( self, image: np.ndarray, @@ -301,6 +290,7 @@ def pad_image( input_data_format=input_data_format, ) + @filter_out_non_signature_kwargs() def preprocess( self, images: ImageInput, diff --git a/src/transformers/utils/generic.py b/src/transformers/utils/generic.py index 3bd5fa8cc6fe..a5f01fa2e0df 100644 --- a/src/transformers/utils/generic.py +++ b/src/transformers/utils/generic.py @@ -816,6 +816,9 @@ def decorator(func): is_instance_method = "self" in function_named_args is_class_method = "cls" in function_named_args + # Mark function as decorated + func._filter_out_non_signature_kwargs = True + @wraps(func) def wrapper(*args, **kwargs): valid_kwargs = {} diff --git a/tests/models/blip/test_image_processing_blip.py b/tests/models/blip/test_image_processing_blip.py index 9be86359a1c3..d745f3420a61 100644 --- a/tests/models/blip/test_image_processing_blip.py +++ b/tests/models/blip/test_image_processing_blip.py @@ -43,6 +43,7 @@ def __init__( image_std=[0.26862954, 0.26130258, 0.27577711], do_convert_rgb=True, ): + super().__init__() size = size if size is not None else {"height": 20, "width": 20} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/bridgetower/test_image_processing_bridgetower.py b/tests/models/bridgetower/test_image_processing_bridgetower.py index 48268c8d3f56..61d07f10f367 100644 --- a/tests/models/bridgetower/test_image_processing_bridgetower.py +++ b/tests/models/bridgetower/test_image_processing_bridgetower.py @@ -50,6 +50,7 @@ def __init__( max_resolution=400, num_channels=3, ): + super().__init__() self.parent = parent self.do_resize = do_resize self.size = size if size is not None else {"shortest_edge": 288} diff --git a/tests/models/chameleon/test_image_processing_chameleon.py b/tests/models/chameleon/test_image_processing_chameleon.py index cf39e1e17fce..4a5c8c546790 100644 --- a/tests/models/chameleon/test_image_processing_chameleon.py +++ b/tests/models/chameleon/test_image_processing_chameleon.py @@ -50,6 +50,7 @@ def __init__( image_std=[1.0, 1.0, 1.0], do_convert_rgb=True, ): + super().__init__() size = size if size is not None else {"shortest_edge": 18} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} self.parent = parent diff --git a/tests/models/chinese_clip/test_image_processing_chinese_clip.py b/tests/models/chinese_clip/test_image_processing_chinese_clip.py index 168f84e98426..d75176895617 100644 --- a/tests/models/chinese_clip/test_image_processing_chinese_clip.py +++ b/tests/models/chinese_clip/test_image_processing_chinese_clip.py @@ -44,6 +44,7 @@ def __init__( image_std=[0.26862954, 0.26130258, 0.27577711], do_convert_rgb=True, ): + super().__init__() size = size if size is not None else {"height": 224, "width": 224} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} self.parent = parent diff --git a/tests/models/convnext/test_image_processing_convnext.py b/tests/models/convnext/test_image_processing_convnext.py index d2eaae453432..14a6b3e8e1aa 100644 --- a/tests/models/convnext/test_image_processing_convnext.py +++ b/tests/models/convnext/test_image_processing_convnext.py @@ -42,6 +42,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"shortest_edge": 20} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/deit/test_image_processing_deit.py b/tests/models/deit/test_image_processing_deit.py index 462ad56d6bf4..7792ac10e057 100644 --- a/tests/models/deit/test_image_processing_deit.py +++ b/tests/models/deit/test_image_processing_deit.py @@ -43,6 +43,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"height": 20, "width": 20} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} diff --git a/tests/models/donut/test_image_processing_donut.py b/tests/models/donut/test_image_processing_donut.py index 9d96eb8ede27..468108d593f2 100644 --- a/tests/models/donut/test_image_processing_donut.py +++ b/tests/models/donut/test_image_processing_donut.py @@ -51,6 +51,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() self.parent = parent self.batch_size = batch_size self.num_channels = num_channels diff --git a/tests/models/dpt/test_image_processing_dpt.py b/tests/models/dpt/test_image_processing_dpt.py index aa1b954a08a2..f68e9bb6130a 100644 --- a/tests/models/dpt/test_image_processing_dpt.py +++ b/tests/models/dpt/test_image_processing_dpt.py @@ -43,6 +43,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/efficientnet/test_image_processing_efficientnet.py b/tests/models/efficientnet/test_image_processing_efficientnet.py index 28b701c5c9ae..22e80c7312ef 100644 --- a/tests/models/efficientnet/test_image_processing_efficientnet.py +++ b/tests/models/efficientnet/test_image_processing_efficientnet.py @@ -43,6 +43,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/flava/test_image_processing_flava.py b/tests/models/flava/test_image_processing_flava.py index 04457e51acfd..657a63bd5375 100644 --- a/tests/models/flava/test_image_processing_flava.py +++ b/tests/models/flava/test_image_processing_flava.py @@ -76,6 +76,7 @@ def __init__( codebook_image_mean=FLAVA_CODEBOOK_MEAN, codebook_image_std=FLAVA_CODEBOOK_STD, ): + super().__init__() size = size if size is not None else {"height": 224, "width": 224} crop_size = crop_size if crop_size is not None else {"height": 224, "width": 224} codebook_size = codebook_size if codebook_size is not None else {"height": 112, "width": 112} diff --git a/tests/models/glpn/test_image_processing_glpn.py b/tests/models/glpn/test_image_processing_glpn.py index d4aa78656af5..ba387943d748 100644 --- a/tests/models/glpn/test_image_processing_glpn.py +++ b/tests/models/glpn/test_image_processing_glpn.py @@ -46,6 +46,7 @@ def __init__( size_divisor=32, do_rescale=True, ): + super().__init__() self.parent = parent self.batch_size = batch_size self.num_channels = num_channels diff --git a/tests/models/imagegpt/test_image_processing_imagegpt.py b/tests/models/imagegpt/test_image_processing_imagegpt.py index aa1039103e95..25e5d6b8d92e 100644 --- a/tests/models/imagegpt/test_image_processing_imagegpt.py +++ b/tests/models/imagegpt/test_image_processing_imagegpt.py @@ -51,6 +51,7 @@ def __init__( size=None, do_normalize=True, ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/instructblipvideo/test_image_processing_instrictblipvideo.py b/tests/models/instructblipvideo/test_image_processing_instrictblipvideo.py index d53342416d28..536b20554fd1 100644 --- a/tests/models/instructblipvideo/test_image_processing_instrictblipvideo.py +++ b/tests/models/instructblipvideo/test_image_processing_instrictblipvideo.py @@ -50,6 +50,7 @@ def __init__( do_convert_rgb=True, frames=4, ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/layoutlmv2/test_image_processing_layoutlmv2.py b/tests/models/layoutlmv2/test_image_processing_layoutlmv2.py index 09dabfc5bed4..f4a5b90d4ba3 100644 --- a/tests/models/layoutlmv2/test_image_processing_layoutlmv2.py +++ b/tests/models/layoutlmv2/test_image_processing_layoutlmv2.py @@ -41,6 +41,7 @@ def __init__( size=None, apply_ocr=True, ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/layoutlmv3/test_image_processing_layoutlmv3.py b/tests/models/layoutlmv3/test_image_processing_layoutlmv3.py index 2e853653a491..943b5bf4f0c6 100644 --- a/tests/models/layoutlmv3/test_image_processing_layoutlmv3.py +++ b/tests/models/layoutlmv3/test_image_processing_layoutlmv3.py @@ -41,6 +41,7 @@ def __init__( size=None, apply_ocr=True, ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/levit/test_image_processing_levit.py b/tests/models/levit/test_image_processing_levit.py index 882707629036..6bd1b4ca9bcb 100644 --- a/tests/models/levit/test_image_processing_levit.py +++ b/tests/models/levit/test_image_processing_levit.py @@ -43,6 +43,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"shortest_edge": 18} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} self.parent = parent diff --git a/tests/models/mobilenet_v1/test_image_processing_mobilenet_v1.py b/tests/models/mobilenet_v1/test_image_processing_mobilenet_v1.py index c9d32b0bab67..0d5f2eb8d001 100644 --- a/tests/models/mobilenet_v1/test_image_processing_mobilenet_v1.py +++ b/tests/models/mobilenet_v1/test_image_processing_mobilenet_v1.py @@ -40,6 +40,7 @@ def __init__( do_center_crop=True, crop_size=None, ): + super().__init__() size = size if size is not None else {"shortest_edge": 20} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} self.parent = parent diff --git a/tests/models/mobilenet_v2/test_image_processing_mobilenet_v2.py b/tests/models/mobilenet_v2/test_image_processing_mobilenet_v2.py index e9cdf4a4359e..f4fd2b401681 100644 --- a/tests/models/mobilenet_v2/test_image_processing_mobilenet_v2.py +++ b/tests/models/mobilenet_v2/test_image_processing_mobilenet_v2.py @@ -40,6 +40,7 @@ def __init__( do_center_crop=True, crop_size=None, ): + super().__init__() size = size if size is not None else {"shortest_edge": 20} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} self.parent = parent diff --git a/tests/models/mobilevit/test_image_processing_mobilevit.py b/tests/models/mobilevit/test_image_processing_mobilevit.py index 8849839a0974..f1bbeac8af34 100644 --- a/tests/models/mobilevit/test_image_processing_mobilevit.py +++ b/tests/models/mobilevit/test_image_processing_mobilevit.py @@ -48,6 +48,7 @@ def __init__( crop_size=None, do_flip_channel_order=True, ): + super().__init__() size = size if size is not None else {"shortest_edge": 20} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} self.parent = parent diff --git a/tests/models/nougat/test_image_processing_nougat.py b/tests/models/nougat/test_image_processing_nougat.py index 5ab2901d31e8..9d0b291ae37c 100644 --- a/tests/models/nougat/test_image_processing_nougat.py +++ b/tests/models/nougat/test_image_processing_nougat.py @@ -53,6 +53,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"height": 20, "width": 20} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/owlv2/test_image_processing_owlv2.py b/tests/models/owlv2/test_image_processing_owlv2.py index 6eda53a971ba..decf903a1470 100644 --- a/tests/models/owlv2/test_image_processing_owlv2.py +++ b/tests/models/owlv2/test_image_processing_owlv2.py @@ -47,6 +47,7 @@ def __init__( image_std=[0.26862954, 0.26130258, 0.27577711], do_convert_rgb=True, ): + super().__init__() self.parent = parent self.batch_size = batch_size self.num_channels = num_channels diff --git a/tests/models/owlvit/test_image_processing_owlvit.py b/tests/models/owlvit/test_image_processing_owlvit.py index 4442b1a65a7f..b95e61346205 100644 --- a/tests/models/owlvit/test_image_processing_owlvit.py +++ b/tests/models/owlvit/test_image_processing_owlvit.py @@ -44,6 +44,7 @@ def __init__( image_std=[0.26862954, 0.26130258, 0.27577711], do_convert_rgb=True, ): + super().__init__() self.parent = parent self.batch_size = batch_size self.num_channels = num_channels diff --git a/tests/models/poolformer/test_image_processing_poolformer.py b/tests/models/poolformer/test_image_processing_poolformer.py index af4c2bcbb55e..21975371f9fe 100644 --- a/tests/models/poolformer/test_image_processing_poolformer.py +++ b/tests/models/poolformer/test_image_processing_poolformer.py @@ -41,6 +41,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"shortest_edge": 30} crop_size = crop_size if crop_size is not None else {"height": 30, "width": 30} self.parent = parent diff --git a/tests/models/pvt/test_image_processing_pvt.py b/tests/models/pvt/test_image_processing_pvt.py index d24421fc7410..c32169d03ae5 100644 --- a/tests/models/pvt/test_image_processing_pvt.py +++ b/tests/models/pvt/test_image_processing_pvt.py @@ -41,6 +41,7 @@ def __init__( image_mean=[0.485, 0.456, 0.406], image_std=[0.229, 0.224, 0.225], ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/rt_detr/test_image_processing_rt_detr.py b/tests/models/rt_detr/test_image_processing_rt_detr.py index 3960e4401916..2a38664d433f 100644 --- a/tests/models/rt_detr/test_image_processing_rt_detr.py +++ b/tests/models/rt_detr/test_image_processing_rt_detr.py @@ -45,6 +45,7 @@ def __init__( do_pad=False, return_tensors="pt", ): + super().__init__() self.parent = parent self.batch_size = batch_size self.num_channels = num_channels diff --git a/tests/models/siglip/test_image_processing_siglip.py b/tests/models/siglip/test_image_processing_siglip.py index 77a0432d8669..02bf6d78c8d4 100644 --- a/tests/models/siglip/test_image_processing_siglip.py +++ b/tests/models/siglip/test_image_processing_siglip.py @@ -43,6 +43,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/swin2sr/test_image_processing_swin2sr.py b/tests/models/swin2sr/test_image_processing_swin2sr.py index 86f7c8878ca5..fa1e25db7134 100644 --- a/tests/models/swin2sr/test_image_processing_swin2sr.py +++ b/tests/models/swin2sr/test_image_processing_swin2sr.py @@ -48,6 +48,7 @@ def __init__( do_pad=True, pad_size=8, ): + super().__init__() self.parent = parent self.batch_size = batch_size self.num_channels = num_channels diff --git a/tests/models/tvp/test_image_processing_tvp.py b/tests/models/tvp/test_image_processing_tvp.py index 7de45d4bee06..023cf4f9da9a 100644 --- a/tests/models/tvp/test_image_processing_tvp.py +++ b/tests/models/tvp/test_image_processing_tvp.py @@ -58,6 +58,7 @@ def __init__( num_channels=3, num_frames=2, ): + super().__init__() self.do_resize = do_resize self.size = size self.do_center_crop = do_center_crop diff --git a/tests/models/video_llava/test_image_processing_video_llava.py b/tests/models/video_llava/test_image_processing_video_llava.py index 03cfb033ffb9..b666c20ab848 100644 --- a/tests/models/video_llava/test_image_processing_video_llava.py +++ b/tests/models/video_llava/test_image_processing_video_llava.py @@ -52,6 +52,7 @@ def __init__( image_std=OPENAI_CLIP_STD, do_convert_rgb=True, ): + super().__init__() size = size if size is not None else {"shortest_edge": 20} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} self.parent = parent diff --git a/tests/models/videomae/test_image_processing_videomae.py b/tests/models/videomae/test_image_processing_videomae.py index 319e39fcc2cc..386b1f968b9c 100644 --- a/tests/models/videomae/test_image_processing_videomae.py +++ b/tests/models/videomae/test_image_processing_videomae.py @@ -50,6 +50,7 @@ def __init__( image_std=[0.5, 0.5, 0.5], crop_size=None, ): + super().__init__() size = size if size is not None else {"shortest_edge": 18} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} diff --git a/tests/models/vilt/test_image_processing_vilt.py b/tests/models/vilt/test_image_processing_vilt.py index 25026cb7d7a4..3e38b88a3656 100644 --- a/tests/models/vilt/test_image_processing_vilt.py +++ b/tests/models/vilt/test_image_processing_vilt.py @@ -46,6 +46,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"shortest_edge": 30} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/vit/test_image_processing_vit.py b/tests/models/vit/test_image_processing_vit.py index 6d296654b8e8..5a94b4bb6e12 100644 --- a/tests/models/vit/test_image_processing_vit.py +++ b/tests/models/vit/test_image_processing_vit.py @@ -44,6 +44,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/models/vitmatte/test_image_processing_vitmatte.py b/tests/models/vitmatte/test_image_processing_vitmatte.py index 8aebee3735f4..288ed53d190d 100644 --- a/tests/models/vitmatte/test_image_processing_vitmatte.py +++ b/tests/models/vitmatte/test_image_processing_vitmatte.py @@ -15,6 +15,7 @@ import unittest +import warnings import numpy as np @@ -51,6 +52,7 @@ def __init__( image_mean=[0.5, 0.5, 0.5], image_std=[0.5, 0.5, 0.5], ): + super().__init__() self.parent = parent self.batch_size = batch_size self.num_channels = num_channels @@ -197,3 +199,20 @@ def test_padding(self): image = np.random.randn(3, 249, 512) images = image_processing.pad_image(image) assert images.shape == (3, 256, 512) + + def test_image_processor_preprocess_arguments(self): + # vitmatte require additional trimap input for image_processor + # that is why we override original common test + + for image_processing_class in self.image_processor_list: + image_processor = image_processing_class(**self.image_processor_dict) + image = self.image_processor_tester.prepare_image_inputs()[0] + trimap = np.random.randint(0, 3, size=image.size[::-1]) + + with warnings.catch_warnings(record=True) as raised_warnings: + warnings.simplefilter("always") + image_processor(image, trimaps=trimap, extra_argument=True) + + messages = " ".join([str(w.message) for w in raised_warnings]) + self.assertGreaterEqual(len(raised_warnings), 1) + self.assertIn("extra_argument", messages) diff --git a/tests/models/vivit/test_image_processing_vivit.py b/tests/models/vivit/test_image_processing_vivit.py index 0e8301f66734..4d3fee544c27 100644 --- a/tests/models/vivit/test_image_processing_vivit.py +++ b/tests/models/vivit/test_image_processing_vivit.py @@ -50,6 +50,7 @@ def __init__( image_std=[0.5, 0.5, 0.5], crop_size=None, ): + super().__init__() size = size if size is not None else {"shortest_edge": 18} crop_size = crop_size if crop_size is not None else {"height": 18, "width": 18} diff --git a/tests/models/zoedepth/test_image_processing_zoedepth.py b/tests/models/zoedepth/test_image_processing_zoedepth.py index 7dd82daf0d5f..56c181c97d99 100644 --- a/tests/models/zoedepth/test_image_processing_zoedepth.py +++ b/tests/models/zoedepth/test_image_processing_zoedepth.py @@ -46,6 +46,7 @@ def __init__( image_std=[0.5, 0.5, 0.5], do_pad=False, ): + super().__init__() size = size if size is not None else {"height": 18, "width": 18} self.parent = parent self.batch_size = batch_size diff --git a/tests/test_image_processing_common.py b/tests/test_image_processing_common.py index 4971b814d31a..a3fbb6eeb781 100644 --- a/tests/test_image_processing_common.py +++ b/tests/test_image_processing_common.py @@ -19,6 +19,7 @@ import pathlib import tempfile import time +import warnings import numpy as np import requests @@ -425,8 +426,12 @@ def test_call_numpy_4_channels(self): ) def test_image_processor_preprocess_arguments(self): + is_tested = False + for image_processing_class in self.image_processor_list: image_processor = image_processing_class(**self.image_processor_dict) + + # validation done by _valid_processor_keys attribute if hasattr(image_processor, "_valid_processor_keys") and hasattr(image_processor, "preprocess"): preprocess_parameter_names = inspect.getfullargspec(image_processor.preprocess).args preprocess_parameter_names.remove("self") @@ -434,6 +439,28 @@ def test_image_processor_preprocess_arguments(self): valid_processor_keys = image_processor._valid_processor_keys valid_processor_keys.sort() self.assertEqual(preprocess_parameter_names, valid_processor_keys) + is_tested = True + + # validation done by @filter_out_non_signature_kwargs decorator + if hasattr(image_processor.preprocess, "_filter_out_non_signature_kwargs"): + if hasattr(self.image_processor_tester, "prepare_image_inputs"): + inputs = self.image_processor_tester.prepare_image_inputs() + elif hasattr(self.image_processor_tester, "prepare_video_inputs"): + inputs = self.image_processor_tester.prepare_video_inputs() + else: + self.skipTest(reason="No valid input preparation method found") + + with warnings.catch_warnings(record=True) as raised_warnings: + warnings.simplefilter("always") + image_processor(inputs, extra_argument=True) + + messages = " ".join([str(w.message) for w in raised_warnings]) + self.assertGreaterEqual(len(raised_warnings), 1) + self.assertIn("extra_argument", messages) + is_tested = True + + if not is_tested: + self.skipTest(reason="No validation found for `preprocess` method") class AnnotationFormatTestMixin: