
    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Jr  SSKJrJr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 ConvNeXT.    N)
functional   )TorchvisionBackend)BatchFeature)get_resize_output_image_sizegroup_images_by_shapereorder_images)IMAGENET_STANDARD_MEANIMAGENET_STANDARD_STDChannelDimensionPILImageResamplingSizeDict)ImagesKwargsUnpack)
TensorTypeauto_docstringc                   $    \ rS rSr% Sr\\S'   Srg)ConvNextImageProcessorKwargs!   z
crop_pct (`float`, *optional*, defaults to `self.crop_pct`):
    Percentage of the image to crop. Only has an effect if size < 384.
crop_pct N)__name__
__module____qualname____firstlineno____doc__float__annotations____static_attributes__r       ڇ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/models/convnext/image_processing_convnext.pyr   r   !   s    
 Or    r   F)totalc            #       @  ^  \ rS rSrSr\r\R                  r	\
r\rSS0rSrSrSrSrSrS\\   4U 4S	 jjr S"S
SS\SSS\SS4
U 4S j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 $ )#ConvNextImageProcessor*   z4Torchvision backend for ConvNeXT with custom resize.shortest_edge  FT      ?kwargsc                 &   > [         TU ]  " S0 UD6  g )Nr   )super__init__)selfr)   	__class__s     r!   r,   ConvNextImageProcessor.__init__:   s    "6"r    imageztorch.Tensorsizeresamplez7PILImageResampling | tvF.InterpolationMode | int | Noner   returnc                 ~  > UR                   (       d  [        SUR                  5        35      eUR                   nUS:  ac  [        Xd-  5      n[	        XS[
        R                  S9n[        T	U ]   " U[        US   US   S94SU0UD6nU R                  " U[        XfS940 UD6$ [        T	U ]   " U[        XfS94SU0UD6$ )	zResize with crop_pct support.z6Size dictionary must contain 'shortest_edge' key. Got r'   F)r1   default_to_squareinput_data_formatr      )heightwidthr2   )r&   
ValueErrorkeysintr   r   FIRSTr+   resizer   center_crop)
r-   r0   r1   r2   r   r)   r&   resize_shortest_edgeresize_sizer.   s
            r!   r>   ConvNextImageProcessor.resize=   s     !!UVZV_V_VaUbcdd**3#&}'?#@ 6E]m]s]sK GNAk!nE " 	E ##C   7>C " 	 r    images	do_resizedo_center_crop	crop_size
do_rescalerescale_factordo_normalize
image_meanN	image_stddo_padpad_sizedisable_groupingreturn_tensorsc           	         [        XS9u  nn0 nUR                  5        H%  u  nnU(       a  U R                  UX4U5      nUUU'   M'     [        UU5      n[        UUS9u  nn0 nUR                  5        H8  u  nnU(       a  U R	                  UU5      nU R                  UXxXU5      nUUU'   M:     [        UU5      n[        SU0US9$ )z"Custom preprocessing for ConvNeXT.)rN   pixel_values)datatensor_type)r   itemsr>   r	   r?   rescale_and_normalizer   )r-   rC   rD   r1   r2   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   r   r)   grouped_imagesgrouped_images_indexresized_images_groupedshapestacked_imagesresized_imagesprocessed_images_groupedprocessed_imagess                             r!   _preprocess"ConvNextImageProcessor._preprocesse   s    * 0EV/o,,!#%3%9%9%;!E>!%^TX!V,:"5) &< ((>@TU/D^fv/w,,#% %3%9%9%;!E>!%!1!1.)!L!77
LV_N /=$U+ &< **BDXY.2B!CQ_``r    r   )r(   )!r   r   r   r   r   r   valid_kwargsr   BICUBICr2   r
   rJ   r   rK   r1   r5   rD   rG   rI   r   r   r,   r   r   r>   listboolstrr   r   r^   r   __classcell__)r.   s   @r!   r$   r$   *   s   >/L!))H'J%IS!DIJLH#(D!E # $&& & L	&
 & 
& &r $#)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   tvFimage_processing_backendsr   image_processing_utilsr   image_transformsr   r   r	   image_utilsr
   r   r   r   r   processing_utilsr   r   utilsr   r   r   r$   __all__r   r    r!   <module>rp      si    *  7 ; 2 c c  5 /<u  ca/ ca caL $
$r    