
    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_scale_and_output_channelsget_seq_len   )ArchitectureImageModelDescriptorSizeRequirements	StateDict   )OmniSRc                   N   ^  \ rS rSrSU 4S jjr\S\S\\   4S j5       r	Sr
U =r$ )
OmniSRArch   returnc                 N   > [         TU ]  S[        R                  " SSS5      S9  g )Nr   z5residual_layer.0.residual_layer.0.layer.0.fn.0.weightinput.weightup.0.weight)iddetect)super__init__r   has_all)self	__class__s    `/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/OmniSR/__init__.pyr   OmniSRArch.__init__   s/    ''G 	 	
    
state_dictc                 j   [        UR                  5       5      nU H  nUR                  S5      (       d  M  X	 M     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S
U;   nUS   R                  S	   n[	        X5      u  p[        US5      n
[        US5      S-
  nSnX;   a9  SnX   R                  S	   n[        [        R                  " U5      S-   S-  5      n	OSn[        UUUUUU	U
UUS9	nU S3SU	 3U
 S3/n[        UUU US:X  a  SOSUSSUUU[        SS9S9$ )N)	total_opstotal_paramsr   @   r   T      r   r   z
input.biasr   residual_layerzresidual_layer.0.residual_layerz@residual_layer.0.residual_layer.0.layer.2.fn.rel_pos_bias.weight   F)		num_in_ch
num_out_chnum_feat	block_numpewindow_sizeres_numup_scalebiasnfwnrRestorationSRr   )minimum)	architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirements)setkeysendswithshaper   r   intmathsqrtr   r	   r
   )r   r   state_dict_keyskeyr(   r)   r*   r+   r,   r-   r.   r/   r0   pixelshuffle_shaperel_pos_bias_keyrel_pos_bias_weightmodelr9   s                     r   loadOmniSRArch.load   s    joo/0"C||9::O # 	
	n-33A6~.44Q7	z)'6<<Q?< 
 j*:;
,MNQRR	 O 	 )B",">"D"DQ"Gtyy)<=AQFGKB!#

 jO}irN
 $%-]M"$&.r:
 	
r    )r   N)__name__
__module____qualname____firstlineno__r   r   r   r	   r   rM   __static_attributes____classcell__)r   s   @r   r   r      s4    
 F
y F
-A&-I F
 F
r   r   r   )rE   typing_extensionsr   spandrel.utilr   r   r   __helpers.model_descriptorr   r	   r
   r   __arch.OmniSRr   r   __all__rO   r   r   <module>r[      s@     & R R  "R
f% R
j 
"r   