diff --git a/src/transformers/image_processing_utils_fast.py b/src/transformers/image_processing_utils_fast.py index 78565ccbd22..644bb763347 100644 --- a/src/transformers/image_processing_utils_fast.py +++ b/src/transformers/image_processing_utils_fast.py @@ -691,8 +691,12 @@ class BaseImageProcessorFast(BaseImageProcessor): # torch resize uses interpolation instead of resample resample = kwargs.pop("resample") + + # Check if resample is an int before checking if it's an instance of PILImageResampling + # because if pillow < 9.1.0, resample is an int and PILImageResampling is a module. + # Checking PILImageResampling will fail with error `TypeError: isinstance() arg 2 must be a type or tuple of types`. kwargs["interpolation"] = ( - pil_torch_interpolation_mapping[resample] if isinstance(resample, (PILImageResampling, int)) else resample + pil_torch_interpolation_mapping[resample] if isinstance(resample, (int, PILImageResampling)) else resample ) # Pop kwargs that are not needed in _preprocess diff --git a/src/transformers/models/siglip2/image_processing_siglip2.py b/src/transformers/models/siglip2/image_processing_siglip2.py index 6278010319b..53d53797f2c 100644 --- a/src/transformers/models/siglip2/image_processing_siglip2.py +++ b/src/transformers/models/siglip2/image_processing_siglip2.py @@ -163,7 +163,7 @@ class Siglip2ImageProcessor(BaseImageProcessor): def __init__( self, do_resize: bool = True, - resample: PILImageResampling = PILImageResampling.BILINEAR, + resample: "PILImageResampling" = PILImageResampling.BILINEAR, do_rescale: bool = True, rescale_factor: float = 1 / 255, do_normalize: bool = True, @@ -195,7 +195,7 @@ class Siglip2ImageProcessor(BaseImageProcessor): self, images: ImageInput, do_resize: Optional[bool] = None, - resample: Optional[PILImageResampling] = None, + resample: Optional["PILImageResampling"] = None, do_rescale: Optional[bool] = None, rescale_factor: Optional[float] = None, do_normalize: Optional[bool] = None,