
    3j                     t    S SK r S SKJr  S SKJrJrJr  SSKJrJ	r	J
r
Jr  SSKJr   " S S	\\   5      rS	S
/rg)    N)override)KeyConditionget_pixelshuffle_paramsget_seq_len   )ArchitectureImageModelDescriptorSizeRequirements	StateDict   )DATc                   N   ^  \ rS rSrSU 4S jjr\S\S\\   4S j5       r	Sr
U =r$ )DATArch   returnc           &         > [         TU ]  S[        R                  " SSSSSSSS	S
SSSSSSSSSSSSSSSS[        R                  " SS5      [        R                  " [        R                  " SSS5      S5      5      S 9  g )!Nr   conv_first.weightzbefore_RG.1.weightzbefore_RG.1.biaszlayers.0.blocks.0.norm1.weightzlayers.0.blocks.0.norm2.weight layers.0.blocks.0.ffn.fc1.weightz$layers.0.blocks.0.ffn.sg.norm.weightz$layers.0.blocks.0.ffn.sg.conv.weightz layers.0.blocks.0.ffn.fc2.weightz!layers.0.blocks.0.attn.qkv.weightz"layers.0.blocks.0.attn.proj.weightz&layers.0.blocks.0.attn.dwconv.0.weightz,layers.0.blocks.0.attn.dwconv.1.running_meanz3layers.0.blocks.0.attn.channel_interaction.1.weightz9layers.0.blocks.0.attn.channel_interaction.2.running_meanz3layers.0.blocks.0.attn.channel_interaction.4.weightz3layers.0.blocks.0.attn.spatial_interaction.0.weightz9layers.0.blocks.0.attn.spatial_interaction.1.running_meanz3layers.0.blocks.0.attn.spatial_interaction.3.weight)layers.0.blocks.0.attn.attns.0.rpe_biasesz6layers.0.blocks.0.attn.attns.0.relative_position_indexz2layers.0.blocks.0.attn.attns.0.pos.pos_proj.weightz0layers.0.blocks.0.attn.attns.0.pos.pos1.0.weightz0layers.0.blocks.0.attn.attns.0.pos.pos3.0.weightznorm.weightconv_after_body.weightzconv_after_body.4.weightzconv_before_upsample.0.weightconv_last.weightupsample.0.weight)iddetect)super__init__r   has_allhas_any)self	__class__s    ]/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/DAT/__init__.pyr   DATArch.__init__   s    ''#$"002662348>EKEEKE;HDBB$$,.	 $$ ((07* (	A* 	 -	
    
state_dictc                    SnSnSnSS/n/ SQn/ SQnSnSn	Sn
S	nS
nSnSnUS   R                   S   nUS   R                   S   n[        US5      n[        U5       Vs/ s H  n[        USU S35      PM     nnS/U-  n[        U5       HE  nUU   S:  a  USU S3   R                   S   UU'   M'  SU S3nUU   R                   S   S-  UU'   MG     SU;   a  SOSnSU;   a  S
OSnUS:X  a  [        US5      u  pOJUS:X  aD  US   R                   S   n[	        [
        R                  " US   R                   S   U-  5      5      n
SU;   n	[        US   R                   S   U-  5      nSU;   a5  US   R                   u  nnn[	        [
        R                  " UU-  5      5      nSU;   a&  US   S   S-   nU Vs/ s H  n[	        U5      PM     nn[        UUUUUUUU	U
UUUS9n[        U5      S:  a  S nOUS!S"/:X  a  S#nOS$nUS%U S&US    S'US    3U S(3U S)3U S*3U /n[        UUU U
S:X  a  S+OS,US-SU
UU[        S"S.9S/9$ s  snf s  snf )0N@   r            )r(   r(   r(   r(   g      @Tg      ?1convpixelshuffler   r   r   layerszlayers.z.blocksz.blocks.1.attn.temperaturez(.blocks.0.attn.attns.0.pos.pos3.2.weightr   pixelshuffledirectr   3convupsampler   zlayers.0.blocks.0.attn.qkv.biasr   z"layers.0.blocks.2.attn.attn_mask_0r   )img_sizein_chans	embed_dim
split_sizedepth	num_headsexpansion_factorqkv_biasupscale	img_rangeresi_connection	upsamplerlight   r   smallmediums|xnfdimefRestorationSRF)minimum)	architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirements)shaper   ranger   intmathsqrtfloatr   lenr	   r
   )r   r$   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   num_feat
num_layersikeyattn_mask_0_xattn_mask_0_y_attn_mask_0_zsplit_sizesrC   modelsize_tagrL   s                             r!   loadDATArch.loadA   sR    	V
 		!"	1288;2399!<	 !X6
CHCT
CTaK
gaS$89CT 	 

 C*$	z"AQx1})aS :; % 	!
  s"JK)#44Q7!;	! # 1J>NDX 	 &>%K'QX& 7
J OGX..!"56<<Q?H		*%89??BhNOG 5
B 9:@@CiO
 0:=;E4<e 9M=. 499]]%BCDH6*DFGKaO  +66+Q#a&+J6!-+
 u:>HAr7"HH z:a=/:a=/:jOk #
 $%,\Mt"#$.r:
 	
a
^ 7s   I:I )r   N)__name__
__module____qualname____firstlineno__r   r   r   r	   r   rd   __static_attributes____classcell__)r    s   @r!   r   r      s5    .
` q
y q
-A#-F q
 q
r#   r   r   )rV   typing_extensionsr   spandrel.utilr   r   r   __helpers.model_descriptorr   r	   r
   r   
__arch.DATr   r   __all__rf   r#   r!   <module>rr      s@     & L L  c
l3 c
L e
r#   