ó
    qyüi  ã                   ó¶   • S r SSKrSSKrSSK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  SSKJrJr  \R*                  " \5      r\ " S	 S
\
5      5       rS
/rg)z$Image processor class for Chameleon.é    N)Ú
functionalé   )ÚTorchvisionBackend)Ú
ImageInputÚPILImageResamplingÚSizeDict)ÚImagesKwargsÚUnpack)Úauto_docstringÚloggingc                   óÂ   ^ • \ rS rSrSr\R                  r/ SQr/ SQr	SS0r
SrSSS.rSrSrSrS	rSrSrS
\\   4U 4S jjrS\S\4S jr        SU 4S jjrSrU =r$ )ÚChameleonImageProcessoré"   z=Torchvision backend for Chameleon with custom convert_to_rgb.)ç      ð?r   r   Úshortest_edgei   F)ÚheightÚwidthTgÞqŠŽäò?Úkwargsc                 ó&   >• [         TU ]  " S0 UD6  g )N© )ÚsuperÚ__init__)Úselfr   Ú	__class__s     €Úu/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/models/chameleon/image_processing_chameleon.pyr   Ú ChameleonImageProcessor.__init__3   s   ø€ Ü‰ÒÑ"˜6Ó"ó    ÚimageÚreturnc                 ó<  • [        U[        R                  R                  5      (       d  U$ UR                  S:X  a  U$ [        R
                  " UR                  S5      5      nUSS2SS2S4   S:  R                  5       (       d  UR                  S5      $ USS2SS2S4   S-  nSUSS2SS2[        R                  4   -
  S-  USS2SS2[        R                  4   USS2SS2SS24   -  -   n[        R                  R                  UR                  S5      S5      $ )	z›
Convert image to RGB by blending the transparency layer if it's in RGBA format.
If image is not `PIL.Image`, it is simply returned without modifications.
ÚRGBÚRGBANr   éÿ   g     ào@é   Úuint8)Ú
isinstanceÚPILÚImageÚmodeÚnpÚarrayÚconvertÚanyÚnewaxisÚ	fromarrayÚastype)r   r   Úimg_rgbaÚalphaÚimg_rgbs        r   Úconvert_to_rgbÚ&ChameleonImageProcessor.convert_to_rgb6   sü   € ô
 ˜%¤§¡§¡×1Ñ1ØˆLØ�Z‰Z˜5Ó ØˆLä—8’8˜EŸM™M¨&Ó1Ó2ˆð ššA˜q˜Ñ! CÑ'×,Ñ,×.Ñ.Ø—=‘= Ó'Ð'ð ššA˜q˜Ñ! EÑ)ˆØ�ušQ¢¤2§:¡:Ð-Ñ.Ñ.°#Ñ5¸ºaÂÄBÇJÁJÐ>NÑ8OÐRZÒ[\Ò^_ÐacÐbcÐacÐ[cÑRdÑ8dÑdˆÜ�y‰y×"Ñ" 7§>¡>°'Ó#:¸EÓBÐBr   c                 ó®  >• [        U[        R                  [        45      (       a  UO[        R                  R                  nUc  [        R                  R                  nOc[        U[
        5      (       aN  U[
        R                  :X  a0  [        R                  S5        [        R                  R                  nO
SSK
Jn  Xc   n[        TU ]4  " SXUS.UD6$ )z(Resize with LANCZOS fallback to BICUBIC.zòYou have used fast image processor with LANCZOS resample which not yet supported for torch.Tensor. BICUBIC resample will be used as an alternative. Please fall back to slow image processor if you want full consistency with the original model.r   )Úpil_torch_interpolation_mapping)r   ÚsizeÚresampler   )r&   ÚtvFÚInterpolationModeÚintÚBILINEARr   ÚLANCZOSÚloggerÚwarning_onceÚBICUBICÚimage_utilsr7   r   Úresize)r   r   r8   r9   r   Úinterpolationr7   r   s          €r   rC   ÚChameleonImageProcessor.resizeK   sµ   ø€ ô # 8¬c×.CÑ.CÄSÐ-I×JÑJ‰HÔPS×PeÑPe×PnÑPnð 	ð ÑÜ×1Ñ1×:Ñ:‰MÜ˜Ô"4×5Ñ5ØÔ-×5Ñ5Ó5Ü×#Ñ#ðEôô
 !$× 5Ñ 5× =Ñ =‘åJà ?Ñ I�ä‰wŠ~ÐW E¸}ÑWÐPVÑWÐWr   r   )r   útorch.Tensorr8   r   r9   z7PILImageResampling | tvF.InterpolationMode | int | Noner   rF   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r>   r9   Ú
image_meanÚ	image_stdr8   Údefault_to_squareÚ	crop_sizeÚ	do_resizeÚdo_center_cropÚ
do_rescaleÚrescale_factorÚdo_normalizeÚdo_convert_rgbr
   r	   r   r   r4   rC   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r   "   s±   ø† áGà!×)Ñ)€HÚ €JÚ€IØ˜SÐ!€DØÐØ¨Ñ-€IØ€IØ€NØ€JØ€NØ€LØ€Nð# ¨Ñ!5÷ #ðC Jð C°:ô Cð*XàðXð ðXð Lð	Xð 
÷Xõ Xr   r   )rK   Únumpyr*   Ú	PIL.Imager'   ÚtorchÚtorchvision.transforms.v2r   r:   Úimage_processing_backendsr   rB   r   r   r   Úprocessing_utilsr	   r
   Úutilsr   r   Ú
get_loggerrG   r?   r   Ú__all__r   r   r   Ú<module>ra      sj   ðñ +ã Û Û Ý 7å ;÷ñ ÷
 5ß ,ð 
×	Ò	˜HÓ	%€ð ôBXÐ0ó BXó ðBXðJ %Ð
%�r   