
    
3j?                     $    S SK r S SKJr  S rS rg)    N)	rearrangec                    US-  nX-  n XR                  SS5      -  nUR                  [        R                  5      nUR	                  SS9nUR                  SX35      n[        R                  " X6R                  S9R                  5       nUR                  S5      R                  UR                  S   SS5      nUR                  US5      nX3-  U-
  n	UR                  SS9U	-  n
U
R                  5       X4-   -  nUR                  SS	9nU$ )
Ng      )dim)devicer   )      r	   )min)	transposetotorchfloat32softmaxreshapeeyer   bool	unsqueezeexpandshapemasked_fillsummeanclamp)query_image	key_imagehead_dim
num_framesenhance_weightscale	attn_temp	diag_maskattn_wo_diagnum_off_diagmean_scoresenhance_scoress               ]/home/wildlama/comfy/ComfyUI/custom_nodes/ComfyUI-LTXVideo/tricks/utils/feta_enhance_utils.py_feta_scorer(      s   dNE%K11"b99IU]]+I!!b!)I !!"j=I 		*-=-=>CCEI##A&--iooa.@"bII ((A6L *Z7L""v".=K %%':+FGN#))a)0N    c           	          US   S   nU R                   u  pVnXr-  nXd-  n	[        U SUU	UUS9n
[        USUU	UUS9nUR                  SS5      n[        XXU5      $ )Noriginal_shaper
   zB (T S) (N C) -> (B S) N T C)TSNCfeta_weightr   )r   r   getr(   )img_qimg_k	num_headstransformer_optionsr   _STr   r   spatial_dimr   r   weights                r'   get_feta_scoresr:       s    $%56q9JJA3H"K&



K &



I !$$]A6F{xVLLr)   )r   einopsr   r(   r:    r)   r'   <module>r=      s     6Mr)   