
    
3j
                     L    S SK Jr   " S S5      r " S S5      r " S S5      rg)	   )AttentionBankc                   :    \ rS rSr\S 5       rSrSrSrS	S jr	Sr
g)
LTXAttentionBankNode   c                 &    SSSSSSS.4SSS	04S
.0$ )NrequiredINT         defaultminmaxstepSTRING	multilineT)
save_stepsblocks ss    Z/home/wildlama/comfy/ComfyUI/custom_nodes/ComfyUI-LTXVideo/tricks/nodes/attn_bank_nodes.pyINPUT_TYPES LTXAttentionBankNode.INPUT_TYPES   s5     $!AdTU&VW#k4%89
 	
    	ATTN_BANKbuild	ltxtricksc                 t    0 nUR                  S5      nU H  n[        U5      n0 X6'   M     [        X5      nU4$ )N,)splitintr   )selfr   r   	block_map
block_listblock	block_idxbanks           r   r   LTXAttentionBankNode.build   sC    	\\#&
EE
I#%I    Z3wr   r   N __name__
__module____qualname____firstlineno__classmethodr   RETURN_TYPESFUNCTIONCATEGORYr   __static_attributes__r   r   r   r   r      s*    
 
 "LHHr   r   c                   :    \ rS rSr\S 5       rSrSrSrS	S jr	Sr
g)
LTXPrepareAttnInjectionsNode   c                 D    SSSSS04SSS04SSS04SSSSS	S
.4S.SS0S.$ )N)LATENTr   BOOLEANr   Fr	   r
   r   r   r   )latent	attn_bankquerykeyvalueinject_stepsr   
LTX_BLOCKS)r   optionalr   r   s    r   r   (LTXPrepareAttnInjectionsNode.INPUT_TYPES   s^     &+#i%78!Iu#56#i%78 !!D!D!
 "?3
 	
r   )r<   ATTN_INJprepare	fluxtapozNc                    XbS   :  a  [        S5      e[        US   US   U5      n[        / 5      US'   U(       a  US   R                  S5        U(       a  US   R                  S5        U(       a  US   R                  S5        Ub:  0 US   EUS'   [	        US   R                  5       5       H  nXG;  d  M
  US   U	 M     X4$ )Nr   z*Can not inject more steps than were saved.r&   inject_settingsqkv)
ValueErrorr   setaddlistkeys)r%   r>   r?   r@   rA   rB   rC   r   s           r   rI   $LTXPrepareAttnInjectionsNode.prepare5   s    L11IJJ!l#Y{%;\
	 (+2w	#$'(,,S1'(,,S1'(,,S1%?	+(>%?Ik"Ik2779:$!+.s3 ;
 ""r   r   N)r/   r0   r1   r2   r3   r   r4   r5   r6   rI   r7   r   r   r   r9   r9      s*    
 
  *LHH#r   r9   c                   :    \ rS rSr\S 5       rSrSrSrS	S jr	Sr
g)
LTXAttentioOverrideNodeM   c                     SSSSS0400$ )Nr   r   r   r   Tr   r   s    r   r   #LTXAttentioOverrideNode.INPUT_TYPESN   s    X;2E'FGHHr   rD   r   r    c                 \    [        [        S UR                  S5       5       5      5      nU4$ )Nc              3   8   #    U  H  n[        U5      v   M     g 7frV   )r$   ).0r(   s     r   	<genexpr>0LTXAttentioOverrideNode.build.<locals>.<genexpr>X   s     G5FESZZ5Fs   r"   )rQ   rS   r#   )r%   r   	block_sets      r   r   LTXAttentioOverrideNode.buildW   s(    GV\\#5FGGH	|r   r   Nr,   r.   r   r   r   rX   rX   M   s,    I I #LHHr   rX   N)utils.attn_bankr   r   r9   rX   r   r   r   <module>rd      s'    + 4,# ,#^ r   