o
    i:                     @   sj   d dl mZ d dlZd dlm  mZ d dlmZm	Z	 G dd de	j
ZG dd deZdefd	d
ZdS )    )overrideN)ComfyExtensionioc                   @   s,   e Zd Zedd ZedejfddZdS )Mahiroc              
   C   s4   t jddddt jdgt jjddgdg d	d
S )Nr   zPositive-Biased Guidance_for_testingzModify 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)cls r   7/mnt/c/Users/fbmor/ComfyUI/comfy_extras/nodes_mahiro.pydefine_schema	   s   
zMahiro.define_schemareturnc                 C   s$   |  }dd }|| t|S )Nc                 S   s   | d }| d }| d }|| }|| }| d }|| d }t | |  }t | |  }	t||	 }
d|
d  }|| d| |  d }|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wmr   r   r   mahiro_normd#   s   z$Mahiro.execute.<locals>.mahiro_normd)clone#set_model_sampler_post_cfg_functionr   
NodeOutput)r   r   mr6   r   r   r   execute   s   

zMahiro.executeN)__name__
__module____qualname__classmethodr   r   r9   r;   r   r   r   r   r      s
    
r   c                   @   s(   e Zd Zedeeej  fddZdS )MahiroExtensionr   c                    s   t gS N)r   )selfr   r   r   get_node_list9   s   zMahiroExtension.get_node_listN)	r<   r=   r>   r   listtyper   	ComfyNoderC   r   r   r   r   r@   8   s    r@   r   c                      s   t  S rA   )r@   r   r   r   r   comfy_entrypoint@   s   rG   )typing_extensionsr   r"   torch.nn.functionalnn
functionalr&   comfy_api.latestr   r   rF   r   r@   rG   r   r   r   r   <module>   s    0