
    3j                        S SK Jr  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Jr  SSKJr  SS
 jr " S S\	\   5      rSS	/rg)    )annotationsN)override)KeyConditionget_seq_len   )ArchitectureImageModelDescriptorModelTilingSizeRequirements	StateDict   )RetinexFormerr   c           	        UR                   SS  u  p#US:  a  US:  a  U " U5      $ [        R                  " U5      nU " US S 2S S 2S S 2SS S24   5      US S 2S S 2S S 2SS S24'   U " US S 2S S 2S S 2SS S24   5      US S 2S S 2S S 2SS S24'   U$ )Ni  r      r   )shapetorch
zeros_like)modelthwrestoreds        g/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/RetinexFormer/__init__.py_call_fnr      s    7723<DA4xAHQx "H#AaAqt!tm$45HQ1add]#AaAqt!tm$45HQ1add]O    c                  @   ^  \ rS rSrSU 4S jjr\SS j5       rSrU =r$ )RetinexFormerArch   c                t   > [         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5      S9  g )Nr   zbody.0.estimator.conv1.weightzbody.0.estimator.conv1.biasz"body.0.estimator.depth_conv.weightz body.0.estimator.depth_conv.biaszbody.0.estimator.conv2.weightzbody.0.estimator.conv2.bias body.0.denoiser.embedding.weightbody.0.denoiser.mapping.weightz5body.0.denoiser.encoder_layers.0.0.blocks.0.0.rescalez9body.0.denoiser.encoder_layers.0.0.blocks.0.0.to_q.weightz9body.0.denoiser.encoder_layers.0.0.blocks.0.0.to_v.weightz9body.0.denoiser.encoder_layers.0.0.blocks.0.0.to_k.weightz9body.0.denoiser.encoder_layers.0.0.blocks.0.0.proj.weightz>body.0.denoiser.encoder_layers.0.0.blocks.0.0.pos_emb.0.weightz=body.0.denoiser.encoder_layers.0.0.blocks.0.1.fn.net.0.weightz9body.0.denoiser.encoder_layers.0.0.blocks.0.1.norm.weightz)body.0.denoiser.encoder_layers.0.1.weightz)body.0.denoiser.encoder_layers.0.2.weightz-body.0.denoiser.bottleneck.blocks.0.0.rescalez)body.0.denoiser.decoder_layers.0.0.weightz)body.0.denoiser.decoder_layers.0.1.weightz5body.0.denoiser.decoder_layers.0.2.blocks.0.0.rescale)iddetect)super__init__r   has_all)self	__class__s    r   r&   RetinexFormerArch.__init__    sh    ''/-42/-20GKKKKPOK;;?;;G- 	 	
r   c                   SnSnSnSn/ SQn[        US5      nUS   R                  S   nUS   R                  S   nUS   R                  S   n[        US	5      [        US
5      [        US5      /n[        UUUUUS9n[        UUU SU S3U S3US    SUS    SUS    S3/SSSUU[	        SS9[
        R                  [        S9$ )Nr   (   )r   r   r   bodyr!   r   r   r"   z)body.0.denoiser.encoder_layers.0.0.blocksz)body.0.denoiser.encoder_layers.1.0.blocksz!body.0.denoiser.bottleneck.blocks)in_channelsout_channelsn_featstage
num_blocksRestorationnfsxr   bFT   )multiple_of)architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirementstilingcall_fn)r   r   r   r	   r   r
   DISCOURAGEDr   )r(   
state_dictr.   r/   r0   r1   r2   r   s           r   loadRetinexFormerArch.load=   s'   
J/>?EEaH !CDJJ1M!"BCII!L 
$OP
$OP
$GH

 #%!
 $!("'a=/:a=/:a=/C
  "&(.1=**#
 	
r    )returnNone)rF   r   rJ   z#ImageModelDescriptor[RetinexFormer])	__name__
__module____qualname____firstlineno__r&   r   rG   __static_attributes____classcell__)r)   s   @r   r   r      s    
: -
 -
r   r   )r   r   r   torch.TensorrJ   rR   )
__future__r   r   typing_extensionsr   spandrel.utilr   r   __helpers.model_descriptorr   r	   r
   r   r   __arch.retinexformer_archr   r   r   __all__rI   r   r   <module>rY      sE    "  & 3  5
L
]3 L
^ 
0r   