+
    UV-jƒ  ã                  óà   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t ^ RIHtHtHt ^RIHtHt ^RIHt ^R	IHt R
 R ltR R lt]! RR7       ! R R]4      4       tRR R llt. ROtR# )é    )Úannotations)Ú	dataclass)ÚPath)ÚAnyÚClassVarN)ÚImageGenerationModelÚImageGenerationRequestÚImageGenerationResult)ÚBonsaiVariantÚget_variant)Úvalidate_model_layout)ÚBonsaiImagec               ó    € V ^8„  d   QhRRRR/# )é   Úmodelzstr | BonsaiVariant | NoneÚreturnr   © )Úformats   "Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/bonsai/model.pyÚ__annotate__r      s   € ÷  ñ  Ð5ð  ¸-ñ  ó    c                óð   € \        V \        4      '       d   V # V f   \        R4      # \        V 4      p\	        V4      P                  4       pVP                  4       '       d   \        R4      # \        V4      # )NÚternary)Ú
isinstancer   r   Ústrr   Ú
expanduserÚexists)r   Úmodel_sÚ
model_paths   &  r   Úresolve_variantr       sd   € Ü�%œ×'Ò'ØˆØ‚}Ü˜9Ó%Ð%ä�%‹j€GÜ�g“×)Ñ)Ó+€JØ×Ñ×ÒÜ˜9Ó%Ð%ä�wÓÐr   c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   Úboolr   )r   s   "r   r   r   "   s   € ÷ ñ �Cð ˜Dñ r   c                óà   € \        V 4      P                  4       pVP                  4       '       d    \        V4       R #  \        V 4       R #   \         d     R# i ; i  \         d     R# i ; i)TF)r   r   r   r   ÚFileNotFoundErrorr    Ú
ValueError)r   r   s   & r   Úcan_loadr'   "   sj   € Ü�e“×'Ñ'Ó)€JØ×Ñ×Òð	Ü! *Ô-ÙðÜ˜ÔÙøô	 !ô 	Úð	ûô
 ô Úðús"   ±A ¿A ÁAÁAÁA-Á,A-T)Úslotsc                  ó´   € ] tR t^1t$ RtR]R&   RtR]R&   R]R&   R	]R
&   RtR	]R&   ]R R l4       t	R R lt
R R lt]R R l4       t]RR R ll4       tRtR# )ÚBonsaiImageGenerationModelTzClassVar[bool]Úis_image_generation_modelÚbonsaizClassVar[str]Ú
model_typer   Úpipeliner   Úmodel_idÚfamilyc               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   Ú'BonsaiImageGenerationModel.__annotate__:   s   € ÷ *ñ *˜ñ *r   c                	óB   € V P                   P                  P                  # ©N)r.   ÚvariantÚname)Úselfs   &r   r5   Ú"BonsaiImageGenerationModel.variant9   s   € à�}‰}×$Ñ$×)Ñ)Ð)r   c               ó    € V ^8„  d   QhRRRR/# )r   Úpromptr   r   z
int | Noner   )r   s   "r   r   r2   =   s   € ÷ ñ ¨#ð °*ñ r   c                	ór   €  V P                   P                  P                  V4      #   \         d     R # i ; ir4   )r.   Ú	tokenizerÚcount_tokensÚ	Exception)r7   r:   s   &&r   Úcount_prompt_tokensÚ.BonsaiImageGenerationModel.count_prompt_tokens=   s4   € ð	Ø—=‘=×*Ñ*×7Ñ7¸Ó?Ð?øÜô 	Úð	ús   ‚$' §6µ6c               ó    € V ^8„  d   QhRRRR/# )r   Úrequestr	   r   r
   r   )r   s   "r   r   r2   C   s   € ÷ 
ñ 
Ð 6ð 
Ð;Pñ 
r   c                	ó²  € VP                   f   ^ MVP                   pVP                  P                  RR 4      pVP                  P                  RR 4      pV P                  P	                  VP
                  VVP                  VP                  VP                  VP                  VVR7      p\        VVVP                  VP                  VP                  V P                  V P                  V P                  VP                  V P                  VP
                  4      \        P                   ! 4       R,          R\#        V P                  P$                  4      /R7      # )NÚmax_sequence_lengthÚ	tiled_vae)ÚseedÚstepsÚwidthÚheightÚguidancerD   rE   g    eÍÍAr   )ÚarrayrF   rH   rI   rG   r   r0   r5   rJ   Úprompt_tokensÚpeak_memoryÚmetadata)rF   ÚextraÚgetr.   Úgenerate_arrayr:   rG   rH   rI   rJ   r
   r/   r0   r5   r?   ÚmxÚget_peak_memoryr   r   )r7   rB   rF   rD   rE   rK   s   &&    r   ÚgenerateÚ#BonsaiImageGenerationModel.generateC   s  € Ø—L‘LÒ(‰q¨g¯l©lˆØ%Ÿm™m×/Ñ/Ð0EÀtÓLÐØ—M‘M×%Ñ% k°4Ó8ˆ	Ø—‘×,Ñ,Ø�N‰NØØ—-‘-Ø—-‘-Ø—>‘>Ø×%Ñ%Ø 3Øð -ó 	
ˆô %ØØØ—-‘-Ø—>‘>Ø—-‘-Ø—-‘-Ø—;‘;Ø—L‘LØ×%Ñ%Ø×2Ñ2°7·>±>ÓBÜ×*Ò*Ó,¨sÕ2Ø"¤C¨¯©×(@Ñ(@Ó$AÐBô
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# r"   r   )r   s   "r   r   r2   a   s   € ÷ ñ  3ð ¨4ñ r   c                	ó   € \        V4      # r4   )r'   )Úclsr   s   &&r   Úsupports_modelÚ)BonsaiImageGenerationModel.supports_model`   s   € ä˜‹Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Úkwargsr   r   z'BonsaiImageGenerationModel'r   )r   s   "r   r   r2   e   s(   € ÷ ;ñ ;àð;ð ð;ð 
&ñ	;r   c                	ó@  € VP                  R R4      pVf]   \        V\        4      '       dG   \        V4      P	                  4       P                  4       '       d   \        V4      P	                  4       MTp\        P                  ! \        V4      VVP                  RR4      VP                  RR4      VP                  RR4      VP                  RR4      VP                  RR4      VP                  R	R
4      VP                  RR4      R7	      pV ! V\        V4      R7      # )r   NÚdownloadTÚtokenÚevict_text_encoderÚevict_transformerFÚbucketed_seq_lenrE   ÚautorD   i   )r   r^   r_   r`   ra   rb   rE   rD   )r.   r/   )	Úpopr   r   r   r   r   r   Úfrom_pretrainedr    )rX   r   r\   Úmodel_path_argr   r.   s   &&,   r   Úfrom_model_idÚ(BonsaiImageGenerationModel.from_model_idd   s÷   € ð  Ÿ™ L°$Ó7ˆð Ò&Ü˜u¤c×*Ò*Ü˜“K×*Ñ*Ó,×3Ñ3×5Ò5ô	 �‹K×"Ñ"Ô$ð  ð 	ô ×.Ò.Ü˜EÓ"Ø!Ø—Z‘Z 
¨DÓ1Ø—*‘*˜W dÓ+Ø%Ÿz™zÐ*>ÀÓEØ$Ÿj™jÐ)<¸eÓDØ#ŸZ™ZÐ(:¸EÓBØ—j‘j ¨fÓ5Ø &§
¡
Ð+@À#Ó Fô

ˆñ ˜H¬s°5«zÔ:Ð:r   r   N©zbonsai-ternary)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r+   Ú__annotations__r-   r0   Úpropertyr5   r?   rT   ÚclassmethodrY   rg   Ú__static_attributes__r   r   r   r*   r*   1   sp   ‡ à04Ð˜~Ó4Ø (€J�Ó(ØÓØƒMØ€FˆCÓàô*ó ð*õõ
ð: ôó ðð ö;ó ô;r   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'   € ÷ Eñ E�ð E°#ð EÐ:Tñ Er   c                ó0   € \         P                  ! V 3/ VB # r4   )r*   rg   )r   r\   s   &,r   Úloadrt   ‚   s   € Ü%×3Ò3°EÑD¸VÑDÐDr   ri   )r*   r'   rt   r    )Ú
__future__r   Údataclassesr   Úpathlibr   Útypingr   r   Úmlx.coreÚcorerR   Úmlx_vlm.generate.imager   r	   r
   Úconfigr   r   r^   r   r.   r   r    r'   r*   rt   Ú__all__r   r   r   Ú<module>r~      se   ðÝ "å !Ý ß  å ÷ñ ÷ /Ý +Ý !õ õñ �ÔôM;Ð!5ó M;ó ðM;÷`Eò‚r   