
    3j                        S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
JrJr  SSKJrJrJr  S	S
KJr  S	SKJr  \\\4   r " S S\\   5      r/ SQrg)    )annotationsN)Sequence)LiteralUnion)override)KeyConditionget_seq_len   )ArchitectureImageModelDescriptor	StateDict   )PLKSR)	RealPLKSRc                  @   ^  \ rS rSrSU 4S jjr\SS j5       rSrU =r$ )	PLKSRArch   c                   > [         TU ]  S[        R                  " S[        R                  " SSS5      S[        R                  " SS5      5      S	9  g )
Nr   feats.0.weightfeats.1.lk.conv.weightfeats.1.lk.convs.0.weightfeats.1.lk.mn_conv.weightzfeats.1.refine.weightfeats.1.channe_mixer.0.weightfeats.1.channel_mixer.0.weight)iddetect)super__init__r   has_allhas_any)self	__class__s    _/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/PLKSR/__init__.pyr   PLKSRArch.__init__   sY    '' $$,//
 ($$34 	 	
    c                `   SnSnSnSnSnSnSnUS   R                   S   n[        US	5      n	[        R                  " US
U	S-
   S3   R                   S   S-  5      nSU;   nSU;   Ga  U	S-
  nUS   R                   S   n
US   R                   S   nU
S:X  a	  US:X  a  SnO)U
S:X  a	  US:X  a  SnOU
S:X  a	  US:X  a  SnO[	        S5      eU/nSnSn/ SQn/ SQnSnSU;   a*  SnUS   R                   S   nUS   R                   S   U-  nOYSU;   a  SnUS   R                   S   U-  nO;SU;   a*  SnUS   R                   S   nUS   R                   S   U-  nO[	        S5      e[        UUUUUUUUUUUUS 9nOS!U;   a~  S"/nU	S-
  nUS   R                   S   nUS   R                   S   U-  nS#U;   nS$U;   nU(       a  UR                  S%5        U(       a  UR                  S&5        OSn[        UUUUUUSUUS'9	nO[	        S(5      e[        UUU US:X  a  S)OS*U S+3U S,3U S-3/UQUSUSSS.9
$ )/N@            g      ?Tr   r   featszfeats.r   z.weightr
   zfeats.1.attn.f.0.weightr      zfeats.1.channe_mixer.2.weightCCMDCCMICCMzUnknown CCM typePLKF)   r1   r1   r1   )r   r,   r
   r)   r   r   	SparsePLKr   RectSparsePLKzUnknown LK type)dimn_blocksupscaling_factorccm_typekernel_sizesplit_ratiolk_typeuse_max_kernelsparse_kernelssparse_dilationswith_idtuse_ear   Realzfeats.1.layer_norm.biaszto_img.init_posDySample	LayerNorm)	r4   r6   r5   r8   r9   r?   norm_groupsdysample
layer_normzUnknown model typeRestorationSRr4   nbks)architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channels)	shaper	   mathisqrt
ValueErrorr   appendr   r   )r!   
state_dictr4   r5   rO   r8   r9   r?   rM   total_feat_layersmixer_0_shapemixer_2_shaper7   	more_tagsr:   r;   r<   r=   r>   modeluse_layer_normuse_dysamples                         r#   loadPLKSRArch.load%   s%   )*003'
G<

 1A 56g>?EEaHAM
 +j8*j8(1,H ''FGMMaPM&'FGMMaPM!mq&8 !#(:!!#(:! !344!
I EJG#(N,8N.:"H':5()ABHHK()ABHHKcQ,
:%()DEKKANQTT -
:)()DEKKAN()DEKKANQTT !233!!&!''--!1!E .;I(1,H$%=>DDQGK$%=>DDQG#MK6*DN,
:L  ,  - %!&!''%)
E 122#%*aZMTE+(2;-r0BOYO'"
 	
r%    )returnNone)rW   r   rb   zImageModelDescriptor[_PLKSR])	__name__
__module____qualname____firstlineno__r   r   r_   __static_attributes____classcell__)r"   s   @r#   r   r      s    
$ w
 w
r%   r   )r   r   r   )
__future__r   rS   collections.abcr   typingr   r   typing_extensionsr   spandrel.utilr   r	   __helpers.model_descriptorr   r   r   __arch.PLKSRr   __arch.RealPLKSRr   _PLKSRr   __all__ra   r%   r#   <module>rt      sM    "  $ ! & 3 W W  '	ui	 K
V$ K
\ .r%   