+
    UV-j?  ã                  ó4  € ^ RI Ht ^ RI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
IHt ]	P.                  t]	P2                  ]	P4                  ]	P.                  0tR]/R R lltR R ltR R ltR R ltR R ltR R lt R# )é    )ÚannotationsN)ÚPath)ÚAny)Útree_unflatten)ÚQwen3TextEncoder)ÚFlux2VAE)Úload_vae)ÚIdeogram4TransformerConfig)ÚIdeogram4TransformerÚ	precisionc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úweightsúdict[str, mx.array]r   zmx.DtypeÚreturn© )Úformats   "Úq/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/ideogram4/weights.pyÚ__annotate__r      s(   € ÷ ñ Ø ðð ðð ñ	ó    c               óæ  € / pV P                  4        FÚ  w  r4VP                  R 4      '       d   K  V R2pVP                  R4      '       ds   WP9   dm   W,          P                  V4      p\        P                  ! VP                  \        P
                  4      V4      \        P                  ! VRR7      ,          W#&   K¬  VP                  \        9   d   VP                  V4      W#&   KÖ  WBV&   KÜ  	  V# )z.weight_scaleÚ_scalez.weight)Úaxiséÿÿÿÿ)	ÚitemsÚendswithÚastypeÚmxÚfrom_fp8Úuint8Úexpand_dimsÚdtypeÚ_FLOAT_DTYPES)r   r   Ú	convertedÚkeyÚvalueÚ	scale_keyÚscales   &$     r   Údequantize_fp8_weight_onlyr)      sÁ   € ð
 &(€IØ—m‘m–o‰
ˆØ�<‰<˜×(Ò(ÙØ�e˜6�Nˆ	Ø�<‰<˜	×"Ò" yÔ';ØÕ&×-Ñ-¨iÓ8ˆEÜŸ[š[Ø—‘œRŸX™XÓ&¨	óä—’˜u¨2Ô.õ/ˆI‹Nð �[‰[œMÔ)Ø"Ÿ\™\¨)Ó4ˆI‹Nà"�c‹Nñ &ð Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   Ú
model_pathú
str | Pathr   r   r   )r   s   "r   r   r   +   s   € ÷ ñ  *ð Ð1Añ r   c                óÔ  € \        V 4      P                  4       p\        VR ,          R,          4      pVR,          p\        VR ,          4      p\	        V4      p/ pVP                  4        FG  w  rgVP                  R4      '       d   V\        R4      R pVP                  R4      '       g   KC  WuV&   KI  	  \        \        VR,          4      \        VR,          4      \        VR,          4      \        VR,          4      \        VR	,          4      \        VR
,          4      \        VR,          4      \        VP                  R4      ;'       g#    VP                  R/ 4      P                  RR4      4      \        VR,          4      \        VR,          4      \        VP                  RR4      4      R7      pVP                  \        \        VP                  4       4      4      4       V# )Útext_encoderúconfig.jsonÚtext_configzlanguage_model.NÚ
vocab_sizeÚhidden_sizeÚnum_hidden_layersÚnum_attention_headsÚnum_key_value_headsÚintermediate_sizeÚmax_position_embeddingsÚ
rope_thetaÚrope_parametersi@KL Úrms_norm_epsÚhead_dimÚattention_biasF)r1   r2   r3   r4   r5   r6   r7   r8   r:   r;   r<   )zembed_tokens.zlayers.znorm.)r   Ú
expanduserÚ
_load_jsonÚ_load_safetensorsr)   r   Ú
startswithÚlenr   ÚintÚfloatÚgetÚboolÚupdater   Úlist)	r+   ÚrootÚconfigr0   Úrawr   r%   r&   r.   s	   &        r   Úload_text_encoderrK   +   s›  € Ü�
Ó×&Ñ&Ó(€DÜ˜˜~Õ-°Õ=Ó>€FØ˜Õ'€KÜ
˜D >Õ1Ó
2€CÜ
$ SÓ
)€Cà€GØ—i‘i–k‰
ˆØ�>‰>Ð+×,Ò,Ø”cÐ+Ó,Ð.Ð/ˆCØ�>‰>Ð?×@Ô@Ø �C‹Lñ	 "ô $Ü�{ <Õ0Ó1Ü˜ MÕ2Ó3Ü˜kÐ*=Õ>Ó?Ü Ð,AÕ BÓCÜ Ð,AÕ BÓCÜ˜kÐ*=Õ>Ó?Ü # KÐ0IÕ$JÓ KÜØ�O‰O˜LÓ)÷ Sð SØ�‰Ð0°"Ó5×9Ñ9¸,È	ÓRó
ô ˜; ~Õ6Ó7Ü�[ Õ,Ó-Ü˜KŸO™OÐ,<¸eÓDÓEô€Lð  ×Ñœ¤t¨G¯M©M«OÓ'<Ó=Ô>ØÐr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r+   r,   Ú	subfolderÚstrr   r   r   )r   s   "r   r   r   M   s(   € ÷ ñ Øðð ðð ñ	r   c               ó@  € \        V 4      P                  4       p\        P                  ! \	        W!,          R ,          4      4      p\        W!,          4      p\        V4      p\        V4      pVP                  \        \        VP                  4       4      4      4       V# )r/   )r   r=   r
   Ú	from_dictr>   r?   r)   r   rF   r   rG   r   )r+   rM   rH   rI   rJ   r   Útransformers   &$     r   Úload_transformerrR   M   s~   € ô
 �
Ó×&Ñ&Ó(€DÜ'×1Ò1Ü�4Õ# mÕ3Ó4ó€Fô ˜DÕ,Ó
-€CÜ(¨Ó-€GÜ& vÓ.€KØ×Ñ”~¤d¨7¯=©=«?Ó&;Ó<Ô=ØÐr   c               ó    € V ^8„  d   QhRRRR/# )r   r+   r,   r   r   r   )r   s   "r   r   r   ]   s   € ÷ &ñ &˜ð &¨ñ &r   c                ó   € \        V 4      # ©N)Úload_flux2_vae)r+   s   &r   r	   r	   ]   s   € Ü˜*Ó%Ð%r   c               ó    € V ^8„  d   QhRRRR/# )r   Úpathr   r   zdict[str, Any]r   )r   s   "r   r   r   a   s   € ÷ (ñ (�Tð (˜nñ (r   c                óJ   € \         P                  ! V P                  4       4      # rU   )ÚjsonÚloadsÚ	read_text)rX   s   &r   r>   r>   a   s   € Ü�:Š:�d—n‘nÓ&Ó'Ð'r   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	directoryr   r   r   r   )r   s   "r   r   r   e   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  ól   "  € T F*  pVP                   P                  R 4      '       d   K&  Vx € K,  	  R# 5i)z._N)Únamer@   )Ú.0rX   s   & r   Ú	<genexpr>Ú$_load_safetensors.<locals>.<genexpr>i   s+   é € ð á3ˆDØ�y‰y×#Ñ# D×)÷ 	ŠÛ3ùs   ‚#4ª
4z*.safetensorsz!No safetensors files found under )ÚexistsÚFileNotFoundErrorÚsortedÚglobrF   r   ÚloadrN   )r^   r   ÚfilesÚfiles   &   r   r?   r?   e   s‰   € Ø×Ñ×ÒÜÐ"<¸Y¸KÐ HÓIÐIØ#%€GÜñ à—N‘N ?Ô3óó €E÷
 ÜÐ"CÀIÀ;Ð OÓPÐPÛˆØ�‰”r—w’wœs 4›yÓ)Ö*ñ à€Nr   )!Ú
__future__r   rZ   Úpathlibr   Útypingr   Úmlx.coreÚcorer   Ú	mlx.utilsr   Ú&mlx_vlm.models.flux2.qwen.text_encoderr   Úmlx_vlm.models.flux2.vaer   Úmlx_vlm.models.flux2.weightsr	   rV   rI   r
   rQ   r   Úbfloat16Ú	PRECISIONÚfloat16Úfloat32r#   r)   rK   rR   r>   r?   r   r   r   Ú<module>ry      sp   ðÝ "ã Ý Ý å Ý $å CÝ -Ý Cå .Ý -à�K‰K€	Ø—‘˜RŸZ™Z¨¯©Ð5€ðð $÷õ,õDõ &õ(÷r   