
    3jY                     p    S SK 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)    N)override)KeyConditionget_seq_len   )ArchitectureImageModelDescriptorSizeRequirements	StateDict   )SAFMNc                   N   ^  \ rS rSrSU 4S jjr\S\S\\   4S j5       r	Sr
U =r$ )	SAFMNArch   returnc                 Z   > [         TU ]  S[        R                  " SSSSSSSS	S
5	      S9  g )Nr   to_feat.weightzfeats.0.norm1.weightzfeats.0.norm2.weightzfeats.0.safm.mfr.0.weightzfeats.0.safm.mfr.3.weightzfeats.0.safm.aggr.weightfeats.0.ccm.ccm.0.weightzfeats.0.ccm.ccm.2.weightto_img.0.weight)iddetect)super__init__r   has_all)self	__class__s    _/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/SAFMN/__init__.pyr   SAFMNArch.__init__   sA    '' &&++***!
 	 	
    
state_dictc                 F   SnSnSnUS   R                   S   n[        US5      nUS   R                   S   nXe-  n[        [        R                  " US   R                   S   S	-  5      5      n[        UUUUS
9n[        UUU US:X  a  SOSU S3U S3/SSUS	S	[        SS9S9$ )N   g       @   r   r   featsr   r   r   )dimn_blocks	ffn_scaleupscaling_factorr   RestorationSRr$   nbFT)multiple_of)	architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirements)shaper   intmathsqrtr   r   r	   )r   r   r%   r&   r'   r$   
hidden_dimmodels           r   loadSAFMNArch.load!   s     	 !)*003z73   :;AA!D
$	 tyy4E)F)L)LQ)ORS)STU-	
 $%5%:ME+(2/"".1=
 	
r    )r   N)__name__
__module____qualname____firstlineno__r   r   r
   r   r   r;   __static_attributes____classcell__)r   s   @r   r   r      s0    
  #
y #
-A%-H #
 #
r   r   r   )r7   typing_extensionsr   spandrel.utilr   r   __helpers.model_descriptorr   r   r	   r
   __arch.safmnr   r   __all__r=   r   r   <module>rI      s;     & 3   5
U# 5
p 
 r   