
    +j                         d dl mZ d dlZd dlmc mZ d dlmZm	Z	  G d de	j
                  Z G d de          Zdefd	ZdS )
    )overrideN)ComfyExtensionioc                   J    e Zd Zed             Zedej        fd            ZdS )Mahiroc                     t          j        ddddt           j                            d          gt           j                            d          gdg d	
          S )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_schemazMahiro.define_schema	   sn    y3# ^w'' _== !  
 
 
 	
    returnc                     |                                 }d }|                    |           t          j        |          S )Nc                    | d         }| d         }| d         }||z  }||z  }| d         }||z   dz  }t          j        |                                          |                                z  }t          j        |                                          |                                z  }	t	          j        ||	                                          }
d|
dz   z  }||z  d|z
  |z  z   dz  }|S )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_normdz$Mahiro.execute.<locals>.mahiro_normd#   s    -E#'#8F%)*;%<HE>D%Fz"CCZ1$EJvzz||,,v{{}}<EJuyy{{++ejjll:E%eU3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   executezMahiro.execute   sD    KKMM	 	 	" 	
--l;;;}Qr   N)__name__
__module____qualname__classmethodr   r   r>   r@    r   r   r   r      sV        
 
 [
*  r}       [     r   r   c                   L    e Zd Zedeeej                          fd            ZdS )MahiroExtensionr   c                    K   t           gS N)r   )selfs    r   get_node_listzMahiroExtension.get_node_list9   s       
 	
r   N)	rA   rB   rC   r   listtyper   	ComfyNoderK   rE   r   r   rG   rG   8   sE        
T$r|*<%= 
 
 
 X
 
 
r   rG   r   c                  "   K   t                      S rI   )rG   rE   r   r   comfy_entrypointrP   @   s      r   )typing_extensionsr   r'   torch.nn.functionalnn
functionalr+   comfy_api.latestr   r   rN   r   rG   rP   rE   r   r   <module>rV      s    & & & & & &           / / / / / / / /-  -  -  -  - R\ -  -  - `
 
 
 
 
n 
 
 
      r   