
    3j                     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   )Uformerc                   N   ^  \ rS rSrSU 4S jjr\S\S\\   4S j5       r	Sr
U =r$ )UformerArch   returnc                 V   > [         TU ]  S[        R                  " SSSSSSS5      S	9  g )
Nr   input_proj.proj.0.weightoutput_proj.proj.0.weightz$encoderlayer_0.blocks.0.norm1.weightz$encoderlayer_2.blocks.0.norm1.weightzconv.blocks.0.norm1.weightz$decoderlayer_0.blocks.0.norm1.weightz$decoderlayer_2.blocks.0.norm1.weight)iddetect)super__init__r   has_all)self	__class__s    a/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/Uformer/__init__.pyr   UformerArch.__init__   s;    ''*+66,66 	 	
    
state_dictc                    SnSnSnSn/ SQn/ SQnSnSn	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US   R                   S   n[        US5      US'   [        US5      US'   [        US5      US'   [        US5      US'   [        US5      US'   [        US5      US'   [        US5      US'   [        US5      US'   [        US5      US'   S nUS!U 3   R                   S   US'   US"U 3   R                   S   US'   US#U 3   R                   S   US'   US$U 3   R                   S   US'   US%U 3   R                   S   US'   US&U 3   R                   S   US'   US'U 3   R                   S   US'   US(U 3   R                   S   US'   US)U 3   R                   S   US'   S*U;   a  S+nSn
OSnS,U;   n
S-U;   nS.U;   nUS/   R                   S   n[        [        R                  " U5      5      S-   S-  nS0U;   a  S1nUS0   R                   S   U-  n	OEUS2   R                   S   S:X  a  SnUS3   R                   S   U-  n	OS4nUS3   R                   S   U-  n	[        SJ0 S5U_S6U_S7U_S8U_S9U_S:U_S;U_S<U	_S=U
_S>U_S?U_S@U_SAU_SBU_SCU_SDU_SEU_6n[        UUU SF/ SSSUU[        SGSSH9SI9$ )KN   r       )	   r"   r"   r"   r"   r"   r"   r"   r"   )	r   r"         r   r   r$   r#   r"   r$   g      @Tg        g?linearleffFr   r   r   r   zencoderlayer_0.blockszencoderlayer_1.blockszencoderlayer_2.blocksr"   zencoderlayer_3.blockszconv.blocksr#   zdecoderlayer_0.blocks   zdecoderlayer_1.blocks   zdecoderlayer_2.blocks   zdecoderlayer_3.blocksz*blocks.0.attn.relative_position_bias_tablezencoderlayer_0.zencoderlayer_1.zencoderlayer_2.zencoderlayer_3.zconv.zdecoderlayer_0.zdecoderlayer_1.zdecoderlayer_2.zdecoderlayer_3.z6encoderlayer_0.blocks.0.attn.qkv.to_q.depthwise.weightconvz*encoderlayer_0.blocks.0.attn.qkv.to_q.biasz(decoderlayer_0.blocks.0.modulator.weightz.decoderlayer_0.blocks.0.cross_modulator.weightz9encoderlayer_0.blocks.0.attn.relative_position_bias_tablez&encoderlayer_0.blocks.0.mlp.fc1.weightmlpz+encoderlayer_0.blocks.0.mlp.dwconv.0.weightz,encoderlayer_0.blocks.0.mlp.linear1.0.weightfastleffimg_sizein_chansdd_in	embed_dimdepths	num_headswin_size	mlp_ratioqkv_bias	drop_rateattn_drop_ratedrop_path_ratetoken_projection	token_mlp
shift_flag	modulatorcross_modulatorRestoration   )multiple_ofsquare)	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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   num_heads_suffix	size_tempmodels                         r   loadUformerArch.load   s^   	,1			#	
	9:@@C	56<<Q?9:@@C
,CDq	
,CDq	
,CDq	
,CDq	
M:q	
,CDq	
,CDq	
,CDq	
,CDq	G!O4D3E"FGMMaP	!!O4D3E"FGMMaP	!!O4D3E"FGMMaP	!!O4D3E"FGMMaP	!!E*:);"<=CCAF	!!O4D3E"FGMMaP	!!O4D3E"FGMMaP	!!O4D3E"FGMMaP	!!O4D3E"FGMMaP	!CzQ%H'CzQH>*L	JjX G

%	 		),-1a73zAICDJJ1M  EFLLQOSTTIIJPPQRS 
 #IIJPPQRS 
  


 
  	

 
  
 
  
 
  
 *
 *
 .
  
 "
   !
" ,#
( $!" !.3tL
 	
r   rK   )r   N)__name__
__module____qualname____firstlineno__r   r   r
   r   r   rS   __static_attributes____classcell__)r   s   @r   r   r      s4    
 o
y o
-A'-J o
 o
r   r   r   )rN   typing_extensionsr   spandrel.utilr   r   __helpers.model_descriptorr   r   r	   r
   __arch.Uformerr   r   __all__rK   r   r   <module>r`      s=     & 3  $
,w' 
D )
$r   