+
    UV-j½  ã                  ó®   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ R	IHt RtR
 R ltR R ltRR/R R lltR R ltR# )é    )Úannotations)ÚPathN)Útree_unflatten)ÚFlux2Variant)ÚModelConfig)ÚQwen3TextEncoder)ÚFlux2Transformer)ÚFlux2VAEc               ó$   € V ^8„  d   QhRRRRRR/# )é   Ú
model_pathú
str | PathÚvariantr   Úreturnr   © )Úformats   "Úm/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/flux2/weights.pyÚ__annotate__r      s$   € ÷ ñ ØðØ%1ðàñó    c                óÜ  € \        \        V 4      P                  4       R ,          4      p/ pVP                  4        Ff  w  rEVP	                  R4      '       g   K  V\        R4      R pVP	                  R4      '       g   KE  VP                  \        P                  4      W6&   Kh  	  \        R/ VP                  B pVP                  \        \        VP                  4       4      4      4       V# )Útext_encoderzmodel.N)zembed_tokens.zlayers.znorm.r   )Ú_load_safetensorsr   Ú
expanduserÚitemsÚ
startswithÚlenÚastyper   Ú	precisionr   Útext_encoder_overridesÚupdater   Úlist)r   r   ÚrawÚweightsÚkeyÚvalueÚstrippedr   s   &&      r   Úload_text_encoderr'      s¼   € ô œD Ó,×7Ñ7Ó9¸NÕJÓ
K€CØ€GØ—i‘i–k‰
ˆØ�~‰~˜h×'Ò'ÙØ”s˜8“}�Ð'ˆØ×ÑÐD×EÔEØ %§¡¬[×-BÑ-BÓ CˆGÓñ "ô $ÑE g×&DÑ&DÑE€LØ×Ñœ¤t¨G¯M©M«OÓ'<Ó=Ô>ØÐr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r   r   r   r	   r   )r   s   "r   r   r   !   s"   € ÷ ñ  ð °lð ÐGWñ r   c                ó¨  € \        \        V 4      P                  4       R ,          4      p/ pVP                  4        FL  w  rETpVP	                  RR4      pVP	                  RR4      pVP                  \        P                  4      W6&   KN  	  \        R/ VP                  B pVP                  \        \        VP                  4       4      4      4       V# )Útransformerz&time_guidance_embed.timestep_embedder.ztime_guidance_embed.ú
.to_out.0.ú.to_out.r   )r   r   r   r   Úreplacer   r   r   r	   Útransformer_overridesr    r   r!   )r   r   r"   r#   r$   r%   Úmappedr*   s   &&      r   Úload_transformerr0   !   s°   € Ü
œD Ó,×7Ñ7Ó9¸MÕIÓ
J€CØ€GØ—i‘i–k‰
ˆØˆØ—‘Ø4Ð6Ló
ˆð —‘ ¨jÓ9ˆØŸ,™,¤{×'<Ñ'<Ó=ˆ‹ñ "ô #ÑC W×%BÑ%BÑC€KØ×Ñ”~¤d¨7¯=©=«?Ó&;Ó<Ô=ØÐr   Úinclude_encoderFc               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r1   Úboolr   r
   r   )r   s   "r   r   r   0   s!   € ÷ ñ ˜ð ¸ð È(ñ r   c               ó  € \        \        V 4      P                  4       R ,          4      p/ pVP                  4        Fý  w  rEVP	                  R4      '       d   K  VP                  R4      '       go   VP                  R4      '       gX   VP                  R4      '       gA   V'       d   VP                  R4      '       g"   V'       d   VP                  R4      '       g   K£  VP                  RR4      pVP                  \        P                  4      pVP                  ^8X  d   VP                  ^ ^^^4      pWsV&   Kÿ  	  \        \        V\        R	7      pVP                  \        \!        VP                  4       4      4      4       V# )
Úvaez.num_batches_trackedzdecoder.zpost_quant_conv.zbn.zencoder.zquant_conv.r+   r,   )Údecoder_block_out_channelsr1   Úencoder_block_out_channels)r   r   r   r   Úendswithr   r-   r   r   r   ÚndimÚ	transposer
   ÚFULL_DECODER_CHANNELSr    r   r!   )	r   r1   r"   r#   r$   r%   r/   Útensorr5   s	   &$       r   Úload_vaer=   0   s!  € Ü
œD Ó,×7Ñ7Ó9¸EÕAÓ
B€CØ€GØ—i‘i–k‰
ˆØ�<‰<Ð.×/Ò/Ùà�N‰N˜:×&Ò&Ø�~‰~Ð0×1Ò1Ø�~‰~˜e×$Ò$ß C§N¡N°:×$>Ò$>ß C§N¡N°=×$AÒ$AáØ—‘˜\¨:Ó6ˆØ—‘œk×3Ñ3Ó4ˆØ�;‰;˜!ÔØ×%Ñ% a¨¨A¨qÓ1ˆFØ �‹ñ "ô  Ü#8Ø'Ü#8ô€Cð
 ‡J�JŒ~œd 7§=¡=£?Ó3Ó4Ô5Ø€Jr   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	directoryr   r   zdict[str, mx.array]r   )r   s   "r   r   r   L   s   € ÷ ñ  ð Ð*=ñ r   c                ó.  € V P                  4       '       g   \        R V  24      h/ p\        R V P                  R4       4       4      pV'       g   \        RV  24      hV F1  pVP	                  \
        P                  ! \        V4      4      4       K3  	  V# )zMissing weight directory: c              3  ój   "  € T F)  qP                   P                  R 4      '       d   K%  Vx € K+  	  R# 5i)z._N)Únamer   )Ú.0Úps   & r   Ú	<genexpr>Ú$_load_safetensors.<locals>.<genexpr>P   s%   é € ð Ù2ˆa¿&¹&×:KÑ:KÈD×:Q�ŠÓ2ùs   ‚"3©
3z*.safetensorsz!No safetensors files found under )ÚexistsÚFileNotFoundErrorÚsortedÚglobr    ÚmxÚloadÚstr)r?   r#   ÚfilesÚfiles   &   r   r   r   L   s‰   € Ø×Ñ×ÒÜÐ"<¸Y¸KÐ HÓIÐIØ#%€GÜñ Ø—>‘> /Ô2óó €E÷ ÜÐ"CÀIÀ;Ð OÓPÐPÛˆØ�‰”r—w’wœs 4›yÓ)Ö*ñ à€Nr   )é€   é   é   rR   )Ú
__future__r   Úpathlibr   Úmlx.coreÚcorerK   Ú	mlx.utilsr   Úmlx_vlm.models.flux2.configr   Úmlx_vlm.models.flux2.constantsr   Ú&mlx_vlm.models.flux2.qwen.text_encoderr   Ú mlx_vlm.models.flux2.transformerr	   Úmlx_vlm.models.flux2.vaer
   r;   r'   r0   r=   r   r   r   r   Ú<module>r]      sA   ðÝ "å å Ý $å 4Ý 6Ý CÝ =Ý -à,Ð õõ ðÀ÷ ÷8r   