
    3j                        S SK r S\ R                  S\ R                  4S jrS\ R                  S\ R                  S\ R                  4S jrS\ R                  S\ R                  S\ R                  4S	 jrS\ R                  S\ R                  S\ R                  S\\ R                  \ R                  4   4S
 jr\ R                  R                  SSS9S\ R                  S\ R                  S\ R                  S\\ R                  \ R                  4   4S j5       r	\	R                  S 5       r\ R                  R                  SSS9S\ R                  S\ R                  S\ R                  4S j5       r\R                  S 5       r\ R                  R                  SSS9S\ R                  S\ R                  S\ R                  S\\ R                  \ R                  4   4S j5       r\R                  S 5       r\ R                  R                  SSS9S\ R                  S\ R                  S\ R                  4S j5       r\R                  S 5       rg)    Nx	freqs_cisc                    U R                  UR                  S9R                  " / U R                  S S QSPSPSP76 nUR                  S   S:w  aN  UR                  S   S:w  a;  UR                  S   UR                  S   :w  a  US S 2S S 2S UR                  S   24   nUS   US   -  nUR	                  US   US   5        UR                  " U R                  6 R                  U 5      $ )N)dtype      .r   .r   )tor   reshapeshapeaddcmul_type_as)r   r   x_x_outs       [/home/wildlama/miniconda3/lib/python3.13/site-packages/comfy_kitchen/backends/eager/rope.pyapply_rope1r      s    	
IOO	$	,	,	Eaggcrl	EB	E	E1	EB	xx{aIOOA.!3yWXGY8YaLRXXa[L01	f6
*E	NN9V$bj1==!''"**1--    xqxkc                 .    [        X5      [        X5      4$ N)r   r   r   r   s      r   
apply_roper      s    r%{2'AAAr   returnc                 V   U R                   " / U R                  S S QSPSP76 R                  SS5      R                  S5      R	                  UR
                  5      nUS   US   -  US   US   -  -   nUR                  SS5      R                   " U R                  6 R                  U 5      $ )Nr   r	   r
   r   )r   r   movedim	unsqueezer   r   r   )r   r   t_t_outs       r   apply_rope_split_half1r#      s    	
	(AGGCRL	(!	(R	(	0	0R	8	B	B2	F	I	I)//	ZBf6
*Yv->F-KKE==R ((!''2::1==r   c                 .    [        X5      [        X5      4$ r   )r#   r   s      r   apply_rope_split_halfr%      s     ""02H2WWWr   zcomfy_kitchen::apply_rope )mutates_argsc                 H    SSK Jn  XUS.nUR                  SUS9nU" S0 UD6$ )Nr   registryr   r   kwargsr&   comfy_kitchen.registryr*   get_implementationr   r   r   r*   r,   impls         r   _op_apply_roper2   &   s2     0y9F&&|F&CD>&>r   c                 Z    [         R                  " U 5      [         R                  " U5      4$ r   torch
empty_liker   s      r   _op_apply_rope_faker7   3   #    B!1!1"!555r   zcomfy_kitchen::apply_rope1c                 F    SSK Jn  XS.nUR                  SUS9nU" S0 UD6$ )Nr   r)   r   r   r   r+   r&   r-   r   r   r*   r,   r1   s        r   _op_apply_rope1r<   8   s0    
 0-F&&}V&DD>&>r   c                 .    [         R                  " U 5      $ r   r4   r:   s     r   _op_apply_rope1_faker>   D       Ar   z$comfy_kitchen::apply_rope_split_halfc                 H    SSK Jn  XUS.nUR                  SUS9nU" S0 UD6$ )Nr   r)   r   r%   r+   r&   r-   r0   s         r   _op_apply_rope_split_halfrA   I   s3     0y9F&&'>v&ND>&>r   c                 Z    [         R                  " U 5      [         R                  " U5      4$ r   r4   r   s      r   _op_apply_rope_split_half_fakerC   V   r8   r   z%comfy_kitchen::apply_rope_split_half1c                 F    SSK Jn  XS.nUR                  SUS9nU" S0 UD6$ )Nr   r)   r:   r#   r+   r&   r-   r;   s        r   _op_apply_rope_split_half1rE   [   s1    
 0-F&&'?&OD>&>r   c                 .    [         R                  " U 5      $ r   r4   r:   s     r   _op_apply_rope_split_half1_fakerG   g   r?   r   )r5   Tensorr   r   r#   tupler%   library	custom_opr2   register_faker7   r<   r>   rA   rC   rE   rG   r&   r   r   <module>rM      s   .5<< .ELL .B5<< BU\\ Bell B>ell >u|| > >XX,,X38<<X
5<<%&X 42F			 ||	 5<<%&		 G	 6 6 5BG|||| \\ H   ?bQ			 ||	 5<<%&		 R	 ((6 )6 @rR|||| \\ S )) *r   