
    
3j57                         S SK r S SKJr  S SKJrJrJr  \ " S S5      5       r\ " S S5      5       r " S S	5      r	 " S
 S5      r
S rS rS rS r\r\r\r\r\r\r\rg)    N)	dataclass)AnyCallableTypec                   ,    \ rS rSr% \\/\4   \S'   Srg)AttentionProcessorMetadata   skip_processor_output_fn N)__name__
__module____qualname____firstlineno__r   r   __annotations____static_attributes__r       R/home/wildlama/miniconda3/lib/python3.13/site-packages/diffusers/hooks/_helpers.pyr   r      s    &ucz22r   r   c                   x    \ rS rSr% Sr\\S'   Sr\\S'   Sr\	\S'   Sr
\\S'   Sr\\	\4   \S'   SS	\	4S
 jjrSrg)TransformerBlockMetadata   Nreturn_hidden_states_index"return_encoder_hidden_states_indexhidden_stateshidden_states_argument_name_cls_cached_parameter_indices
identifierc                 B   U=(       d    0 nX;   a  X1   $ U R                   b  X R                   U      $ U R                  c  [        S5      e[        [        R
                  " U R                  R                  5      R                  R                  5       5      nUSS  n[        U5       VVs0 s H  u  pVXe_M	     snnU l         XR                   ;  a  [        SU S35      eU R                   U   nU[        U5      :  a  [        SU S[        U5       S35      eX'   $ s  snnf )Nz$Model class is not set for metadata.   zParameter 'z4' not found in function signature but was requested.z	Expected z arguments but got .)r   r   
ValueErrorlistinspect	signatureforward
parameterskeys	enumeratelen)selfr   argskwargsr&   iparamindexs           r   _get_parameter_from_args_kwargs8TransformerBlockMetadata._get_parameter_from_args_kwargs"   s   2%%))566zBCC99CDD'++DII,=,=>IINNPQ
^
CLZCX)YCXxq%(CX)Y&;;;{:,6jkll..z:CIy/B3t9+QOPP{ *Zs   )D)r   )r   N)r   r   r   r   r   intr   r   r   strr   r   r   dictr0   r   r   r   r   r   r      sQ    &**.2&2'66D$04tCH~4#  r   r   c                   d    \ rS rSr0 rSr\S\S\4S j5       r	\S\S\4S j5       r
\S 5       rS	rg
)AttentionProcessorRegistry5   Fmodel_classmetadatac                 @    U R                  5         X R                  U'   g N)	_register	_registryclsr8   r9   s      r   register#AttentionProcessorRegistry.register<   s    %-k"r   returnc                 |    U R                  5         XR                  ;  a  [        SU S35      eU R                  U   $ NzModel class z not registered.r<   r=   r!   r?   r8   s     r   getAttentionProcessorRegistry.getA   9    mm+|K=8HIJJ}}[))r   c                 J    U R                   (       a  g SU l         [        5         g NT)_is_registered'_register_attention_processors_metadatar?   s    r   r<   $AttentionProcessorRegistry._registerH   s    !/1r   r   N)r   r   r   r   r=   rL   classmethodr   r   r@   rG   r<   r   r   r   r   r6   r6   5   sf    I N.4 .3M . . *d *'A * * 2 2r   r6   c                   d    \ rS rSr0 rSr\S\S\4S j5       r	\S\S\4S j5       r
\S 5       rS	rg
)TransformerBlockRegistryP   Fr8   r9   c                 L    U R                  5         Xl        X R                  U'   g r;   )r<   r   r=   r>   s      r   r@   !TransformerBlockRegistry.registerW   s    #%-k"r   rB   c                 |    U R                  5         XR                  ;  a  [        SU S35      eU R                  U   $ rD   rE   rF   s     r   rG   TransformerBlockRegistry.get]   rI   r   c                 J    U R                   (       a  g SU l         [        5         g rK   )rL   %_register_transformer_blocks_metadatarN   s    r   r<   "TransformerBlockRegistry._registerd   s    !-/r   r   N)r   r   r   r   r=   rL   rP   r   r   r@   rG   r<   r   r   r   r   rR   rR   P   sf    I N.4 .3K . .
 *d *'? * * 0 0r   rR   c                  
   SSK Jn   SSKJn  SSKJn  SSKJn  SSKJ	n  SSK
Jn  SSKJn  [        R                  U [!        ["        S	9S
9  [        R                  U[!        [$        S	9S
9  [        R                  U[!        [&        S	9S
9  [        R                  U[!        [(        S	9S
9  [        R                  U[!        [*        S	9S
9  [        R                  U[!        [,        S	9S
9  [        R                  U[!        [.        S	9S
9  g )N   )AttnProcessor2_0)CogView4AttnProcessor)FluxAttnProcessor)HunyuanImageAttnProcessor) QwenDoubleStreamAttnProcessor2_0)WanAttnProcessor2_0)ZSingleStreamAttnProcessor)r
   r8   r9   )models.attention_processorr]   (models.transformers.transformer_cogview4r^   $models.transformers.transformer_fluxr_   ,models.transformers.transformer_hunyuanimager`   )models.transformers.transformer_qwenimagera   #models.transformers.transformer_wanrb   'models.transformers.transformer_z_imagerc   r6   r@   r   /_skip_proc_output_fn_Attention_AttnProcessor2_04_skip_proc_output_fn_Attention_CogView4AttnProcessor2_skip_proc_output_fn_Attention_WanAttnProcessor2_00_skip_proc_output_fn_Attention_FluxAttnProcessor?_skip_proc_output_fn_Attention_QwenDoubleStreamAttnProcessor2_08_skip_proc_output_fn_Attention_HunyuanImageAttnProcessor9_skip_proc_output_fn_Attention_ZSingleStreamAttnProcessor)r]   r^   r_   r`   ra   rb   rc   s          r   rM   rM   l   s
   =PHX\IT ''$+%T
 (  '')+%Y
 (  '''+%W
 (  ''%+Euv (  ''4+%d
 (  ''-+%]
 (  ''.+%^
 ( r   c            	         SSK Jn Jn  SSKJn  SSKJn  SSKJn  SSK	J
nJn  SSKJnJnJn	Jn
  SSKJnJn  SS	KJn  SS
KJn  SSKJn  SSKJn  SSKJn  SSKJn  [@        RC                  U [E        SS S9S9  [@        RC                  U[E        SS S9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U
[E        SSS9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U	[E        SSS9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SS S9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SS S9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SS S9S9  [@        RC                  U[E        SSS9S9  [@        RC                  U[E        SS SS9S9  g )Nr\   )BasicTransformerBlockJointTransformerBlock)CogVideoXBlock)BriaTransformerBlock)CogView4TransformerBlock)FluxSingleTransformerBlockFluxTransformerBlock)"HunyuanVideoSingleTransformerBlock.HunyuanVideoTokenReplaceSingleTransformerBlock(HunyuanVideoTokenReplaceTransformerBlockHunyuanVideoTransformerBlock)"HunyuanImageSingleTransformerBlockHunyuanImageTransformerBlock)!Kandinsky5TransformerDecoderBlock)LTXVideoTransformerBlock)MochiTransformerBlock)QwenImageTransformerBlock)WanTransformerBlock)ZImageTransformerBlockr   )r   r   rd   r   visual_embed)r   r   r   )#models.attentionrt   ru   ,models.transformers.cogvideox_transformer_3drv   $models.transformers.transformer_briarw   rf   rx   rg   ry   rz   -models.transformers.transformer_hunyuan_videor{   r|   r}   r~   rh   r   r   )models.transformers.transformer_kandinskyr   #models.transformers.transformer_ltxr   %models.transformers.transformer_mochir   ri   r   rj   r   rk   r   rR   r@   r   )rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   s                      r   rY   rY      s
   OMKSg  ^NMUIP %%))'(/3
 &  %%()'(/3
 &  %%")'(/0
 &  %%,)'(/0
 &  %%()'(/0
 &  %%.)'(/0
 &  %%0)'(/0
 &  %%6)'(/0
 &  %%<)'(/0
 &  %%B)'(/0
 &  %%,)'(/3
 &  %%))'(/0
 &  %%')'(/3
 &  %%-)'(/0
 &  %%0)'(/0
 &  %%6)'(/0
 &  %%*)'(/3
 &  %%))'(/0
 &  %%5)'(/3(6
 & r   c                 X    UR                  SS 5      nUc  [        U5      S:  a  US   nU$ )Nr   r   rG   r)   )r*   r+   r,   r   s       r   %_skip_attention___ret___hidden_statesr   d  s1    JJ5MTQQr   c                     UR                  SS 5      nUR                  SS 5      nUc  [        U5      S:  a  US   nUc  [        U5      S:  a  US   nX44$ )Nr   encoder_hidden_statesr   r   r   )r*   r+   r,   r   r   s        r   =_skip_attention___ret___hidden_states___encoder_hidden_statesr   k  s`    JJ5M"JJ'>ETQQ$TQ $Q//r   )r#   dataclassesr   typingr   r   r   r   r   r6   rR   rM   rY   r   r   rl   rm   rn   ro   rp   rq   rr   r   r   r   <module>r      s     ! & & 3 3 3   62 260 08=@tp0 3X /7t 45Z 23X 0Bg ?;` 8<a 9r   