
    (tir                     (   d dl Z ddlmZmZmZ ddlmZmZ eeefZeefZ	dZ
dZdZ eh e
ee      Ze j                  j                   e j                  j"                  e j                  j$                  e j                  j&                  e j                  j(                  e j                  j*                  e j                  j,                  e j                  j.                  fZde j                  j2                  d	ed
e j                  j2                  dz  fdZy)    N   )AttentionModuleMixinFeedForwardLuminaFeedForward)	AttentionMochiAttention)blockstransformer_blockssingle_transformer_blockslayersvisual_transformer_blocks)temporal_transformer_blocks)r	   r
   r   modulefqnreturnc                 F    | j                         D ]  \  }}||k(  s|c S  y )N)named_modules)r   r   submodule_name	submodules       f/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/diffusers/hooks/_common.py_get_submodule_from_fqnr   9   s-    %+%9%9%;!	S  &<     )torchmodels.attentionr   r   r   models.attention_processorr   r   _ATTENTION_CLASSES_FEEDFORWARD_CLASSES&_SPATIAL_TRANSFORMER_BLOCK_IDENTIFIERS'_TEMPORAL_TRANSFORMER_BLOCK_IDENTIFIERS$_CROSS_TRANSFORMER_BLOCK_IDENTIFIERStuple"_ALL_TRANSFORMER_BLOCK_IDENTIFIERSnnConv1dConv2dConv3dConvTranspose1dConvTranspose2dConvTranspose3dLinear	Embedding_GO_LC_SUPPORTED_PYTORCH_LAYERSModulestrr    r   r   <module>r0      s
    S S B  1EF #%67 * & +K ''Q $%*	/	0 
.& " 
HHOO	HHOO	HHOO	HH	HH	HH	HHOO	HH# EHHOO # %((//TXBX r   