+
    UV-js
  ã                  óv   € ^ RI Ht ^ RIHt ^ RIHt R R ltR R ltR R	 lt	R
^R^ R^/R R llt
R R ltR# )é    )ÚannotationsN)ÚModelConfigc               ó    € V ^8„  d   QhRRRR/# ©é   Úlatentsúmx.arrayÚreturn© )Úformats   "Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/flux2/latent.pyÚ__annotate__r      s   € ÷ Rñ R˜hð R¨8ñ Ró    c                ó˜  € V P                   ^8X  d"   V P                  ^,          ^8X  d
   V R,          p V P                   ^8w  d   \        RV P                   24      hV P                  w  rr4V P                  WV^,          ^V^,          ^4      p V P	                  ^ ^^^^^4      p V P                  W^,          V^,          V^,          4      # )é   z(Expected latents with ndim=4, got shape=)ºNNNr   r   r   r   )ÚndimÚshapeÚ
ValueErrorÚreshapeÚ	transpose©r   Ú
batch_sizeÚnum_channelsÚheightÚwidths   &    r   Úpatchify_latentsr      s³   € Ø‡|�|�qÔ˜WŸ]™]¨1Õ-°Ô2Ø˜-Õ(ˆØ‡|�|�qÔÜÐCÀGÇMÁMÀ?ÐSÓTÐTØ.5¯m©mÑ+€J˜fØ�o‰o˜j¸À!½ÀQÈÐQRÍ
ÐTUÓV€GØ×Ñ  1 a¨¨A¨qÓ1€GØ�?‰?˜:°aÕ'7¸À1½ÀeÈqÅjÓQÐQr   c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r      s   € ÷ Xñ X˜(ð X xñ Xr   c                ór   € V P                   w  rr4V P                  WW4,          4      P                  ^ ^^4      # )r   )r   r   r   r   s   &    r   Úpack_latentsr       s4   € Ø.5¯m©mÑ+€J˜fØ�?‰?˜:°Vµ^ÓD×NÑNÈqÐRSÐUVÓWÐWr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r	   Úlatent_heightÚintÚlatent_widthr
   r   )r   s   "r   r   r      s,   € ÷ ñ ØðØ),ðØ<?ðàñr   c               ó  € V P                   ^8X  d   V # V P                   ^8w  d   \        RV P                   24      hV P                  V P                  ^ ,          WV P                  R,          4      P	                  ^ ^^^4      # )é   z/Expected packed latents with ndim=3, got shape=éÿÿÿÿ)r   r   r   r   r   )r   r"   r$   s   &$$r   Úunpack_latentsr(      sx   € ð ‡|�|�qÔØˆØ‡|�|�qÔÜØ=¸g¿m¹m¸_ÐMó
ð 	
ð �?‰?Ø�‰�aÕ˜-°w·}±}ÀRÕ7Hóç�i��1�a˜Óðr   r   Únum_latent_channelsÚvae_scale_factorc               ó4   € V ^8„  d   QhRRRRRRRRRRRRRR	/# )
r   Úseedr#   r   r   r   r)   r*   r
   z#tuple[mx.array, mx.array, int, int]r   )r   s   "r   r   r   &   sY   € ÷ Jñ Jà
ðJð ðJð ð	Jð
 ðJð ðJð ðJð )ñJr   c                ó|  € ^W^,          ,          ,          p^W%^,          ,          ,          pV^,          pV^,          p\         P                  P                  W4^,          Wg3\         P                  P                  V 4      R7      P	                  \
        P                  4      p\        V^ R7      p	\        V4      W–V3# )r   )r   Úkey)Út_coord)	ÚmxÚrandomÚnormalr.   Úastyper   Ú	precisionÚprepare_grid_idsr    )
r,   r   r   r   r)   r*   r"   r$   r   Ú
latent_idss
   $$$$$$    r   Úprepare_packed_latentsr7   &   s¥   € ð �&°Õ1Õ2Õ3€FØ�¨aÕ/Õ0Õ1€EØ˜a•K€MØ˜A•:€LÜ�i‰i×ÑØ°Õ2°MÐPÜ�I‰I�M‰M˜$Óð ó ÷ �fŒ[×"Ñ"Ó#ð ô " '°1Ô5€JÜ˜Ó  *¸\ÐIÐIr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r	   r/   r#   r
   r   )r   s   "r   r   r   ;   s&   € ÷ Sñ S˜hð S°Cð S¸Hñ Sr   c               ó  € V P                   w  r#rE\        P                  ! V\        P                  R 7      p\        P                  ! V\        P                  R 7      p\        P                  ! \        P
                  ! V^R7      WE34      p\        P                  ! \        P
                  ! V^ R7      WE34      p	VP                  R4      p
V	P                  R4      p\        P                  ! V
P                   V\        P                  R 7      p\        P                  ! V
4      p\        P                  ! WÊW½.^R7      p\        P
                  ! V^ R7      p\        P                  ! WâVP                   ^,          VP                   ^,          34      # ))Údtype)Úaxisr'   )
r   r0   ÚarangeÚint32Úbroadcast_toÚexpand_dimsr   ÚfullÚ
zeros_likeÚstack)r   r/   r   Ú_r   r   Úh_idsÚw_idsÚh_gridÚw_gridÚflat_hÚflat_wÚtÚ	layer_idsÚcoordss   &$             r   r5   r5   ;   s  € Ø#*§=¡=Ñ €J�6Ü�IŠI�f¤B§H¡HÔ-€EÜ�IŠI�e¤2§8¡8Ô,€EÜ�_Š_œRŸ^š^¨E¸Ô:¸V¸OÓL€FÜ�_Š_œRŸ^š^¨E¸Ô:¸V¸OÓL€FØ�^‰^˜BÓ€FØ�^‰^˜BÓ€FÜ
�Š�—‘˜g¬R¯X©XÔ6€AÜ—’˜fÓ%€IÜ�XŠX�q &Ð4¸1Ô=€FÜ�^Š^˜F¨Ô+€FÜ�?Š?˜6°·±¸QµÀÇÁÈaÅÐ#QÓRÐRr   )Ú
__future__r   Úmlx.coreÚcorer0   Úmlx_vlm.models.flux2.constantsr   r   r    r(   r7   r5   r   r   r   Ú<module>rQ      sL   ðÝ "å å 6õRõXõ
ðJð
 ðJð  "ðJð ÷J÷*Sr   