From 953196a43dae6a3c474165fba7d215fcbc7b7730 Mon Sep 17 00:00:00 2001 From: Eric Wiener Date: Fri, 11 Apr 2025 17:24:23 -0400 Subject: [PATCH] Fix typing issues with SigLip2 (#37356) * Fix issues * Fix comment --------- Co-authored-by: Pavel Iakubovskii --- src/transformers/image_processing_utils_fast.py | 6 +++++- src/transformers/models/siglip2/image_processing_siglip2.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/transformers/image_processing_utils_fast.py b/src/transformers/image_processing_utils_fast.py index 78565ccbd2..644bb76334 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 6278010319..53d53797f2 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,