
    3ji                    t    S SK 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Jr   " S S	\\   5      rS	S
/rg)    )annotations)SizeRequirements)KeyConditionget_seq_len   )ArchitectureImageModelDescriptor	StateDict   )MoESR
SampleModsc                  2   ^  \ rS rSrU 4S jrSS jrSrU =r$ )	MoESRArch
   c                h   > [         TU ]  S[        R                  " SSSSSSSS	S
SSSSSSS5      S9  g )Nr   in_to_dim.weightzin_to_dim.biaszblocks.0.blocks.0.gammazblocks.0.blocks.0.norm.weightzblocks.0.blocks.0.norm.biasblocks.0.blocks.0.fc1.weightzblocks.0.blocks.0.fc1.biasz'blocks.0.blocks.0.conv.dwconv_hw.weightz%blocks.0.blocks.0.conv.dwconv_hw.biasz&blocks.0.blocks.0.conv.dwconv_w.weightz$blocks.0.blocks.0.conv.dwconv_w.biasz&blocks.0.blocks.0.conv.dwconv_h.weightz$blocks.0.blocks.0.conv.dwconv_h.biaszblocks.0.blocks.0.fc2.weightzblocks.0.blocks.0.fc2.biasupscale.MetaUpsample)iddetect)super__init__r   has_all)self	__class__s    _/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/MoESR/__init__.pyr   MoESRArch.__init__   sV    ''" )/-.,978686.,&! 	 	
    c                   / SQnUS   R                   S S u  p4[        US5      n[        US5      nUS   R                   nUS   US   -  S-  nUS	   R                   n	U	S   U	S   -  S-  n
US
   u  pppnU[        U5         n[        U[        U5      [        U5      UUUUU
U[        U5      S9
n[	        UUU US:X  a  SOSU S3U S3U S3U/SS[        U5      U[        U5      [        SSSS9S9$ )N)convpixelshuffledirectpixelshuffleznearest+convdysampler      blockszblocks.0.blocksr   r   r   zblocks.0.msg.gated.0.fc1.weightr   )
in_chout_chscalen_blocksn_blockdimexpansion_factorexpansion_msg	upsamplerupsample_dimRestorationSRr+   nbsnbTF)minimummultiple_ofsquare)	architecturepurposetagssupports_halfsupports_bfloat16r(   input_channelsoutput_channelssize_requirements)shaper   intr   r	   r   )r   
state_dictupsampler+   r&   r)   r*   expansion_factor_shaper,   expansion_msg_shaper-   _indexr(   r'   r/   r.   models                     r   loadMoESRArch.load#   sU   &
   2399"1=
z84j*;<!+,J!K!Q!Q2158Nq8QQUVV()JKQQ,Q/2Ea2HHAM6@AW6X3%F!SZ(	v;e*-'\*
 $%*aZMTE+(3/G9BK"e* K.qaPUV
 	
r    )rA   r
   returnr	   )__name__
__module____qualname____firstlineno__r   rH   __static_attributes____classcell__)r   s   @r   r   r   
   s    
0+
 +
r   r   r   N)
__future__r   spandrel.__helpers.size_reqr   spandrel.utilr   r   __helpers.model_descriptorr   r	   r
   __arch.MoESRr   r   r   __all__rJ   r   r   <module>rX      s7    " 8 3 W W +D
U# D
N 
 r   