Ë
    ÛÓ^j»	  ã                   óž   — d Z ddlZddlZddlmZ ddlmZm	Z	 ddl
mZmZ ddlmZmZ  ej                   e«      Ze G d„ d	e«      «       Zd	gZy)
z$Image processor class for Chameleon.é    Né   )ÚTorchvisionBackend)Ú
ImageInputÚPILImageResampling)ÚImagesKwargsÚUnpack)Úauto_docstringÚloggingc                   ó”   ‡ — e Zd ZdZej
                  Zg d¢Zg d¢ZddiZ	dZ
dddœZdZdZdZdZdZdZd	ee   fˆ fd
„Zdedefd„Zˆ xZS )ÚChameleonImageProcessorz=Torchvision backend for Chameleon with custom convert_to_rgb.)ç      ð?r   r   Úshortest_edgei   F)ÚheightÚwidthTgÞqŠŽäò?Úkwargsc                 ó$   •— t        ‰| �  di |¤Ž y )N© )ÚsuperÚ__init__)Úselfr   Ú	__class__s     €úƒ/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/chameleon/image_processing_chameleon.pyr   z ChameleonImageProcessor.__init__0   s   ø€ Ü‰ÑÑ"˜6Ó"ó    ÚimageÚreturnc                 ó$  — t        |t        j                  j                  «      s|S |j                  dk(  r|S t	        j
                  |j                  d«      «      }|dd…dd…df   dk  j                  «       s|j                  d«      S |dd…dd…df   dz  }d|dd…dd…t        j                  f   z
  dz  |dd…dd…t        j                  f   |dd…dd…dd…f   z  z   }t        j                  j                  |j                  d«      d«      S )	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_rgbz&ChameleonImageProcessor.convert_to_rgb3   sö   € ô
 ˜%¤§¡§¡Ô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   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚLANCZOSÚresampleÚ
image_meanÚ	image_stdÚsizeÚdefault_to_squareÚ	crop_sizeÚ	do_resizeÚdo_center_cropÚ
do_rescaleÚrescale_factorÚdo_normalizeÚdo_convert_rgbr   r   r   r   r0   Ú__classcell__)r   s   @r   r   r      sz   ø„ áGà!×)Ñ)€HÚ €JÚ€IØ˜SÐ!€DØÐØ¨Ñ-€IØ€IØ€NØ€JØ€NØ€LØ€Nð# ¨Ñ!5õ #ðC Jð C°:÷ Cr   r   )r4   Únumpyr&   Ú	PIL.Imager#   Úimage_processing_backendsr   Úimage_utilsr   r   Úprocessing_utilsr   r   Úutilsr	   r
   Ú
get_loggerr1   Úloggerr   Ú__all__r   r   r   ú<module>rL      s^   ðñ +ã Û å ;÷÷ 5ß ,ð 
ˆ×	Ñ	˜HÓ	%€ð ô&CÐ0ó &Có ð&CðR %Ð
%�r   