
    bi                     L    d dl Z d dlmZmZmZ  G d de      Z G d de      Zy)    N)PreTrainedModelXLMRobertaConfigXLMRobertaModelc                   $     e Zd ZdZd fd	Z xZS )MCLIPConfigzM-CLIPc                 @    || _         || _        t        |   di | y )N )transformerDimensionsnumDimssuper__init__)selftransformerDimSizeimageDimSizekwargs	__class__s       e/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/diffusers/pipelines/kandinsky/text_encoder.pyr   zMCLIPConfig.__init__   s"    %7"#"6"    )i   i   )__name__
__module____qualname__
model_typer   __classcell__r   s   @r   r   r      s    J# #r   r   c                   (     e Zd ZeZ fdZd Z xZS )MultilingualCLIPc                     t        |   |g|i | t        |      | _        t        j
                  j                  |j                  |j                        | _	        y )N)in_featuresout_features)
r   r   r   transformertorchnnLinearr
   r   LinearTransformation)r   configargsr   r   s       r   r   zMultilingualCLIP.__init__   sP    1$1&1*62$)HHOO446>> %4 %
!r   c                     | j                  ||      d   }||j                  d      z  j                  d      |j                  d      d d d f   z  }| j                  |      |fS )N)	input_idsattention_maskr         )dim)r    	unsqueezesumr$   )r   r(   r)   embsembs2s        r   forwardzMultilingualCLIP.forward   sv    )NSTUV003388Q8?.BTBTYZBTB[\]_c\cBdd((/55r   )r   r   r   r   config_classr   r1   r   r   s   @r   r   r      s    L
6r   r   )r!   transformersr   r   r   r   r   r	   r   r   <module>r4      s'     K K#" #6 6r   