
    +j                     ~    S SK Jr  S SKrS SK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)PerturbedAttentionGuidance   c                     [         R                  " SS[         R                  R                  S5      [         R                  R                  SSSSSSS	9/[         R                  R                  5       /S
9$ )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_schema(PerturbedAttentionGuidance.define_schema   s`    yy0'w'w%dZ^_
 !

 
	
    returnc                    ^^^^ SmSmUR                  5       nSS jmUUUU4S jnUR                  U5        [        R                  " U5      $ )Nmiddler   c                     U$ N )qkvextra_optionsmasks        r   perturbed_attention?PerturbedAttentionGuidance.execute.<locals>.perturbed_attention"   s    Hr   c                   > U S   nU S   nU S   nU S   nU S   nU S   R                  5       nU S   nT
S:X  a  U$ [        R                  R                  UT	S	TT5      n[        R                  R                  X/XuU5      u  nXBU-
  T
-  -   $ )
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_resultr0   r1   xpagr*   r   
unet_blockunet_block_ids            r   post_cfg_function=PerturbedAttentionGuidance.execute.<locals>.post_cfg_function%   s    ME_-I<Dj)JME 1668MWAz!! "//OOP]_rt{  ~H  JW  XM^^33E61][FSSE 999r   r#   )clone#set_model_sampler_post_cfg_functionr   
NodeOutput)r   r
   r   mrA   r*   r?   r@   s     `  @@@r   execute"PerturbedAttentionGuidance.execute   sG    
KKM		: 	:$ 	
--.?@}}Qr   r$   N)
__name__
__module____qualname____firstlineno__classmethodr   r   rE   rG   __static_attributes__r$   r   r   r   r      s3    
 
  bmm    r   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)PAGExtension<   r   c                    #    [         /$ 7fr#   )r   )selfs    r   get_node_listPAGExtension.get_node_list=   s      '
 	
s   
r$   N)rI   rJ   rK   rL   r   listtyper   	ComfyNoderT   rN   r$   r   r   rP   rP   <   s)    
T$r||*<%= 
 
r   rP   r   c                     #    [        5       $ 7fr#   )rP   r$   r   r   comfy_entrypointrZ   D   s     >s   )typing_extensionsr   comfy.model_patcherr5   comfy.samplerscomfy_api.latestr   r   rX   r   rP   rZ   r$   r   r   <module>r_      s<    '   /,  , ^
> 
 r   