+
    UV-j‰  ã                  ó€   a € 0 t $ ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 Rt
R]R&   R R	 ltR
RRRRR/R R lltR R ltR# )é    )ÚannotationsN)ÚQwen3TextEncoder)ÚFlux2Tokenizeré   útuple[int, ...]ÚDEFAULT_SEQ_LEN_BUCKETSc               ó(   € V ^8„  d   QhRRRRRRRR/# )é   Útrue_lenÚintÚbucketsr   ÚcapÚreturn© )Úformats   "Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/flux2/prompt.pyÚ__annotate__r      s(   € ÷ ñ ˜3ð ¨ð ¸sð Àsñ ó    c                óz   € V Uu. uF  q3V8:  g   K  VNK  	  pp\        V4       F  pW08¼  g   K  Vu # 	  V# u upi )N)Úsorted)r   r   r   ÚbÚeligibles   &&&  r   Ú_pick_bucketr      sA   € Ù"Ó/™7�a¨3¡h—�™7€HÐ/Ü�HÖˆØŽ=ØŠHñ ð €Jùò	 0s   …8’8Úmax_sequence_lengthÚhidden_state_layersÚbucketedTc               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r
   Úpromptzstr | list[str]Ú	tokenizerr   Útext_encoderr   r   r   r   r   r   Úboolr   ztuple[mx.array, mx.array]r   )r   s   "r   r   r      sP   € ÷ ,ñ ,àð,ð ð,ð #ð	,ð
 ð,ð )ð,ð ð,ð ñ,r   c                óê   € V'       d   VP                  V 4      MTp\        V\        VR 7      pVP                  WR7      pVP	                  VP
                  VP                  VR7      p	V	\        V	4      3# ))r   )r   Ú
max_length)Ú	input_idsÚattention_maskr   )Úcount_tokensr   r   ÚtokenizeÚget_prompt_embedsr$   r%   Úprepare_text_ids)
r   r   r    r   r   r   r   Úeffective_maxÚtokensÚembedss
   $$$$$$    r   Úencode_promptr-      s~   € ÷ 2:ˆy×%Ñ% fÔ-Ð?R€HÜ ØÔ)Ð/Bô€Mð ×Ñ vÐÓH€FØ×+Ñ+Ø×"Ñ"Ø×,Ñ,Ø/ð ,ó €Fð
 Ô# FÓ+Ð+Ð+r   c               ó    € V ^8„  d   QhRRRR/# )r
   Úxzmx.arrayr   r   )r   s   "r   r   r   )   s   € ÷ 	%ñ 	%˜ð 	% Xñ 	%r   c           	     ó   € V P                   w  rp. p\        V4       FÇ  p\        P                  ! V3\        P                  R 7      p\        P                  ! V3\        P                  R 7      p\        P                  ! V3\        P                  R 7      p\        P
                  ! V\        P                  R 7      pVP                  \        P                  ! WVWx.^R7      4       KÉ  	  \        P                  ! V^ R7      # ))Údtype)Úaxis)ÚshapeÚrangeÚmxÚzerosÚint32ÚarangeÚappendÚstack)	r/   Ú
batch_sizeÚseq_lenÚ_Úout_idsÚtÚhÚwÚ	token_idss	   &        r   r)   r)   )   s©   € ØŸW™WÑ€J˜Ø€GÜ�:ÖˆÜ�HŠH�g�Z¤r§x¡xÔ0ˆÜ�HŠH�g�Z¤r§x¡xÔ0ˆÜ�HŠH�g�Z¤r§x¡xÔ0ˆÜ—I’I˜g¬R¯X©XÔ6ˆ	Ø�‰”r—x’x  qÐ 4¸1Ô=Ö>ñ ô �8Š8�G !Ô$Ð$r   )é    é@   é€   é   r   )é	   é   é   )Ú__conditional_annotations__Ú
__future__r   Úmlx.coreÚcorer5   Ú&mlx_vlm.models.flux2.qwen.text_encoderr   Úmlx_vlm.models.flux2.tokenizerr   r   Ú__annotations__r   r-   r)   )rJ   s   @r   Ú<module>rQ      sM   øðß "Ð "å å CÝ 9à+BÐ ˜Ó Bõð,ð
  #ð,ð ,7ð,ð ÷,÷,	%r   