
    +hk                     n    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   " S S\\
\5      rg)	    N)ModuleUtilsMixin)T5BlockT5ConfigT5LayerNorm   )ConfigMixinregister_to_config)
ModelMixinc                   j   ^  \ rS rSr\ SS\S\S\S\S\S\S\S	\S
\S\4U 4S jjj5       r	S r
SrU =r$ )SpectrogramNotesEncoder   
max_length
vocab_sized_modeldropout_rate
num_layers	num_headsd_kvd_fffeed_forward_proj
is_decoderc                   > [         TU ]  5         [        R                  " X#5      U l        [        R                  " X5      U l        SU R
                  R                  l        [        R                  " US9U l	        [        UUUUUUU	U
SS9	n[        R                  " 5       U l        [        U5       H)  n[        U5      nU R                  R                  U5        M+     [!        U5      U l        [        R                  " US9U l        g )NF)p)	r   r   r   r   r   r   r   r   is_encoder_decoder)super__init__nn	Embeddingtoken_embedderposition_encodingweightrequires_gradDropoutdropout_prer   
ModuleListencodersranger   appendr   
layer_normdropout_post)selfr   r   r   r   r   r   r   r   r   r   t5configlyr_numlyr	__class__s                 |/home/james-whalen/.local/lib/python3.13/site-packages/diffusers/pipelines/deprecated/spectrogram_diffusion/notes_encoder.pyr    SpectrogramNotesEncoder.__init__   s     	 ll:?!#j!B6;%%3::5!%/!$

 Z(G(#CMM  % ) &g.JJ6    c                    U R                  U5      nUR                  S   n[        R                  " XAR                  S9nX0R                  U5      -  nU R                  U5      nUR                  5       nU R                  X&5      nU R                   H  nU" X75      S   nM     U R                  U5      nU R                  U5      U4$ )N   )devicer   )r   shapetorcharanger5   r    r$   sizeget_extended_attention_maskr&   r)   r*   )	r+   encoder_input_tokensencoder_inputs_maskx
seq_lengthinputs_positionsinput_shapeextended_attention_maskr.   s	            r0   forwardSpectrogramNotesEncoder.forwardE   s     45)//2
 <<
;V;VW	##$455Q +//1"&"B"BCV"d==CA/2A !OOA  #%888r2   )r*   r$   r&   r)   r    r   )F)__name__
__module____qualname____firstlineno__r	   intfloatstrboolr   rB   __static_attributes____classcell__)r/   s   @r0   r   r      s     !(7(7 (7 	(7
 (7 (7 (7 (7 (7 (7 (7 (7T9 9r2   r   )r7   torch.nnr   transformers.modeling_utilsr   "transformers.models.t5.modeling_t5r   r   r   configuration_utilsr   r	   modelsr
   r    r2   r0   <module>rT      s-       8 M M C !=9j+7G =9r2   