+
    UV-jì  ã                   ó¾   € ^ RI Ht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 R	]P$                  4      t ! R
 R]P$                  4      tR# )é    )ÚListÚOptionalN)ÚInputEmbeddingsFeatures)ÚKVCache©ÚModelConfig)ÚLanguageModel)ÚVisionModelc                   óP   a a€ ] tR t^t oV3R lV 3R lltV3R lR ltRtVtV ;t# )Ú!LocateAnythingMultiModalProjectorc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfigr   )ÚformatÚ__classdict__s   "€Ú}/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/locateanything/locateanything.pyÚ__annotate__Ú.LocateAnythingMultiModalProjector.__annotate__   s   ø€ ÷ 
:ñ 
:™{ñ 
:ó    c                óì  <€ \         SV `  4        VP                  P                  pVP                  P                  pW#^ ,          ,          V^,          ,          V n        VP                  P                  p\        P                  ! V P
                  4      V n	        \        P                  ! V P
                  V4      V n        \        P                  ! 4       V n        \        P                  ! WD4      V n        R# )r   N)ÚsuperÚ__init__Úvision_configÚhidden_sizeÚmerge_kernel_sizeÚ	input_dimÚtext_configÚnnÚ	LayerNormÚ
layer_normÚLinearÚlinear_1ÚGELUÚactÚlinear_2)Úselfr   Ú
vit_hiddenÚmergeÚ
llm_hiddenÚ	__class__s   &&   €r   r   Ú*LocateAnythingMultiModalProjector.__init__   sŸ   ø€ Ü‰ÑÔØ×)Ñ)×5Ñ5ˆ
Ø×$Ñ$×6Ñ6ˆØ#¨A¥hÕ.°°qµÕ9ˆŒØ×'Ñ'×3Ñ3ˆ
äŸ,š, t§~¡~Ó6ˆŒÜŸ	š	 $§.¡.°*Ó=ˆŒÜ—7’7“9ˆŒÜŸ	š	 *Ó9ˆŽr   c                ó^   <€ V ^8„  d   QhRS[ S[P                  ,          RS[P                  /# )r   Úimage_featuresÚreturn)ÚlistÚmxÚarray)r   r   s   "€r   r   r      s'   ø€ ÷ ñ ¡t©B¯H©H¥~ð ¹"¿(¹(ñ r   c                óò   € \         P                  ! V^ R7      P                  RV P                  4      pV P	                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# )r   )Úaxiséÿÿÿÿ)r1   ÚconcatenateÚreshaper   r!   r#   r%   r&   )r'   r.   Úhs   && r   Ú__call__Ú*LocateAnythingMultiModalProjector.__call__   s_   € Ü�NŠN˜>°Ô2×:Ñ:¸2¸t¿~¹~ÓNˆØ�O‰O˜AÓˆØ�M‰M˜!ÓˆØ�H‰H�Q‹KˆØ�M‰M˜!ÓˆØˆr   )r%   r   r!   r#   r&   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r9   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r+   r   s   @@r   r   r      s   ù‡ € ÷
:ó 
:÷÷ ð r   r   c                   óœ   a a€ ] tR t^#t oV3R lV 3R lltRV3R lR llt]R 4       tRV3R lR lltR t	RV3R	 lR
 llt
R tRtVtV ;t# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚModel.__annotate__$   s   ø€ ÷ :ñ :™{ñ :r   c                óü   <€ \         SV `  4        VP                  V n        Wn        \	        VP
                  4      V n        \        VP                  4      V n	        \        V4      V n        VP                  V n        R # ©N)r   r   Ú
model_typer   r
   r   Úvision_towerr	   r   Úlanguage_modelr   Úmulti_modal_projectorÚimage_token_index)r'   r   r+   s   &&€r   r   ÚModel.__init__$   sa   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØŒä'¨×(<Ñ(<Ó=ˆÔÜ+¨F×,>Ñ,>Ó?ˆÔÜ%FÀvÓ%NˆÔ"Ø!'×!9Ñ!9ˆÖr   c                ón   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          /# ©r   Ú	input_idsÚpixel_values)r   r1   r2   )r   r   s   "€r   r   rF   .   s5   ø€ ÷ "Dñ "Dá™BŸH™HÕ%ð"Dñ ™rŸx™xÕ(ñ"Dr   c                ó  € VP                  R R4      pVP                  RR4      pV P                  P                  P                  V4      pVf   \	        VR7      # VP                  RR4      pVe   TpM7V P                  VP                  ^ ^^^4      VVR7      p	V P                  V	4      pVP                  RR4      ;'       g    V P                  p
W8H  pVP                  R4      p\        P                  ! VP                  \        P                  4      4      ^,
          p\        P                  ! WÍ^ 4      P                  VP                   4      pWŽ,          p\        P                  ! VR,          Wö4      p\	        VR7      # )	Úimage_grid_hwsNÚ_grid_shapes)Úinputs_embedsÚcached_image_features)Úgrid_thwÚgrid_shapesÚimage_token_idr5   ).N)ÚpoprK   ÚmodelÚembed_tokensr   ÚgetrJ   Ú	transposerL   rM   r7   r1   ÚcumsumÚastypeÚint32ÚwhereÚshape)r'   rQ   rR   ÚkwargsrT   rY   rV   Úcachedr.   Úhidden_staterZ   Ú
image_maskÚ	mask_flatr`   Úfeat_idxÚgathereds   &&&,            r   Úget_input_embeddingsÚModel.get_input_embeddings.   sO  € ð  Ÿ™Ð$4°dÓ;ˆØ—j‘j °Ó6ˆà×+Ñ+×1Ñ1×>Ñ>¸yÓIˆàÒÜ*¸ÔGÐGà—‘Ð3°TÓ:ˆØÒØ#‰Nà×,Ñ,Ø×&Ñ& q¨!¨Q°Ó2Ø'Ø'ð -ó ˆLð
 "×7Ñ7¸ÓEˆNàŸ™Ð$4°dÓ;×UÐU¸t×?UÑ?UˆØÑ0ˆ
à×&Ñ& rÓ*ˆ	Ü—’˜9×+Ñ+¬B¯H©HÓ5Ó6¸Õ:ˆÜ—8’8˜I¨qÓ1×9Ñ9¸)¿/¹/ÓJˆØ!Õ+ˆÜŸš ¨IÕ!6¸ÓPˆä&°]ÔCÐCr   c                óB   € V P                   P                  P                  # rH   )rK   r\   Úlayers)r'   s   &r   ro   ÚModel.layersR   s   € à×"Ñ"×(Ñ(×/Ñ/Ð/r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rP   )r1   r2   )r   r   s   "€r   r   rF   V   s'   ø€ ÷ 
ñ 
á—8‘8ð
ñ —h‘hñ
r   c                ód   € V P                   ! W3/ VB pV P                  VVVP                  R 7      # ))ÚinputsÚcacherV   )rl   rK   rV   )r'   rQ   rR   rt   re   Úinput_embeddings_featuress   &&&&, r   r9   ÚModel.__call__V   sI   € ð %)×$=Ò$=Øñ%
Ø'-ñ%
Ð!ð ×"Ñ"ØØØ3×AÑAð #ó 
ð 	
r   c                ó|   € V P                   P                  P                   Uu. uF  p\        4       NK  	  up# u upi rH   )rK   r\   ro   r   )r'   Ú_s   & r   Ú
make_cacheÚModel.make_cachef   s0   € Ø#'×#6Ñ#6×#<Ñ#<×#CÒ#CÓDÑ#C˜a”–	Ñ#CÑDÐDùÒDs   £9c                ó€   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[RS[RS[S[,          /# )r   rQ   rR   Úgeneration_modeÚ
max_tokensr/   )r1   r2   r   ÚstrÚintr   )r   r   s   "€r   r   rF   i   sN   ø€ ÷ 
ñ 
á—8‘8ð
ñ ™rŸx™xÕ(ð
ñ ð	
ñ
 ð
ñ 
‰c�ñ
r   c                ó¨   € ^RI Hp V P                  ! W3/ VB pVf   V P                  4       pV! WR7      p	V	P	                  WP
                  WTR7      # )é   )Ú
PBDDecoder)r|   )r}   )Úpbdr‚   rl   ry   ÚgeneraterV   )
r'   rQ   rR   r|   r}   rt   re   r‚   ÚembedsÚdecoders
   &&&&&&,   r   Úpbd_generateÚModel.pbd_generatei   sZ   € õ 	$à×*Ò*¨9ÑMÀfÑMˆØŠ=Ø—O‘OÓ%ˆEÙ˜TÔCˆØ×ÑØ×+Ñ+¨Uð  ó 
ð 	
r   c                ó\  € / pVP                  4        F•  w  r4VR 8X  d   K  VP                  R4      '       d$   VP                  RR4      P                  RR4      pMIVP                  R4      '       d3   VP                  RR4      P                  RR4      P                  R	R
4      pWBV&   K—  	  V# )zlanguage_model.lm_head.weightzvision_model.zvision_model.encoder.zvision_tower.zmlp1.zmlp1.0.z!multi_modal_projector.layer_norm.zmlp1.1.zmulti_modal_projector.linear_1.zmlp1.3.zmulti_modal_projector.linear_2.)ÚitemsÚ
startswithÚreplace)r'   ÚweightsÚ	sanitizedÚkÚvs   &&   r   ÚsanitizeÚModel.sanitize|   s¥   € Øˆ	Ø—M‘M–O‰DˆAØÐ3Ô3Ùà�|‰|˜O×,Ò,Ø—I‘IÐ5°ÓG×OÑOØ# _ó‘ð —‘˜g×&Ò&à—I‘I˜iÐ)LÓMß‘W˜YÐ(IÓJß‘W˜YÐ(IÓJð ð �a‹Lñ $ð  Ðr   )r   rM   rK   rI   rL   rJ   )NN)NÚhybridi   N)r;   r<   r=   r>   r   rl   Úpropertyro   r9   ry   r‡   r‘   r?   r@   rA   rB   s   @@r   rD   rD   #   sT   ù‡ € ÷:ó :÷"Dò "DðH ñ0ó ð0÷
ò 
ò E÷
ò 
÷&ò r   rD   )Útypingr   r   Úmlx.coreÚcorer1   Úmlx.nnr   Úbaser   rt   r   r   r   Úlanguager	   Úvisionr
   ÚModuler   rD   © r   r   Ú<module>rž      s?   ðß !å Ý å *Ý Ý Ý #Ý ô¨¯	©	ô ô,kˆB�I‰Iö kr   