
    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   )Swin2SRc                   N   ^  \ rS rSrSU 4S jjr\S\S\\   4S j5       r	Sr
U =r$ )Swin2SRArch   returnc           
      R   > [         TU ]  S[        R                  " SSSSS5      S9  g )Nr   z-layers.0.residual_group.blocks.0.norm1.weightpatch_embed.proj.weightconv_first.weightz-layers.0.residual_group.blocks.0.mlp.fc1.bias=layers.0.residual_group.blocks.0.attn.relative_position_index)iddetect)super__init__r   has_all)self	__class__s    a/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/Swin2SR/__init__.pyr   Swin2SRArch.__init__   s5    ''?)#?O 	 		
    
state_dictc                    SnSnSnSn/ SQn/ SQ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US   R                   S   nSU;   nSU;   nSU;   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   U-  5      n	SU;   a  SnOSU;   a  SnO[	        S5      eS U;   a  S!nO&S"U;   a  S#nOS$U;   a  S%nOS&U;   a  S'nOS(U;   a  S)nOSnUS:X  a  SnOQUS#:X  a  S*nOHUS):X  a3  [        [        R                  " US(   R                   S   U-  5      5      nO[        US+5      u  nn[        [        R                  " US,   R                   S   5      5      nS-U;   a=  US-   R                   S   n[        [        R                  " UU-  U-  5      5      nUU-  nO5X8-  nU(       a*  [        [        R                  " US   S   5      5      nUU-  nUS:X  a  S.OSn[        SN0 S/U_S0U_S1U_S2U_S3U_S4U_S5U_S6U	_S7U
_S8U_S9U_S:U_S;U_S<U_S=U_S>U_S?U_S@U_SAU_6n[        U5      nUS*::  a  SBnOUSC:  a  SDnOSEnUSFU SGU 3U SH3U /n[        UUU US:X  a  SIOSJUSSUUU[        SKSL9SM9$ )ON@   r   r   `   )   r$   r$   r$      g      @Tg        g?F   g      ? 1convr   r   r   absolute_pos_embedzpatch_embed.norm.weightz,layers.0.residual_group.blocks.0.attn.q_biaslayersr$   zlayers.z.residual_group.blocksz).residual_group.blocks.0.attn.logit_scalez/layers.0.residual_group.blocks.0.mlp.fc1.weightzconv_after_body.0.weight3convzconv_after_body.weightz Unknown residual connection typezconv_bicubic.weightpixelshuffle_auxzconv_hr.weightznearest+convzconv_after_body_hf.weightpixelshuffle_hfzconv_before_upsample.0.weightpixelshufflezupsample.0.weightpixelshuffledirect   upsampler   z*layers.0.residual_group.blocks.1.attn_maskg     o@img_size
patch_sizein_chans	embed_dimdepths	num_headswindow_size	mlp_ratioqkv_bias	drop_rateattn_drop_ratedrop_path_rateape
patch_normuse_checkpointupscale	img_range	upsamplerresi_connectionsmall	   mediumlargeswdimRestorationSRr   )minimum)	architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirements )shaper   rangefloat
ValueErrorintmathsqrtr   r   lenr	   r
   )r   r    r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   
num_layersi_attn_mask_0patches_resolutionmodelhead_lengthsize_tagrQ   s                                 r   loadSwin2SRArch.load   sI    
	 			
		!1288;2399!<	 9:@@C
"j0.*<
AZO !X6
z!C*$	z"A#J'!<R0STF1I%!EFeAIaL # HIOOPQR
	
 &3%O%3%O?@@ !J.*I+&I(J6)I,
:&I J.,II?G.(G..		*%89??BhNOG 1ZHJGQIIS%
 8:E$<eAK "%TYY{[/H;/V%W!X)J6H "/H %(:>R3STU3V)W%X"-
: )A-E3	 

!
 
  	

 
  
 $
  
 
  
 *
 *
 
 "
 *
  !
"  #
$  %
& ,'
, &k!H1_HHz;-(k	
 $%,\Mt"#$.r:
 	
r   rX   )r   N)__name__
__module____qualname____firstlineno__r   r   r   r	   r   ri   __static_attributes____classcell__)r   s   @r   r   r      s4    

 \
y \
-A'-J \
 \
r   r   r   )r^   typing_extensionsr   spandrel.utilr   r   r   __helpers.model_descriptorr   r	   r
   r   __arch.Swin2SRr   r   __all__rX   r   r   <module>rv      s@     & L L  $j
,w' j
Z )
$r   