
    Pi                         d dl Z d dlmZ ddgZdgZdddd	d
dZddddddZdedefdZ G d de	          Z
dedefdZdee         dee         defdZdee         dee         defdZdS )    N)List)z,^(encoder|decoder)\.norm_out\.(weight|bias)$z\1.end.0.\2)z,^(encoder|decoder)\.conv_out\.(weight|bias)$z\1.end.2.\2z+^(encoder|decoder)\.conv_in\.(weight|bias)$zmain.0zmain.2zmain.3zmain.5shortcut)norm1conv1norm2conv2nin_shortcutzattn.q_projzattn.k_projzattn.v_projzattn.output_projnorm)qkvproj_outr
   
state_dictreturnc                     i }|                                  D ]1\  }}t          |          }d|v r|                                }|||<   2|S )Nproj)items_convert_keysqueeze)r   new_state_dictkeyvaluenew_keys        z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torchtune/models/flux/_convert_weights.pyflux_ae_hf_to_tuner   !   s^    N &&(( ( (
Us##WMMOOE"'w    c                       e Zd ZdS )ConversionErrorN)__name__
__module____qualname__ r   r   r   r   +   s        Dr   r   r   c           	         t           D ]}t          j        ||           r| c S t          D ]2\  }}t          j        ||           rt          j        |||           c S 3|                     d          }g }d}||         }|dv sJ |                    |           |dz  }||         }|                    |           |dz  }|dk    r||         }|dz  }t          g d          D ]g\  }	}
||
k    r\|                    t          |	                     |
	                    d          rt          |||           nt          |||            nht          |           n|dk    r|                    ||                    |dz  }||         d	k    rM|                    d
           |dz  }|                    ||                    |dz  }t          |||           n||         dk    r|                    ||d                     nt          |           |dk    r|                    t          dt          ||                   z
                       |dz  }||         d	k    rL|                    d
           |dz  }|                    ||                    |dz  }t          |||           nI||         dk    r|                    ||d                     nt          |           t          d|           d                    |          S )N.r   )encoderdecoder   mid)block_1attn_1block_2attndownblocklayers
downsampleup   upsamplezunknown section:)REGEX_UNCHANGEDrematchREGEX_CONVERSIONSsubsplitappend	enumeratestr
startswith_convert_attn_layer_convert_resnet_layerr   extendintjoin)r   patternreplacementparts	new_partsimodelsectionlayer	layer_idx
layer_names              r   r   r   /   s   "  8GS!! 	JJJ	 !2 5 58GS!! 	56';44444	5 IIcNNEI	A !HE*****UFA AhGWFA %a	Q%./O/O/O%P%P 		' 		'!Iz
""  Y000((00 ?'	5!<<<<))UA>>> # "#&&& 
 
F		q"""	Q8wX&&&FAU1X&&&FA!)UA66661X%%U122Y''''!#&&& 
D 	QU1X.//000	Q8wX&&&FAU1X&&&FA!)UA66661X##U122Y''''!#&&& 0#66688Ir   rF   rE   rG   c                     |                      t          ||                             |dz  }|                      ||                    d S Nr'   )r:   ATTN_LAYER_CONVERSIONrF   rE   rG   s      r   r>   r>      sG    *584555FAU1Xr   c                     |                      t          ||                             |dz  }|                      ||                    d S rN   )r:   RESNET_LAYER_CONVERSIONrP   s      r   r?   r?      sG    ,U1X6777FAU1Xr   )r5   typingr   r7   r4   rR   rO   dictr   	Exceptionr   r<   r   rA   r>   r?   r"   r   r   <module>rV      s[   
			       FE 
 BB    
		"  4 D    	 	 	 	 	i 	 	 	Nc Nc N N N Nb49 T#Y 3    T#Y tCy S      r   