o
    پi                     @   sX   d dl mZmZ d dlmZ d dlmZmZ eG dd deZeG dd deZ	dS )	    )	dataclassfield)Tuple)DiTArchConfig	DiTConfigc                       s   e Zd ZU dZeed< dZeed< dZedB ed< dZeed< d	Z	eed
< dZ
eed< dZeed< dZeed< dZeed< dZeed< dZeeeef ed< eedZeeeeef  ed< edd dZeed<  fddZ  ZS )FluxArchConfig   
patch_size@   in_channelsNout_channels   
num_layers&   num_single_layers   attention_head_dim   num_attention_headsi   joint_attention_dimi   pooled_projection_dimFguidance_embeds)   8   r   axes_dims_ropedefault_factorystacked_params_mappingc                   C   sz   i ddddddddd	d
ddddddddddddddddddddddd d!d"d#d$d%d&d'S )(Nz^transformer\.(\w*)\.(.*)$z\1.\2z*^transformer_blocks\.(\d+)\.mlp_fc1\.(.*)$z&transformer_blocks.\1.ff.net.0.proj.\2z*^transformer_blocks\.(\d+)\.mlp_fc2\.(.*)$z!transformer_blocks.\1.ff.net.2.\2z2^transformer_blocks\.(\d+)\.mlp_context_fc1\.(.*)$z.transformer_blocks.\1.ff_context.net.0.proj.\2z2^transformer_blocks\.(\d+)\.mlp_context_fc2\.(.*)$z)transformer_blocks.\1.ff_context.net.2.\2z+^transformer_blocks\.(\d+)\.qkv_proj\.(.*)$z$transformer_blocks.\1.attn.to_qkv.\2z3^transformer_blocks\.(\d+)\.qkv_proj_context\.(.*)$z*transformer_blocks.\1.attn.to_added_qkv.\2z+^transformer_blocks\.(\d+)\.out_proj\.(.*)$z&transformer_blocks.\1.attn.to_out.0.\2z3^transformer_blocks\.(\d+)\.out_proj_context\.(.*)$z(transformer_blocks.\1.attn.to_add_out.\2z)^transformer_blocks\.(\d+)\.norm_q\.(.*)$z$transformer_blocks.\1.attn.norm_q.\2z)^transformer_blocks\.(\d+)\.norm_k\.(.*)$z$transformer_blocks.\1.attn.norm_k.\2z/^transformer_blocks\.(\d+)\.norm_added_q\.(.*)$z*transformer_blocks.\1.attn.norm_added_q.\2z/^transformer_blocks\.(\d+)\.norm_added_k\.(.*)$z*transformer_blocks.\1.attn.norm_added_k.\2z5^transformer_blocks\.(\d+)\.attn\.add_qkv_proj\.(.*)$z2^single_transformer_blocks\.(\d+)\.qkv_proj\.(.*)$z+single_transformer_blocks.\1.attn.to_qkv.\2z2^single_transformer_blocks\.(\d+)\.out_proj\.(.*)$z-single_transformer_blocks.\1.attn.to_out.0.\2z0^single_transformer_blocks\.(\d+)\.norm_q\.(.*)$z+single_transformer_blocks.\1.attn.norm_q.\2z+single_transformer_blocks.\1.attn.norm_k.\2z\1.smooth_factor_origz\1.smooth_factorz\1.proj_downz
\1.proj_up)z0^single_transformer_blocks\.(\d+)\.norm_k\.(.*)$z^(.*)\.smooth_orig$z^(.*)\.smooth$z^(.*)\.lora_down$z^(.*)\.lora_up$ r   r   r   b/home/ubuntu/.local/lib/python3.10/site-packages/sglang/multimodal_gen/configs/models/dits/flux.py<lambda>   sR    	
zFluxArchConfig.<lambda>param_names_mappingc                    s2   t    | jp
| j| _| j| j | _| j| _d S )N)super__post_init__r   r   r   r   hidden_sizenum_channels_latents)self	__class__r   r   r#   ;   s   
zFluxArchConfig.__post_init__)__name__
__module____qualname__r	   int__annotations__r   r   r   r   r   r   r   r   r   boolr   r   r   listr   tuplestrr!   dictr#   __classcell__r   r   r'   r   r   
   s"   
   r   c                   @   s,   e Zd ZU eedZeed< dZe	ed< dS )
FluxConfigr   arch_configFluxprefixN)
r)   r*   r+   r   r   r5   r   r-   r7   r1   r   r   r   r   r4   B   s   
 r4   N)
dataclassesr   r   typingr   .sglang.multimodal_gen.configs.models.dits.baser   r   r   r4   r   r   r   r   <module>   s   7