
    3j                        S SK Jr  S SKJrJr  S SKrS SKJr  S SKJ	r	  SSK
JrJrJrJr  SS	KJrJrJrJr  \\\\\4   r " S
 S\\   5      r/ SQrg)    )annotations)LiteralUnionN)override)KeyCondition   )ArchitectureImageModelDescriptorSizeRequirements	StateDict   )	UpCunet2xUpCunet2x_fast	UpCunet3x	UpCunet4xc                  @   ^  \ rS rSrSU 4S jjr\SS j5       rSrU =r$ )RealCUGANArch   c                n   > [         TU ]  S[        R                  " SSSSSSSS	S
SSSSSSSSSS5      S9  g )N	RealCUGANunet1.conv1.conv.0.weightzunet1.conv1.conv.2.weightzunet1.conv1_down.weightzunet1.conv2.conv.0.weightzunet1.conv2.conv.2.weightz unet1.conv2.seblock.conv1.weightzunet1.conv2_up.weightunet1.conv_bottom.weightzunet2.conv1.conv.0.weightzunet2.conv1_down.weightzunet2.conv2.conv.0.weightz unet2.conv2.seblock.conv1.weightzunet2.conv3.conv.0.weightz unet2.conv3.seblock.conv1.weightzunet2.conv3_up.weightzunet2.conv4.conv.0.weightzunet2.conv4_up.weightzunet2.conv5.weightunet2.conv_bottom.weight)iddetect)super__init__r   has_all)self	__class__s    c/home/wildlama/miniconda3/lib/python3.13/site-packages/spandrel/architectures/RealCUGAN/__init__.pyr   RealCUGANArch.__init__   s_    ''++)++2'*+)+2+2'+'$*' 	 	
    c                *   Sn/ nSU;   a,  SnUR                  S5        [        R                  " S5      US'   US   R                  S   n[	        SS9nSU;   aW  US   R                  S	   S
-  nUS
-  U:X  a,  SnUS
-  n[        XFS9n[	        SS
S9nUR                  S5        O`S
n[        XFUS9nOSUS   R                  S   S:X  a  SnUS   R                  S	   n[        XFUS9nOSnUS   R                  S	   n[        XFUS9n[        UUU SUSSUUUUS9$ )NFproTr   r       )minimumzconv_final.weightr         )in_channelsout_channels(   )r'   multiple_offast)r*   r+   r%   r      r   r   SR)	architecturepurposetagssupports_halfsupports_bfloat16scaleinput_channelsoutput_channelssize_requirements)
appendtorchzerosshaper   r   r   r   r   r
   )	r   
state_dictr%   r3   r*   r9   r+   r6   models	            r!   loadRealCUGANArch.load0   sz   
 JCKK %AJu !<=CCAF,R8*,
 &&9:@@CqHLa;.!& + %5RQ$O!F# ! +C 2399!<AE%&@AGGJL'E
 E%&@AGGJL'E $"&(/
 	
r#    )returnNone)r>   r   rC   z ImageModelDescriptor[_RealCUGAN])	__name__
__module____qualname____firstlineno__r   r   r@   __static_attributes____classcell__)r    s   @r!   r   r      s    
4 ?
 ?
r#   r   )r   r   r   r   r   )
__future__r   typingr   r   r;   typing_extensionsr   spandrel.utilr   __helpers.model_descriptorr	   r
   r   r   __arch.upcunet_v3r   r   r   r   
_RealCUGANr   __all__rB   r#   r!   <module>rS      sV    " !  & &  O N9iNBC
[
L, [
| Ur#   