
    +j                         d dl mZ d dlZd dl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 )PerturbedAttentionGuidancec                     t          j        ddt           j                            d          t           j                            dddddd	          gt           j                                        g
          S )Nr   zmodel/patch/unetmodelscaleg      @g        g      Y@g{Gz?)defaultminmaxstepround)node_idcategoryinputsoutputs)r   SchemaModelInputFloatOutput)clss    6/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_pag.pydefine_schemaz(PerturbedAttentionGuidance.define_schema   sk    y0'w''w%dZ^__
 !!

 

 

 
	
    returnc                     dd|                                 }ddfd}|                    |           t          j        |          S )Nmiddler   c                     |S N )qkvextra_optionsmasks        r   perturbed_attentionz?PerturbedAttentionGuidance.execute.<locals>.perturbed_attention"   s    Hr   c                 P   | d         }| d         }| d         }| d         }| d         }| d                                          }| d         }
dk    r|S t          j                            |	d	          }t          j                            ||g|||          \  }|||z
  
z  z   S )
Nr	   cond_denoisedconddenoisedsigmamodel_optionsinputr   attn1)copycomfymodel_patcherset_model_options_patch_replacesamplerscalc_cond_batch)argsr	   	cond_predr+   
cfg_resultr-   r.   xpagr(   r
   
unet_blockunet_block_ids            r   post_cfg_functionz=PerturbedAttentionGuidance.execute.<locals>.post_cfg_function%   s    ME_-I<Dj)JME 16688MWAzz!! "/OOP]_rt{  ~H  JW  X  XM^33ED61e][[FSSE 999r   r!   )clone#set_model_sampler_post_cfg_functionr   
NodeOutput)r   r	   r
   mr>   r(   r<   r=   s     `  @@@r   executez"PerturbedAttentionGuidance.execute   s    
KKMM	 	 	 		: 	: 	: 	: 	: 	: 	: 	:$ 	
--.?@@@}Qr   N)__name__
__module____qualname__classmethodr   r   rA   rC   r"   r   r   r   r      sV        
 
 [
  bm       [     r   r   c                   L    e Zd Zedeeej                          fd            ZdS )PAGExtensionr   c                    K   t           gS r!   )r   )selfs    r   get_node_listzPAGExtension.get_node_list=   s       '
 	
r   N)	rD   rE   rF   r   listtyper   	ComfyNoderL   r"   r   r   rI   rI   <   sE        
T$r|*<%= 
 
 
 X
 
 
r   rI   r   c                  "   K   t                      S r!   )rI   r"   r   r   comfy_entrypointrQ   D   s      >>r   )typing_extensionsr   comfy.model_patcherr2   comfy.samplerscomfy_api.latestr   r   rO   r   rI   rQ   r"   r   r   <module>rV      s    ' & & & & &         / / / / / / / /,  ,  ,  ,  ,  ,  ,  , ^
 
 
 
 
> 
 
 
      r   