
    +j	                         S SK rS SKrS SKJr  S SKJrJr  S r/ SQ/ SQ/ SQS.r	 " S	 S
\R                  5      r " S S\5      rS\4S jrg)    N)override)ComfyExtensionioc                 2   [         R                  " SS[        U 5      5      n[         R                  " U SSS2   5      n[         R                  " SSU5      n[         R                  " XBU5      n[         R
                  " U5      SSS2   R                  5       nU$ )zK
Performs log-linear interpolation of a given array of decreasing numbers.
r      N)nplinspacelenloginterpexpcopy)t_steps	num_stepsxsysnew_xsnew_ysinterped_yss          ?/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_optimalsteps.pyloglinear_interpr   
   sw     
Q3w<	(B	"	B[[Ay)FYYv2&F&&.2&++-K    )g?gQkw?g$(~k?333333?gx?gTN?gX5;N?g?ܵ?g3ı.n?g-?MbP?)      ?gCl?gףp=
?g-?gʡE?gS?g/$?Q?g\(\?r   A`"?`"?gQ?gʡE?gDl?gw/?gS?gE?gsh|??g9v?r   ))gX9v?gGz?gV-?r   gCl?gK?r   r   gn?g"~?gV-?gn?gMbX?g?gx&1?g~jt?g9v?gDl?gS㥛?g1Zd?gGz?gy&1?g^I+?g?gx&1?gw/?g|?5^?gQ?gCl?gHzG?gV-?gFx?goʡ?gM?gQ?gB`"۹?g/$?gQ?gV-?g~jt?r   FLUXWanChromac                   P    \ rS rSr\S 5       r\S\R                  4S j5       rSr	g)OptimalStepsScheduler   c                 &   [         R                  " SS[         R                  R                  S/ SQS9[         R                  R                  SSSS	S
9[         R
                  R                  SSSSSS9/[         R                  R                  5       /S9$ )Nr%   zmodel/sampling/schedulers
model_typer    )optionssteps      i  )defaultminmaxdenoiser           g{Gz?)r-   r.   r/   step)node_idcategoryinputsoutputs)r   SchemaComboInputIntFloatSigmasOutput)clss    r   define_schema#OptimalStepsScheduler.define_schema   s|    yy+0|5NOWbaTBy#3CdS 		  "
 	
r   returnc                 R   UnUS:  a=  US::  a*  [         R                  " [        R                  " / 5      5      $ [	        X#-  5      n[
        U   S S  nUS-   [        U5      :w  a  [        XRS-   5      nXTS-   * S  nSUS'   [         R                  " [        R                  " U5      5      $ )Nr   r1   r   r   r   )r   
NodeOutputtorchFloatTensorroundNOISE_LEVELSr   r   )r>   r(   r*   r0   total_stepssigmass         r   executeOptimalStepsScheduler.execute-   s    S=#~}}U%6%6r%:;;0Kj)!,AI#f+%%fai8F/*+,r
}}U..v677r    N)
__name__
__module____qualname____firstlineno__classmethodr?   r   rC   rJ   __static_attributes__rL   r   r   r%   r%      s3    
 
 82== 8 8r   r%   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)OptimalStepsExtension>   rA   c                    #    [         /$ 7fN)r%   )selfs    r   get_node_list#OptimalStepsExtension.get_node_list?   s      "
 	
s   
rL   N)rM   rN   rO   rP   r   listtyper   	ComfyNoderY   rR   rL   r   r   rT   rT   >   s)    
T$r||*<%= 
 
r   rT   rA   c                     #    [        5       $ 7frW   )rT   rL   r   r   comfy_entrypointr_   F   s      ""s   )numpyr	   rD   typing_extensionsr   comfy_api.latestr   r   r   rG   r]   r%   rT   r_   rL   r   r   <module>rc      s[      & / n V b
8BLL 8B
N 
# 5 #r   