
    3j0                    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
Jr  SSKJr   " S S	\\   5      rS	S
/rg)    )annotations)override)KeyConditionget_seq_len   )ArchitectureImageModelDescriptorSizeRequirements	StateDict   )	FFTformerc                  @   ^  \ rS rSrSU 4S jjr\SS j5       rSrU =r$ )FFTformerArch   c           !        > [         TU ]  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5      S9  g )Nr   patch_embed.proj.weightz"encoder_level1.0.norm2.body.weightz encoder_level1.0.norm2.body.biaszencoder_level1.0.ffn.fftz&encoder_level1.0.ffn.project_in.weightz"encoder_level1.0.ffn.dwconv.weight'encoder_level1.0.ffn.project_out.weightzdown1_2.body.1.weightzencoder_level2.0.ffn.fftzdown2_3.body.1.weightzencoder_level3.0.ffn.fftz&decoder_level3.0.attn.to_hidden.weightz&decoder_level3.0.attn.norm.body.weightzup3_2.body.1.weightzreduce_chan_level2.weightz&decoder_level2.0.attn.to_hidden.weightzup2_1.body.1.weightz&decoder_level1.0.attn.to_hidden.weightzrefinement.0.norm1.body.weightz"refinement.0.attn.to_hidden.weightzrefinement.0.ffn.fftz#fuse2.att_channel.norm2.body.weightzfuse2.att_channel.ffn.fftzfuse2.conv.weightz#fuse1.att_channel.norm2.body.weightzfuse1.att_channel.ffn.fftzfuse1.conv.weightoutput.weight)iddetect)super__init__r   has_all)self	__class__s    c/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/FFTformer/__init__.pyr   FFTformerArch.__init__   sz    '')42*849'*'*88%+8%804&5+#5+#9 	  	
    c                   SnSnSn/ SQnSnSnSnUS   R                   S   nUS   R                   S	   nUS   R                   S	   n[        US
5      US	'   [        US5      US'   [        US5      US'   [        US5      nUS   R                   S   n	X-  nSU;   n[        UUUUUUUS9n
[        U
UU SU S3/SSSUU[	        SS9S9$ )Nr   0   )   r!         Fr   r   r   r   encoder_level1encoder_level2encoder_level3   
refinementr   z$encoder_level1.0.ffn.project_in.bias)inp_channelsout_channelsdim
num_blocksnum_refinement_blocksffn_expansion_factorbiasRestorationr+   T    )multiple_of)	architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirements)shaper   r   r	   r
   )r   
state_dictr)   r*   r+   r,   r-   r.   r/   
hidden_dimmodels              r   loadFFTformerArch.load4   s0   
 ! !";<BB1E!/288;2399!<#J0@A
1#J0@A
1#J0@A
1 +J E   IJPPQRS
)/5C%%!"7!5
 $!E+"'(.2>
 	
r    )returnNone)r=   r   rC   zImageModelDescriptor[FFTformer])	__name__
__module____qualname____firstlineno__r   r   r@   __static_attributes____classcell__)r   s   @r   r   r      s    !
F /
 /
r   r   r   N)
__future__r   typing_extensionsr   spandrel.utilr   r   __helpers.model_descriptorr   r	   r
   r   __arch.fftformer_archr   r   __all__rB   r   r   <module>rQ      s=    " & 3  -T
L+ T
n K
(r   