
    +j                         S SK Jr  S SKrS SKJs  J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                   P    \ rS rSr\S 5       r\S\R                  4S j5       rSr	g)Mahiro   c                     [         R                  " SSSS[         R                  R                  S5      /[         R                  R	                  SS9/S/ S	QS
9$ )Nr   zPositive-Biased GuidanceexperimentalzModify the guidance to scale more on the 'direction' of the positive prompt rather than the difference between the negative prompt.modelpatched_model)display_nameT)mahiroz
mahiro cfgzsimilarity-adaptive guidancezpositive-biased cfg)node_idr   categorydescriptioninputsoutputsis_experimentalsearch_aliases)r   SchemaModelInputOutput)clss    9/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_mahiro.pydefine_schemaMahiro.define_schema	   sZ    yy3# ^w' _= !
 	
    returnc                 v    UR                  5       nS nUR                  U5        [        R                  " U5      $ )Nc                    U S   nU S   nU S   nX!-  nX1-  nU S   nXF-   S-  n[         R                  " UR                  5       5      UR                  5       -  n[         R                  " UR                  5       5      UR                  5       -  n	[        R
                  " X5      R                  5       n
SU
S-   -  nX-  SU-
  U-  -   S-  nU$ )N
cond_scalecond_denoiseduncond_denoiseddenoised         )torchsqrtabssignFcosine_similaritymean)argsscalecond_puncond_pleapu_leapcfgmergenormunormmsimsimscwms                r   mahiro_normd$Mahiro.execute.<locals>.mahiro_normd#   s    -E#'#8F%)*;%<H>D%Fz"CZ1$EJJvzz|,v{{}<EJJuyy{+ejjl:E%%e388:CqME+Ud 22a7BIr   )clone#set_model_sampler_post_cfg_functionr   
NodeOutput)r   r   mr=   s       r   executeMahiro.execute   s1    KKM	" 	
--l;}}Qr    N)
__name__
__module____qualname____firstlineno__classmethodr   r   rA   rC   __static_attributes__rE   r   r   r   r      s3    
 
*  r}}    r   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)MahiroExtension8   r   c                    #    [         /$ 7fN)r   )selfs    r   get_node_listMahiroExtension.get_node_list9   s      
 	
s   
rE   N)rF   rG   rH   rI   r   listtyper   	ComfyNoderR   rK   rE   r   r   rM   rM   8   s)    
T$r||*<%= 
 
r   rM   r   c                     #    [        5       $ 7frP   )rM   rE   r   r   comfy_entrypointrX   @   s     s   )typing_extensionsr   r)   torch.nn.functionalnn
functionalr-   comfy_api.latestr   r   rV   r   rM   rX   rE   r   r   <module>r^      s=    &    /- R\\ - `
n 
 r   