o
    Gi8                     @   sV   d dl Z ddlmZmZmZ de jjfddZde jjfddZde jjfd	d
Z	dS )    N   )"_ALL_TRANSFORMER_BLOCK_IDENTIFIERS_ATTENTION_CLASSES_FEEDFORWARD_CLASSESmodulec                    sT   g }|   D ]!\ }t fddtD }t|tjj}|r'|r'| |f q|S )Nc                 3   s    | ]}  |V  qd S N)endswith).0
identifiername I/home/ubuntu/.local/lib/python3.10/site-packages/diffusers/hooks/utils.py	<genexpr>   s    zA_get_identifiable_transformer_blocks_in_module.<locals>.<genexpr>)named_modulesanyr   
isinstancetorchnn
ModuleListappend)r   #module_list_with_transformer_blocks	submodulename_endswith_identifieris_ModuleListr   r   r   ._get_identifiable_transformer_blocks_in_module   s   r   c                 C   2   g }|   D ]\}}t|tr|||f q|S r   )r   r   r   r   )r   attention_layersr   r   r   r   r   ,_get_identifiable_attention_layers_in_module      
r   c                 C   r   r   )r   r   r   r   )r   feedforward_layersr   r   r   r   r   ._get_identifiable_feedforward_layers_in_module&   r   r!   )
r   _commonr   r   r   r   Moduler   r   r!   r   r   r   r   <module>   s
   
