§
    ’Þj|  ã            	       ó¢   — d dl Z d dlmZ d dl mZ d dlmZ d dlmZ dddœdededz  d	e	dz  d
efd„Z
dededed
efd„Zded
eeef         fd„ZdS )é    N)Ú	rearrange)ÚTensor)Úpay_attention)Úops)Útxt_lenÚNAGÚper   r   Úreturnc          	      óV
  — | \  }}}|                       ¦   «          |g}d }t          ||¦  «        }|g}d }t          ||¦  «        }|��j|��gt          |                     dd¦  «        pd¦  «        }	t          |                     dd¦  «        pd¦  «        }
|j        d         }|}||
z
  }|	dk    �r||	dz  k    �rø||k    �rñ|
}||	z   }|}||	z   }||k    �rÜt          j        |d d …d d …d |
…f         |d d …d d …||…f         |d d …d d …|d …f         fd¬¦  «        }t          j        |d d …d d …d |
…f         |d d …d d …||…f         |d d …d d …|d …f         fd¬¦  «        }t          j        |d d …d d …d |
…f         |d d …d d …||…f         |d d …d d …|d …f         fd¬¦  «        }t          j        |d d …d d …d |…f         |d d …d d …|d …f         fd¬¦  «        }t          j        |d d …d d …d |…f         |d d …d d …|d …f         fd¬¦  «        }t          j        |d d …d d …d |…f         |d d …d d …|d …f         fd¬¦  «        }~~~|                     dd¦  «        |                     dd¦  «        |                     dd¦  «        g}d x}x}}t          |¦  «        }| 	                    dd¦  «        }|                     dd¦  «        |                     dd¦  «        |                     dd¦  «        g}d x}x}}t          |¦  «        }| 	                    dd¦  «        }|
|	z   }|d d …|
|…f          
                    ¦   «         }|d         }|d	         }|d
         } |j        }!|}"|"                     d|z
  ¦  «         |"                     ||¬¦  «         t          j        |ddd¬¦  «        }#t          j        |"ddd¬¦  «        }$|$|#z  }%t          j        |%ddd|%¬¦  «         d|$dz   z  |#z  | z                       |"j        ¦  «        }&t          j        |%| k    |"|&z  |"¦  «                             |!¦  «        }"~#~$~%~&|"                     |¦  «         |"                     |d|z
  ¬¦  «         d }|"d d …d |…f         }'|"d d …|d …f         }(d }"t          j        |'||(gd¬¦  «        })d x}'x}}(|)S |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        g} ~~~t          | ¦  «                             dd¦  «        }*t%          |*d¦  «        }*|*S )NÚcap_embed_lenr   Ú
prefix_lené   ©Údimé   é   ÚscaleÚalphaÚtau)r   éÿÿÿÿT)Úpr   Úkeepdimg      $@)ÚnanÚposinfÚneginfÚoutgH¯¼šò×z>zB H L D -> B L (H D))ÚclearÚapply_rope_ÚintÚgetÚshapeÚtorchÚcatÚ	transposer   ÚflattenÚcloneÚdtypeÚmul_Úadd_ÚnormÚ
nan_to_numÚtoÚwherer   )+Úqkv_listr	   r   r   ÚqÚkÚvÚq_listÚk_listÚcap_lenr   Ú	total_lenÚ	img_startÚ
packed_lenÚ	pos_startÚpos_endÚ	neg_startÚneg_endÚq_negÚk_negÚv_negÚq_posÚk_posÚv_posÚqkv_posÚx_posÚqkv_negÚx_negÚneg_slice_endÚneg_outÚ	nag_scaleÚ	nag_alphaÚnag_taur'   Ú
x_guidanceÚnorm_positiveÚnorm_guidancer   ÚfactorÚprefix_pos_guidanceÚimg_guidancer   Úxs+                                              ú8C:\Users\johnn\OneDrive\Documents\AI\models\flux\math.pyÚ	attentionrS      s9  € Ø�G€A€qˆ!Ø‡N‚NÑÔÐØˆS€FØ€AÝ�F˜BÑÔ€AØˆS€FØ€AÝ�F˜BÑÔ€Aà
�˜7Ñ.Ý�c—g’g˜o¨qÑ1Ô1Ð6°QÑ7Ô7ˆÝ˜Ÿš ¨qÑ1Ô1Ð6°QÑ7Ô7ˆ
Ø”G˜A”Jˆ	Øˆ	Ø˜zÑ)ˆ
Ø�QŠ;‰;˜:¨'°A©+Ò6Ñ6¸9È	Ò;QÑ;QØ"ˆIØ 'Ñ)ˆGØˆIØ 'Ñ)ˆGØ˜'Ò!Ñ!åœ	 A a a a¨¨¨¨K¨Z¨KÐ&7Ô$8¸!¸A¸A¸A¸q¸q¸qÀ)ÈGÐBSÐ<SÔ:TÐVWÐXYÐXYÐXYÐ[\Ð[\Ð[\Ð^gÐ^hÐ^hÐXhÔViÐ#jÐpqÐtÑtÔt�Ýœ	 A a a a¨¨¨¨K¨Z¨KÐ&7Ô$8¸!¸A¸A¸A¸q¸q¸qÀ)ÈGÐBSÐ<SÔ:TÐVWÐXYÐXYÐXYÐ[\Ð[\Ð[\Ð^gÐ^hÐ^hÐXhÔViÐ#jÐpqÐtÑtÔt�Ýœ	 A a a a¨¨¨¨K¨Z¨KÐ&7Ô$8¸!¸A¸A¸A¸q¸q¸qÀ)ÈGÐBSÐ<SÔ:TÐVWÐXYÐXYÐXYÐ[\Ð[\Ð[\Ð^gÐ^hÐ^hÐXhÔViÐ#jÐpqÐtÑtÔt�åœ	 1 Q Q Q¨¨¨¨8¨G¨8 ^Ô#4°a¸¸¸¸1¸1¸1¸i¸j¸jÐ8HÔ6IÐ"JÐPQÐRÑRÔR�Ýœ	 1 Q Q Q¨¨¨¨8¨G¨8 ^Ô#4°a¸¸¸¸1¸1¸1¸i¸j¸jÐ8HÔ6IÐ"JÐPQÐRÑRÔR�Ýœ	 1 Q Q Q¨¨¨¨8¨G¨8 ^Ô#4°a¸¸¸¸1¸1¸1¸i¸j¸jÐ8HÔ6IÐ"JÐPQÐRÑRÔR�Ø�q˜!à Ÿ?š?¨1¨aÑ0Ô0°%·/²/À!ÀQÑ2GÔ2GÈÏÊÐYZÐ\]ÑI^ÔI^Ð_�Ø(,Ð,�Ð,˜ Ý% gÑ.Ô.�ØŸš a¨Ñ+Ô+�à Ÿ?š?¨1¨aÑ0Ô0°%·/²/À!ÀQÑ2GÔ2GÈÏÊÐYZÐ\]ÑI^ÔI^Ð_�Ø(,Ð,�Ð,˜ Ý% gÑ.Ô.�ØŸš a¨Ñ+Ô+�à *¨WÑ 4�Ø    :¨mÐ#;Ð ;Ô<×BÒBÑDÔD�Ø œL�	Ø œL�	Ø˜eœ*�Øœ�à"�
Ø—’  I¡Ñ.Ô.Ð.Ø—’ ¨Y�Ñ7Ô7Ð7Ý %¤
¨5°A¸2ÀtÐ LÑ LÔ L�Ý %¤
¨:¸ÀÈDÐ QÑ QÔ Q�Ø%¨Ñ5�ÝÔ  ¨D¸ÀdÐPUÐVÑVÔVÐVØ˜}¨tÑ3Ñ4°}ÑDÀwÑN×RÒRÐS]ÔScÑdÔd�Ý"œ[¨°ª¸*ÀvÑ:MÈzÑZÔZ×]Ò]Ð^cÑdÔd�
Ø! =°%¸à—’ 	Ñ*Ô*Ð*Ø—’ ¨a°)©m�Ñ=Ô=Ð=Ø�à&0°°°°H°W°H°Ô&=Ð#Ø)¨!¨!¨!¨W¨X¨X¨+Ô6�Ø!�
å”iÐ!4°g¸|Ð LÐRSÐTÑTÔT�Ø?CÐCÐ#ÐC g°Ø�
à—’˜A˜qÑ!Ô! 1§;¢;¨q°!Ñ#4Ô#4°a·k²kÀ!ÀQÑ6GÔ6GÐH€HØ	ˆ1ˆaÝ�hÑÔ×)Ò)¨!¨QÑ/Ô/€Aå�!Ð+Ñ,Ô,€Aà€Hó    Úposr   Úthetac                 ó´  — |dz  dk    sJ ‚t          j        d|d| j        | j        ¬¦  «        |z  }d||z  z  }t          j        d| |¦  «        }t          j        t          j        |¦  «        t          j        |¦  «         t          j        |¦  «        t          j        |¦  «        gd¬¦  «        }t          |ddd¬	¦  «        }| 	                    ¦   «         S )
Nr   r   )r'   Údeviceg      ð?z...n,d->...ndr   r   zb n d (i j) -> b n d i j)ÚiÚj)
r"   Úaranger'   rX   ÚeinsumÚstackÚcosÚsinr   Úfloat)rU   r   rV   r   Úomegar   s         rR   Úroperb   Y   s½   € Ø�‰7�aŠ<ˆ<ˆ<ˆ<ÝŒL˜˜C ¨#¬)¸C¼JÐGÑGÔGÈ#ÑM€EØ�5˜%‘<Ñ €EÝ
Œ,�¨¨UÑ
3Ô
3€CÝ
Œ+•u”y ‘~”~­¬	°#©¬ ½¼	À#¹¼ÍÌ	ÐRUÉÌÐWÐ]_Ð
`Ñ
`Ô
`€CÝ
�CÐ3°q¸AÐ
>Ñ
>Ô
>€CØ�9Š9‰;Œ;ÐrT   Ú	freqs_cisc                 ó,   — t          j        | |¦  «        S )N)r   Úmatrix_rope)r2   rc   s     rR   r   r   c   s   € ÝŒ?˜6 9Ñ-Ô-Ð-rT   )r"   Úeinopsr   r   Úshared.attentionr   Úshared.kernelsr   r   ÚdictrS   rb   Útupler   © rT   rR   ú<module>rl      s  ðØ €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð ð >BÐVZð Nð Nð N˜Fð N°°d±
ð NÈÈtÉð NÐ_eð Nð Nð Nð Nðbˆfð ˜3ð  sð ¨vð ð ð ð ð. 6ð .¨e°F¸F°NÔ.Cð .ð .ð .ð .ð .ð .rT   