
    Z j                         S r SSKrSSKJr  SSKJr  SSKJr  SSK	J
r
Jr  SSKJrJrJr  SS	KJrJr  SS
KJrJr   " S S\SS9r\ " S S\5      5       rS/rg)z"Image processor class for Swin2SR.    N)
functional   )TorchvisionBackend)BatchFeature)group_images_by_shapereorder_images)
ImageInputPILImageResamplingSizeDict)ImagesKwargsUnpack)
TensorTypeauto_docstringc                   $    \ rS rSr% Sr\\S'   Srg)Swin2SRImageProcessorKwargs   z
size_divisor (`int`, *optional*, defaults to `self.size_divisor`):
    The size to make the height and width divisible by when padding.
size_divisor N)__name__
__module____qualname____firstlineno____doc__int__annotations____static_attributes__r       څ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/models/swin2sr/image_processing_swin2sr.pyr   r      s    
 r   r   F)totalc            #       <  ^  \ rS rSrSr\rSrSrSr	Sr
S\\   4U 4S jjr\S\S\\   S	\4U 4S
 jj5       r S SSS\S-  S\S	S4S jjr S S\S   S\S\SSS\S\S\S\S\S\\\   -  S-  S\\\   -  S-  S\S-  S\S-  S\S-  S\\-  S-  S\S	\4"S jjrSrU =r$ )!Swin2SRImageProcessor(   z0Torchvision backend for Swin2SR with custom pad.Tgp?   kwargsc                 t   > UR                  SS 5      nUb  UR                  SU5        [        TU ]  " S0 UD6  g )Npad_sizer   r   )pop
setdefaultsuper__init__)selfr$   r&   	__class__s      r   r*   Swin2SRImageProcessor.__init__3   s9    ::j$/nh7"6"r   imagesreturnc                 &   > [         TU ]  " U40 UD6$ )N)r)   
preprocess)r+   r.   r$   r,   s      r   r1    Swin2SRImageProcessor.preprocess:   s     w!&3F33r   ztorch.Tensorr&   Nr   c                     UR                   SS u  pVXS-  S-   U-  U-
  nXc-  S-   U-  U-
  n[        R                  " USSX4SS9$ )zVPad images to make height and width divisible by size_divisor using symmetric padding.N   r   	symmetric)padding_mode)shapetvFpad)	r+   r.   r&   r   r$   heightwidth
pad_height	pad_widths	            r   r:   Swin2SRImageProcessor.padB   s^     RS),q0L@6I
*Q.,>F	wwv1i<;WWr   	do_resizesizeresamplez7PILImageResampling | tvF.InterpolationMode | int | Nonedo_center_crop	crop_size
do_rescalerescale_factordo_normalize
image_mean	image_stddo_paddisable_groupingreturn_tensorsc                     [        XS9u  nn0 nUR                  5        H<  u  nnU(       a  U R                  UU5      nU(       a  U R                  UUUS9nUUU'   M>     [	        UU5      n[        SU0US9$ )z!Custom preprocessing for Swin2SR.)rK   )r&   r   pixel_values)datatensor_type)r   itemsrescaler:   r   r   )r+   r.   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   r&   rK   rL   r   r$   grouped_imagesgrouped_images_indexprocessed_images_groupedr8   stacked_imagesprocessed_imagess                           r   _preprocess!Swin2SRImageProcessor._preprocessO   s    * 0EV/o,,#% %3%9%9%;!E>!%nn!M!%.8Zf!g.<$U+ &< **BDXY.2B!CQ_``r   r   )r#   )r   r   r   r   r   r   valid_kwargsrE   rF   rJ   r   r   r*   r   r	   r   r1   r   r   r:   listboolfloatstrr   rX   r   __classcell__)r,   s   @r   r!   r!   (   s   :.LJNFL#(C!D # 44 454 
	4 4 	XX T/X 	X 
X< #a^$a a 	a
 La a a a a a DK'$.a 4;&-a ta T/a +a  j(4/!a" #a& 
'a ar   r!   )r   torchtorchvision.transforms.v2r   r9   image_processing_backendsr   image_processing_utilsr   image_transformsr   r   image_utilsr	   r
   r   processing_utilsr   r   utilsr   r   r   r!   __all__r   r   r   <module>ri      sf    )  7 ; 2 E 
 5 /,e  Da. Da DaN #
#r   