
    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   )ATDc                   R   ^  \ rS rSr  SU 4S jjr\S\S\\   4S j5       r	Sr
U =r$ )ATDArch   returnc           #         > [         TU ]  S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SSSS5      S9  g ) Nr   relative_position_index_SAconv_first.weightzconv_first.biaszlayers.0.residual_group.tdz&layers.0.residual_group.layers.0.sigmaz-layers.0.residual_group.layers.0.norm1.weightz+layers.0.residual_group.layers.0.norm1.biasz-layers.0.residual_group.layers.0.norm2.weightz+layers.0.residual_group.layers.0.norm2.biasz-layers.0.residual_group.layers.0.norm3.weightz+layers.0.residual_group.layers.0.norm3.biasz,layers.0.residual_group.layers.0.wqkv.weightzFlayers.0.residual_group.layers.0.attn_win.relative_position_bias_tablez5layers.0.residual_group.layers.0.attn_win.proj.weightz3layers.0.residual_group.layers.0.attn_win.proj.bias/layers.0.residual_group.layers.0.attn_atd.scale3layers.0.residual_group.layers.0.attn_atd.wq.weightz3layers.0.residual_group.layers.0.attn_atd.wk.weightz3layers.0.residual_group.layers.0.attn_atd.wv.weightz5layers.0.residual_group.layers.0.attn_aca.logit_scalez5layers.0.residual_group.layers.0.attn_aca.proj.weight3layers.0.residual_group.layers.0.convffn.fc1.weightz1layers.0.residual_group.layers.0.convffn.fc1.biasGlayers.0.residual_group.layers.0.convffn.dwconv.depthwise_conv.0.weightzElayers.0.residual_group.layers.0.convffn.dwconv.depthwise_conv.0.biasz3layers.0.residual_group.layers.0.convffn.fc2.weightz1layers.0.residual_group.layers.0.convffn.fc2.biasznorm.weightz	norm.bias)idnamedetect)super__init__r   has_all)self	__class__s    ]/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/ATD/__init__.pyr   ATDArch.__init__   s     	'',#!,8?=?=?=>XGEAEEEGGECYWEC; 	 "	
    
state_dictc                 j   SnSnSnSnSnSnSnSn	Sn
SnS	nS
nS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[        R                  " US   R                   S   5      n[        US5      nS/U-  nS/U-  n[	        U5       H/  n[        USU S35      UU'   USU S3   R                   S   UU'   M1     US   R                   S   n
US   R                   S   nUS   R                   S   nUS   R                   S   U-  nSU;   nSU;   nSU;   nS U;   a  SOS!nS"U;   a  S#nSnONS$U;   a  S%n[        US&5      u  nnO6S'U;   a  SnSnO+S(n[        R                  " US)   R                   S   U-  5      nS*U;  nUS(:H  =(       a    US+:H  nU(       a  S,OSn	U S-3U S.3U	 S/3/nU(       a  UR                  SS05        [        SI0 S1U_S2U_S3U_S4U_S5U_S6U_S7U_S8U	_S9U
_S:U_S;U_S<U_S=U_S>U_S?U_S@U_SAU_SBU_SCU_SDU_6n[        UUU US:X  a  SEOSFUSSUUU[        SSG9SH9$ )JN@   r   r   Z   )   r(   r(   r(               g       @TFg      ? 1convr   r   r   layersr(   zlayers.z.residual_group.layersz>.residual_group.layers.0.attn_win.relative_position_bias_tabler   r   r      r   z*layers.0.residual_group.layers.0.wqkv.biasabsolute_pos_embedzpatch_embed.norm.weightzlayers.0.conv.weight3convzconv_up1.weightznearest+convzconv_before_upsample.0.weightpixelshuffleupsamplezconv_last.weightpixelshuffledirectzupsample.0.weightno_norm0      dimwcatlightimg_size
patch_sizein_chans	embed_dimdepths	num_headswindow_sizecategory_size
num_tokensreducted_dimconvffn_kernel_size	mlp_ratioqkv_biasape
patch_normupscale	img_range	upsamplerresi_connectionnormRestorationSR)minimum)	architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirements )
shapemathisqrtr   ranger   insertr   r	   r
   )r   r$   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   
num_layersi_is_lightrV   models                               r!   loadATDArch.load8   s   
	 	
	
		!1288;2399!<	jj,H!I!O!OPQ!RS X6
z!C*$	z"A#J'!<R0STF1I%!Z[eAIaL #  =

%
 "A

% )U

% LMSSTUV 	 @:M"j0.*<
%;z%I'w
*&IG,
:&I0ZHJGQ:-IG,Ijj,?!@!F!Fq!IX!UVG
* 44Hb'S+S!k]!#4s6KLKK7# 

!
 
  	

 
  
 $
 (
 "
 &
 !4
  
 
 
 "
  !
"  #
$  %
& ,'
( )
. $%,\Mt"#$.q9
 	
r#   r]   )r   N)__name__
__module____qualname____firstlineno__r   r   r   r	   r   rh   __static_attributes____classcell__)r    s   @r!   r   r      s=    %
	%
N q
y q
-A#-F q
 q
r#   r   r   )r_   typing_extensionsr   spandrel.utilr   r   r   __helpers.model_descriptorr   r	   r
   r   __arch.atd_archr   r   __all__r]   r#   r!   <module>ru      s@     & L L  !Z
l3 Z
z e
r#   