+
    œ°³j¼"  ã                   óÊ   € ^ RI t ^ RIHu Hu Ht ^RIHt ^RIH	t	 ^RI
HtHt ^RIHtHtHtHtHt ^RIHtHt ^RIHtHt  ! R R	]R
R7      t] ! R R]4      4       tR.tR# )é    N)ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚOPENAI_CLIP_MEANÚOPENAI_CLIP_STDÚ
ImageInputÚPILImageResamplingÚSizeDict)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚauto_docstringc                   ó0   a € ] tR t^$t o RtV 3R ltRtV tR# )ÚJanusImageProcessorKwargsz¸
min_size (`int`, *optional*, defaults to 14):
    The minimum allowed size for the resized image. Ensures that neither the height nor width
    falls below this value after resizing.
c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )é   Úmin_size©Úint)ÚformatÚ__classdict__s   "€Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/janus/image_processing_janus.pyÚ__annotate__Ú&JanusImageProcessorKwargs.__annotate__$   s   ø‡ ‚ ñ �Mò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r   $   s   ø‡ € ñ÷ ƒ r   r   F)Útotalc                   óà   a a€ ] tR t^.t o]P
                  t]t]	t
RRRR/t^tRtRtRtRt]tV3R lV 3R lltRV3R lV 3R llltRV3R	 lR
 lltRV3R lR lltRV3R lR lltRtVtV ;t# )ÚJanusImageProcessorÚheighti€  ÚwidthTc                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r   Úkwargs)r   r   )r   r   s   "€r   r   Ú JanusImageProcessor.__annotate__;   s   ø€ ÷ 8ñ 8¡Ñ(AÕ!Bñ 8r   c                ó  <€ \         SV `  ! R/ VB  VP                  R 4      f   RpMJ\        ;QJ d#    . R VP                  R 4       4       F  NK  	  5M! R VP                  R 4       4       4      p\        V4      V n        R# )Ú
image_meanNc              3   óF   "  € T F  p\        V^ÿ,          4      x € K  	  R# 5i)éÿ   Nr   )Ú.0Úxs   & r   Ú	<genexpr>Ú/JanusImageProcessor.__init__.<locals>.<genexpr>@   s   é € Ð$TÑ;S°a¤S¨¨S­§\ \Ó;Sùs   ‚!r   )é   r6   r6   )ÚsuperÚ__init__ÚgetÚtupleÚbackground_color)Úselfr,   r;   Ú	__class__s   &, €r   r8   ÚJanusImageProcessor.__init__;   sg   ø€ Ü‰ÒÑ"˜6Ò"Ø�:‰:�lÓ#Ò+Ø.Ñç$œuÑ$T¸6¿:¹:ÀlÔ;SÓ$TŸu™uÑ$T¸6¿:¹:ÀlÔ;SÓ$TÓTÐÜ %Ð&6Ó 7ˆÖr   c                ó8   <€ V ^8„  d   QhRRRS[ RS[RRRS[RR/# )	r   Úimageútorch.TensorÚsizer   Úresampleú7PILImageResampling | tvF.InterpolationMode | int | NoneÚ	antialiasÚreturn)r   r   Úbool)r   r   s   "€r   r   r-   C   sP   ø€ ÷ iñ iàðiñ ðiñ ð	ið
 Lðiñ ðið 
ñir   c           	     ó°  <€ VP                   e*   VP                  e   VP                   VP                  8w  d    \        RVR,           RVR,           24      hVP                   pVP                  RR  w  rx\	        Wx4      p	W),          p
\        \	        \        Wz,          4      V4      \	        \        WŠ,          4      V4      R7      p\        SV `!  WWER7      # )Nz5Output height and width must be the same. Got height=r)   z and width=r*   )r)   r*   )rB   rC   rE   éþÿÿÿ)	r)   r*   Ú
ValueErrorÚshapeÚmaxr   Úroundr7   Úresize)r<   r@   rB   r   rC   rE   r,   r)   r*   Úmax_sizeÚdeltaÚoutput_size_nonpaddedr=   s   &&&&&&,     €r   rN   ÚJanusImageProcessor.resizeC   sÂ   ø€ ð �;‰;Ò $§*¡*Ò"4¸¿¹ÀtÇzÁzÔ8QÜØGÈÈXÍÐGWÐWbÐcgÐhoÕcpÐbqÐróð ð �{‰{ˆàŸ™ B CÐ(‰ˆÜ�vÓ%ˆà•ˆä (Ü”u˜V�^Ó,¨hÓ7Ü”e˜E�MÓ*¨HÓ5ô!
Ðô
 ‰w‰~˜eÈ(ˆ~ÓhÐhr   c                óR   <€ V ^8„  d   QhRRRS[ S[S[ S[ S[ 3,          ,          RR/# )r   ÚimagesrA   r;   rF   )r   r:   )r   r   s   "€r   r   r-   ^   s9   ø€ ÷ 0ñ 0àð0ñ ¡¡c©3± mÕ 4Õ4ð0ð 
ñ	0r   c                ó.  € VP                   RR w  r4VP                   ^,          pVP                   ^ ,          pW48X  d   V# \        W44      p\        V\        4      '       d   V.pM\	        V4      V8w  d   \        RV R24      h\        P                  ! WeWw3VP                  VP                  R7      p\        V4       F  w  ršW¨RV	RR3&   K  	  WC8”  d"   Ws,
          ^,          pWRRW»V,           1R3&   V# Wt,
          ^,          pWRRRW»V,           13&   V# )añ  
Pads an image to a square based on the longest edge.

Args:
    images (`torch.Tensor`):
        The images to pad.
    background_color (`int` or `tuple[int, int, int]`, *optional*, defaults to 0):
        The color to use for the padding. Can be an integer for single channel or a
        tuple of integers representing for multi-channel images. If passed as integer
        in multi-channel mode, it will default to `0` in subsequent channels.

Returns:
    `torch.Tensor`: The padded images.
Nz(background_color must have no more than z) elements to match the number of channels)ÚdtypeÚdevice:NNNrI   )rK   rL   Ú
isinstancer   ÚlenrJ   ÚtorchÚzerosrV   rW   Ú	enumerate)r<   rT   r;   r)   r*   Únum_channelsÚ
batch_sizeÚmax_dimÚpadded_imagesÚiÚcolorÚstarts   &&&         r   Úpad_to_squareÚ!JanusImageProcessor.pad_to_square^   s.  € ð& Ÿ™ R SÐ)‰ˆØ—|‘| A•ˆØ—\‘\ !•_ˆ
àŒ?ØˆMä�fÓ$ˆô Ð&¬×,Ò,Ø 0Ð1ÑÜÐ!Ó" lÔ2ÜØ:¸<¸.ÐHqÐróð ô ŸšØ wÐ8ÀÇÁÐU[×UbÑUbô
ˆô "Ð"2Ö3‰HˆAØ(-˜!˜Q  1˜*Ó%ñ 4àŒ>ØÕ%¨!Õ+ˆEØ=C˜!˜Q °­Ð 6¸Ð9Ñ:ð
 Ðð •_¨Õ*ˆEØ<B˜!˜Q  5°5­=Ð#8Ð8Ñ9àÐr   c                ó  <€ V ^8„  d   QhRS[ R,          RS[RS[RS[RRRS[R	S[R
S[RS[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[R,          RS[S[,          R,          RS[RS[/# )r   rT   rA   Ú	do_resizerB   r   rC   rD   Ú
do_rescaleÚrescale_factorÚdo_normalizer/   NÚ	image_stdÚdisable_groupingÚreturn_tensorsÚdo_padrF   )ÚlistrG   r   r   ÚfloatÚstrr   r   )r   r   s   "€r   r   r-   �   s×   ø€ ÷ )añ )aá�^Õ$ð)añ ð)añ ð	)añ
 ð)að Lð)añ ð)añ ð)añ ð)añ ™D¡�KÕ'¨$Õ.ð)añ ™4¡�;Õ&¨Õ-ð)añ  �+ð)añ ™jÕ(¨4Õ/ð)añ ð)añ  
ñ!)ar   c           	     ó¼  € \        WR 7      w  pp/ pVP                  4        F'  w  ppV'       d   V P                  VW4VR7      pVVV&   K)  	  \        VV4      p\        VVR 7      w  pp/ pVP                  4        FD  w  ppV'       d   V P	                  VV P
                  R7      pV P                  VWgW‰V
4      pVVV&   KF  	  \        VV4      p\        RV/VR7      # ))rl   )r@   rB   r   rC   ©r;   Úpixel_values©ÚdataÚtensor_type)r   ÚitemsrN   r   rd   r;   Úrescale_and_normalizer   )r<   rT   rg   rB   r   rC   rh   ri   rj   r/   rk   rl   rm   rn   r,   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedrK   Ústacked_imagesÚresized_imagesÚprocessed_images_groupedÚprocessed_imagess   &&&&&&&&&&&&&&,        r   Ú_preprocessÚJanusImageProcessor._preprocess�   s  € ô$ 0EÀVÔ/oÑ,ˆÐ,Ø!#ÐØ%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%§¡°>ÈÐjr Ó!s�Ø,:Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆô 0EÀ^ÐfvÔ/wÑ,ˆÐ,Ø#%Ð Ø%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%×!3Ñ!3°NÐUY×UjÑUjÐ!3Ó!k�à!×7Ñ7Ø 
¸LÐV_óˆNð /=Ð$ UÓ+ñ &<ô *Ð*BÐDXÓYÐä .Ð2BÐ!CÐQ_Ô`Ð`r   c                ó¼   <€ V ^8„  d   QhRS[ RS[R,          RS[R,          RS[R,          RS[S[,          R,          RS[S[,          R,          RS[R,          R	R
/# )r   rT   rh   Nri   rj   r/   rk   rm   rF   rA   )r	   rG   rp   ro   rq   )r   r   s   "€r   r   r-   »   s‡   ø€ ÷ &Wñ &Wáð&Wñ ˜4•Kð&Wñ  �ð	&Wñ
 ˜T•kð&Wñ ™•K $Õ&ð&Wñ ™•; Õ%ð&Wñ ˜d�
ð&Wð 
ñ&Wr   c                óz  a€ Ve   TMV P                   pSf   RV P                  ,          MSoVe   TMV P                  pVe   TMV P                  pVe   TMV P                  p\
        ;QJ d     . V3R l\        WV4       4       F  NK  	  5M! V3R l\        WV4       4       4      p\
        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pV P                  VVSVVVRRVR7	      P                  pV'       d>   V Uu. uF1  qˆP                  ^ ^ÿ4      P                  \        P                  4      NK3  	  ppV'       d5   V'       d-   VR8X  d&   V Uu. uF  p\        P                  ! V4      NK  	  ppVR8w  d   TMR pVR8X  d   \        P                  ! V^ R7      MTp\!        R	V/VR
7      # u upi u upi )Ng      ð?c              3   óJ   <"  € T F  w  rS) V,          V,          x € K  	  R # 5i)Nr   )r2   ÚmeanÚstdri   s   &  €r   r4   Ú2JanusImageProcessor.postprocess.<locals>.<genexpr>Ê   s$   øé € ÐdÑIc¹I¸D˜N˜?¨TÕ1°C×7Ò7ÓIcùs   ƒ #c              3   ó4   "  € T F  p^V,          x € K  	  R# 5i)é   Nr   )r2   r‡   s   & r   r4   rˆ   Ë   s   é € Ð7©Y c˜!˜cŸ'š'«Yùs   ‚F)rh   ri   rj   r/   rk   rg   rn   rm   zPIL.Image.ImageÚpt)Údimrt   ru   )rh   ri   rj   r/   rk   r:   ÚzipÚ
preprocessrt   ÚclipÚtorZ   Úuint8ÚtvFÚto_pil_imageÚstackr   )	r<   rT   rh   ri   rj   r/   rk   rm   r@   s	   &&&f&&&& r   ÚpostprocessÚJanusImageProcessor.postprocess»   s�  ø€ ð $.Ò#9‘Z¸t¿¹ˆ
Ø6DÒ6L˜˜t×2Ñ2Ö2ÐR`ˆØ'3Ò'?‘|ÀT×EVÑEVˆØ#-Ò#9‘Z¸t¿¹ˆ
Ø!*Ò!6‘I¸D¿N¹Nˆ	ß”UÔdÌÈZÔIcÓd—U‘UÔdÌÈZÔIcÓdÓdˆ
ß”EÑ7©YÓ7—E‘EÑ7©YÓ7Ó7ˆ	à—‘ØØ!Ø)Ø%Ø!ØØØØ)ð !ó 

÷ ‰,ð 	÷ ÙFLÓMÁf¸U—j‘j  CÓ(×+Ñ+¬E¯K©KÖ8ÁfˆFÐMçŸJ¨>Ð=NÔ+NÙ;AÓB¹6°%”c×&Ò& uÖ-¹6ˆFÐBà+9Ð=NÔ+N™ÐTXˆØ/=ÀÔ/E”—’˜V¨Õ+È6ˆä .°&Ð!9À~ÔVÐVùò Nùò Cs   Ä7F3ÅF8rs   )T)r   )NNNNNN)r   r   r    r!   r
   ÚBICUBICrC   r   r/   r   rk   rB   r   rg   rh   rj   rn   r   Úvalid_kwargsr8   rN   rd   r�   r•   r$   r%   Ú__classcell__)r=   r   s   @@r   r(   r(   .   s†   ù‡ € à!×)Ñ)€HØ!€JØ€IØ�c˜7 CÐ(€DØ€HØ€IØ€JØ€LØ€FØ,€L÷8ó 8÷iõ i÷60ò 0÷d)aò )a÷V&W÷ &Wò &Wr   r(   )rZ   Ú$torchvision.transforms.v2.functionalÚ
transformsÚv2Ú
functionalr’   Úimage_processing_backendsr   Úimage_processing_utilsr   Úimage_transformsr   r   Úimage_utilsr   r   r	   r
   r   Úprocessing_utilsr   r   Úutilsr   r   r   r(   Ú__all__r   r   r   Ú<module>r¥      sh   ðó  ß 2Ó 2å ;Ý 2ß E÷õ ÷ 5÷ô °Eõ ð ôrWÐ,ó rWó ðrWðj !Ð
!‚r   