
    +ji                     v    S SK Jr  S SKrS SKJrJr   " S S\R                  5      r " S S\5      r	S\	4S	 jr
g)
    )overrideN)ComfyExtensionioc                   X    \ rS rSr/ SQr\S 5       r\S\R                  4S j5       r	Sr
g)PatchModelAddDownscale   )bicubicznearest-exactbilinearareabislerpc                    [         R                  " SSS[         R                  R                  S5      [         R                  R                  SSSSSS	S
9[         R
                  R                  SSSSSS9[         R
                  R                  SSSSSS	S
9[         R
                  R                  SSSSSS	S
9[         R                  R                  SS	S	S9[         R                  R                  SU R                  S9[         R                  R                  SU R                  S9/[         R                  R                  5       /S9$ )Nr   z*PatchModelAddDownscale (Kohya Deep Shrink)zmodel/patch/unetmodelblock_number          T)defaultminmaxstepadvanceddownscale_factorg       @g?g      "@gMbP?)r   r   r   r   start_percentg              ?end_percentgffffff?downscale_after_skip)r   r   downscale_method)optionsupscale_method)node_iddisplay_namecategoryinputsoutputs)
r   SchemaModelInputIntFloatBooleanComboUPSCALE_METHODSOutput)clss    B/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_model_downscale.pydefine_schema$PatchModelAddDownscale.define_schema   s   yy,E'w'^QA2AX\]13CSW\]#TYdhi}dSXcgh

  !7PT U13;N;NO/9L9LM	 !
 	
    returnc	                 V  ^^^^^^ UR                  S5      n	U	R                  U5      mU	R                  U5      mUUUUU4S jn
U4S jnUR                  5       nU(       a  UR                  U
5        OUR	                  U
5        UR                  U5        [        R                  " U5      $ )Nmodel_samplingc           	        > US   S   T:X  a}  US   S   R                  5       nUT::  aa  UT:  a[  [        R                  R                  U [	        U R
                  S   ST-  -  5      [	        U R
                  S   ST-  -  5      TS5      n U $ )	Nblockr   sigmasr   r   disabled)itemcomfyutilscommon_upscaleroundshape)htransformer_optionssigmar   r   r   	sigma_endsigma_starts      r/   input_block_patch9PatchModelAddDownscale.execute.<locals>.input_block_patch#   s    "7+A.,>+H5a8==?K'EY,>221eAGGBK3QaKa<b6cejklkrkrsukvz}  AQ  {Q  lR  fS  Ue  gq  rAHr2   c                    > U R                   S   UR                   S   :w  a<  [        R                  R                  XR                   S   UR                   S   TS5      n X4$ )N   r9   r:   r;   )rA   r=   r>   r?   )rB   hsprC   r   s      r/   output_block_patch:PatchModelAddDownscale.execute.<locals>.output_block_patch*   sN    wwqzSYYq\)KK..q))B-2P^`jk6Mr2   )get_model_objectpercent_to_sigmaclone&set_model_input_block_patch_after_skipset_model_input_block_patchset_model_output_block_patchr   
NodeOutput)r.   r   r   r   r   r   r   r   r   r5   rG   rL   mrE   rF   s     ``   ``    @@r/   executePatchModelAddDownscale.execute   s    //0@A$55mD"33K@		 		
 KKM445FG))*;<	&&'9:}}Qr2    N)__name__
__module____qualname____firstlineno__r,   classmethodr0   r   rT   rV   __static_attributes__rX   r2   r/   r   r      sG    QO
 
(    TV  Ta  Ta    r2   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)ModelDownscaleExtension8   r3   c                    #    [         /$ 7fN)r   )selfs    r/   get_node_list%ModelDownscaleExtension.get_node_list9   s      #
 	
s   
rX   N)rY   rZ   r[   r\   r   listtyper   	ComfyNodere   r^   rX   r2   r/   r`   r`   8   s)    
T$r||*<%= 
 
r2   r`   r3   c                     #    [        5       $ 7frc   )r`   rX   r2   r/   comfy_entrypointrk   @   s     "$$s   )typing_extensionsr   comfy.utilsr=   comfy_api.latestr   r   ri   r   r`   rk   rX   r2   r/   <module>ro      s8    &  // R\\ / d
n 
% 7 %r2   