ó
    qyüi…  ã                   ó¾   • 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   ó    Ús/home/mande/repo/quber/.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ú   ø€ ð ×!×!ÜÐUÐVZ×V_ÑV_ÓVaÐUbÐcÓdÐdØ×*Ñ*ˆà˜3Óä#& }Ñ'?Ó#@Ð Ü6ØÀEÔ]m×]sÑ]sñˆKô ‘G’NØÜ ¨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XxXšU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�>ÞØ!%§¡¨^¸TÈXÓ!V�Ø,:Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆä/DÀ^ÐfvÑ/wÑ,ˆÐ,Ø#%Ð Ø%3×%9Ñ%9Ö%;Ñ!ˆE�>ÞØ!%×!1Ñ!1°.À)Ó!L�Ø!×7Ñ7Ø 
¸LÐV_óˆNð /=Ð$ UÓ+ñ &<ô *Ð*BÐDXÓYÐä .Ð2BÐ!CÐQ_Ñ`Ð`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    