§
    òwŠi¶  ã                   óT   — d dl Z d dl mZ ddlmZmZ ddlmZ  G d„ dee¦  «        ZdS )é    N)Únné   )ÚConfigMixinÚregister_to_config)Ú
ModelMixinc                   óN   ‡ — e Zd ZdZedddœdededefˆ fd„¦   «         Zd	„ Zˆ xZS )
ÚUnCLIPTextProjModelzß
    Utility class for CLIP embeddings. Used to combine the image and text embeddings into a format usable by the
    decoder.

    For more details, see the original paper: https://arxiv.org/abs/2204.06125 section 2.1
    é   i   )Úclip_extra_context_tokensÚclip_embeddings_dimr   r   Útime_embed_dimc                ó¾  •— t          ¦   «                              ¦   «          t          j        t	          j        |¦  «        ¦  «        | _        t          j        ||¦  «        | _        t          j        ||¦  «        | _	        || _
        t          j        || j
        |z  ¦  «        | _        t          j        ||¦  «        | _        t          j        |¦  «        | _        d S )N)ÚsuperÚ__init__r   Ú	ParameterÚtorchÚzerosÚ+learned_classifier_free_guidance_embeddingsÚLinearÚembedding_projÚ0clip_image_embeddings_project_to_time_embeddingsr   Úclip_extra_context_tokens_projÚencoder_hidden_states_projÚ	LayerNormÚtext_encoder_hidden_states_norm)Úselfr   r   r   Úcross_attention_dimÚ	__class__s        €út/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/diffusers/pipelines/unclip/text_proj.pyr   zUnCLIPTextProjModel.__init__   sÃ   ø€ õ 	‰Œ×ÒÑÔÐå;=¼<ÍÌÐTgÑHhÔHhÑ;iÔ;iˆÔ8õ !œiÐ(;¸^ÑLÔLˆÔÝ@BÄ	ÐJ]Ð_mÑ@nÔ@nˆÔ=ð *CˆÔ&Ý.0¬iØ Ô!?ÐBUÑ!Uñ/
ô /
ˆÔ+õ +-¬)Ð4GÐI\Ñ*]Ô*]ˆÔ'Ý/1¬|Ð<OÑ/PÔ/PˆÔ,Ð,Ð,ó    c                ó€  — |rU|j         d         }| j                             d¦  «        }|                     |d¦  «        }t	          j        ||gd¬¦  «        }|j         d         |j         d         k    sJ ‚|j         d         }|                      |¦  «        }|                      |¦  «        }	|	|z   }
|                      |¦  «        }| 	                    |d| j
        ¦  «        }|                     ddd¦  «        }|                      |¦  «        }|                      |¦  «        }t	          j        ||gd¬¦  «        }||
fS )Nr   éÿÿÿÿ)Údimé   é   )Úshaper   Ú	unsqueezeÚexpandr   Úcatr   r   r   Úreshaper   Úpermuter   r   )r   Úimage_embeddingsÚprompt_embedsÚtext_encoder_hidden_statesÚdo_classifier_free_guidanceÚimage_embeddings_batch_sizeÚ#classifier_free_guidance_embeddingsÚ
batch_sizeÚtime_projected_prompt_embedsÚtime_projected_image_embeddingsÚadditive_clip_time_embeddingsr   s               r   ÚforwardzUnCLIPTextProjModel.forward7   sq  € Ø&ð 	ià*:Ô*@ÀÔ*CÐ'Ø26Ô2b×2lÒ2lÐmnÑ2oÔ2oÐ/Ø2U×2\Ò2\Ø+¨Rñ3ô 3Ð/õ  %œyÐ*MÐO_Ð)`ÐfgÐhÑhÔhÐð  Ô% aÔ(¨MÔ,?ÀÔ,BÒBÐBÐBÐBà"Ô(¨Ô+ˆ
ð (,×':Ò':¸=Ñ'IÔ'IÐ$Ø*.×*_Ò*_Ð`pÑ*qÔ*qÐ'Ø(GÐJfÑ(fÐ%ð %)×$GÒ$GÐHXÑ$YÔ$YÐ!Ø$=×$EÒ$EÀjÐRTÐVZÔVtÑ$uÔ$uÐ!Ø$=×$EÒ$EÀaÈÈAÑ$NÔ$NÐ!à%)×%DÒ%DÐE_Ñ%`Ô%`Ð"Ø%)×%IÒ%IÐJdÑ%eÔ%eÐ"Ý%*¤YÐ0IÐKeÐ/fÐlmÐ%nÑ%nÔ%nÐ"à)Ð+HÐHÐHr    )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úintr   r6   Ú__classcell__)r   s   @r   r	   r	      s¥   ø€ € € € € ðð ð ð *+Ø#&ð	Qð Qð Qð $'ðQð !ð	Qð
 ðQð Qð Qð Qð Qñ ÔðQð0Ið Ið Ið Ið Ið Ið Ir    r	   )r   r   Úconfiguration_utilsr   r   Úmodelsr   r	   © r    r   ú<module>r@      s–   ðð €€€Ø Ð Ð Ð Ð Ð à BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ  Ð  Ð  Ð  Ð  Ð  ð@Ið @Ið @Ið @Ið @I˜* kñ @Iô @Ið @Ið @Ið @Ir    