+
    UV-jŒ!  ã                  óV  € ^ 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 ^ RIHtHtHt ^RIHtHtHt ^R	IHt ^R
IHtHt R R ltRR/R R lltR R ltR R lt]! RR7       ! R R]4      4       t ]! RR7       ! R R]4      4       t!RR R llt"R R R llt#. R!Ot$R# )"é    )Úannotations)Ú	dataclass)ÚPath)ÚAnyÚClassVarN)ÚImageEditModelÚImageEditRequest)ÚImageGenerationModelÚImageGenerationRequestÚImageGenerationResult)ÚFlux2VariantÚget_variantÚvariant_from_local_path)Úvalidate_model_layout)Ú
Flux2ImageÚFlux2ImageEditc               ó    € V ^8„  d   QhRRRR/# )é   Úmodelzstr | Flux2Variant | NoneÚreturnr   © )Úformats   "Úk/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/flux2/model.pyÚ__annotate__r      s   € ÷  ñ  Ð4ð  ¸ñ  ó    c                óð   € \        V \        4      '       d   V # V f   \        R4      # \        V 4      p\	        V4      P                  4       pVP                  4       '       d   \        V4      # \        V4      # )Núflux2-klein-4b)Ú
isinstancer   r   Ústrr   Ú
expanduserÚexistsr   )r   Úmodel_sÚ
model_paths   &  r   Úresolve_variantr$      se   € Ü�%œ×&Ò&ØˆØ‚}ÜÐ+Ó,Ð,ä�%‹j€GÜ�g“×)Ñ)Ó+€JØ×Ñ×ÒÜ& zÓ2Ð2ä�wÓÐr   Úrequire_editFc               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r%   Úboolr   r   )r   s   "r   r   r   #   s!   € ÷ ñ �Sð ¨4ð ¸Dñ r   c               ór  € \        V 4      P                  4       pVP                  4       '       d6    \        V4       \	        V4      pV'       d   VP
                  '       g   R # R#  \        V 4      pV'       d   VP
                  '       g   R # R#   \        \        3 d     R # i ; i  \         d     R # i ; i)FT)	r   r    r!   r   r   Úsupports_editÚFileNotFoundErrorÚ
ValueErrorr$   )r   r%   r#   Úvariants   &$  r   Ú	_can_loadr-   #   s�   € Ü�e“×'Ñ'Ó)€JØ×Ñ×Òð	Ü! *Ô-Ü-¨jÓ9ˆGß G×$9×$9Ð$9ÙÙðÜ! %Ó(ˆß × 5× 5Ð 5ÙÙøô "¤:Ð.ô 	Úð	ûô ô Úðús#   ±/B Á&$B' ÂB$Â#B$Â'B6Â5B6c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   r'   r   )r   s   "r   r   r   7   s   € ÷ ñ �Cð ˜Dñ r   c                ó   € \        V 4      # ©N©r-   ©r   s   &r   Úcan_loadr4   7   s   € Ü�UÓÐr   c               ó    € V ^8„  d   QhRRRR/# r/   r   )r   s   "r   r   r   ;   s   € ÷ /ñ /�Cð /˜Dñ /r   c                ó   € \        V R R7      # )T)r%   r2   r3   s   &r   Úcan_editr7   ;   s   € Ü�U¨Ô.Ð.r   T)Úslotsc                  ó´   € ] tR t^?t$ 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# )ÚFlux2ImageGenerationModelTúClassVar[bool]Úis_image_generation_modelÚflux2úClassVar[str]Ú
model_typer   Úpipeliner   Úmodel_idÚfamilyc               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   Ú&Flux2ImageGenerationModel.__annotate__H   ó   € ÷ *ñ *˜ñ *r   c                	óB   € V P                   P                  P                  # r1   ©r@   r,   Úname©Úselfs   &r   r,   Ú!Flux2ImageGenerationModel.variantG   ó   € à�}‰}×$Ñ$×)Ñ)Ð)r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úpromptr   r   z
int | Noner   )r   s   "r   r   rE   K   ó   € ÷ ñ ¨#ð °*ñ r   c                	ór   €  V P                   P                  P                  V4      #   \         d     R # i ; ir1   ©r@   Ú	tokenizerÚcount_tokensÚ	Exception©rK   rP   s   &&r   Úcount_prompt_tokensÚ-Flux2ImageGenerationModel.count_prompt_tokensK   ó4   € ð	Ø—=‘=×*Ñ*×7Ñ7¸Ó?Ð?øÜô 	Úð	úó   ‚$' §6µ6c               ó    € V ^8„  d   QhRRRR/# )r   Úrequestr   r   r   r   )r   s   "r   r   rE   Q   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RRR	/R
7      # )NÚmax_sequence_lengthÚ	tiled_vae©ÚseedÚstepsÚwidthÚheightÚguidancer_   r`   ç    eÍÍAr#   ÚarchitectureÚdenseÚvae_variantÚfull©Úarrayrb   rd   re   rc   r   rB   r,   rf   Úprompt_tokensÚpeak_memoryÚmetadata)rb   ÚextraÚgetr@   Úgenerate_arrayrP   rc   rd   re   rf   r   rA   rB   r,   rX   ÚmxÚget_peak_memoryr   r#   ©rK   r]   rb   r_   r`   rm   s   &&    r   ÚgenerateÚ"Flux2ImageGenerationModel.generateQ   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 $§-¡-×":Ñ":Ó;Ø Ø˜vðô
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# r/   r   )r   s   "r   r   rE   s   ó   € ÷ ñ  3ð ¨4ñ r   c                	ó   € \        V4      # r1   )r4   ©Úclsr   s   &&r   Úsupports_modelÚ(Flux2ImageGenerationModel.supports_modelr   ó   € ä˜‹Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Úkwargsr   r   z'Flux2ImageGenerationModel'r   )r   s   "r   r   rE   w   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      VP                  RR4      VP                  RR4      R7      pV ! V\        V4      R7      # )r#   NÚdownloadTÚtokenÚrevisionÚforce_downloadFÚevict_text_encoderÚevict_transformerÚbucketed_seq_lenr`   Úautor_   é   ©
r#   r„   r…   r†   r‡   rˆ   r‰   rŠ   r`   r_   ©r@   rA   )	Úpopr   r   r   r    r!   r   Úfrom_pretrainedr$   )r}   r   r‚   Úmodel_path_argr#   r@   s   &&,   r   Úfrom_model_idÚ'Flux2ImageGenerationModel.from_model_idv   s  € ð  Ÿ™ L°$Ó7ˆð Ò&Ü˜u¤c×*Ò*Ü˜“K×*Ñ*Ó,×3Ñ3×5Ò5ô	 �‹K×"Ñ"Ô$ð  ð 	ô ×-Ò-Ü˜EÓ"Ø!Ø—Z‘Z 
¨DÓ1Ø—*‘*˜W dÓ+Ø—Z‘Z 
¨DÓ1Ø!Ÿ:™:Ð&6¸Ó>Ø%Ÿz™zÐ*>ÀÓEØ$Ÿj™jÐ)<¸eÓDØ#ŸZ™ZÐ(:¸DÓAØ—j‘j ¨fÓ5Ø &§
¡
Ð+@À#Ó Fô
ˆñ ˜H¬s°5«zÔ:Ð:r   r   N©r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r<   Ú__annotations__r?   rB   Úpropertyr,   rX   rw   Úclassmethodr~   r’   Ú__static_attributes__r   r   r   r:   r:   ?   sq   ‡ à04Ð˜~Ó4Ø '€J�Ó'ØÓØƒMØ€FˆCÓàô*ó ð*õõ
ðB ôó ðð ö;ó ô;r   r:   c                  ó´   € ] tR t^–t$ 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# )ÚFlux2ImageEditModelTr;   Úis_image_edit_modelr=   r>   r?   r   r@   r   rA   rB   c               ó   € V ^8„  d   QhRR/# rD   r   )r   s   "r   r   Ú Flux2ImageEditModel.__annotate__Ÿ   rF   r   c                	óB   € V P                   P                  P                  # r1   rH   rJ   s   &r   r,   ÚFlux2ImageEditModel.variantž   rM   r   c               ó    € V ^8„  d   QhRRRR/# rO   r   )r   s   "r   r   r¡   ¢   rQ   r   c                	ór   €  V P                   P                  P                  V4      #   \         d     R # i ; ir1   rS   rW   s   &&r   rX   Ú'Flux2ImageEditModel.count_prompt_tokens¢   rZ   r[   c               ó    € V ^8„  d   QhRRRR/# )r   r]   r	   r   r   r   )r   s   "r   r   r¡   ¨   s   € ÷ "
ñ "
Ð,ð "
Ð1Fñ "
r   c                	óV  € 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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RRR	R
\+        VP                  4      RV P                  P                  P,                  /R7      # )Nr_   r`   ra   rg   r#   rh   ri   rj   rk   Úreference_countÚuses_reference_kv_cacherl   )rb   rq   rr   r@   Ú
edit_arrayrP   Úimage_pathsrc   rd   re   rf   r   ÚshaperA   rB   r,   rX   rt   ru   r   r#   Úlenrª   rv   s   &&    r   ÚeditÚFlux2ImageEditModel.edit¨   sO  € Ø—L‘LÒ(‰q¨g¯l©lˆØ%Ÿm™m×/Ñ/Ð0EÀtÓLÐØ—M‘M×%Ñ% k°4Ó8ˆ	Ø—‘×(Ñ(Ø�N‰NØ×ÑØØ—-‘-Ø—-‘-Ø—>‘>Ø×%Ñ%Ø 3Øð )ó 

ˆô %ØØØ—+‘+˜a•.Ø—;‘;˜q•>Ø—-‘-Ø—-‘-Ø—;‘;Ø—L‘LØ×%Ñ%Ø×2Ñ2°7·>±>ÓBÜ×*Ò*Ó,¨sÕ2àœc $§-¡-×":Ñ":Ó;Ø Ø˜vØ!¤3 w×':Ñ':Ó#;Ø)¨4¯=©=×+@Ñ+@×+XÑ+Xðô
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# r/   r   )r   s   "r   r   r¡   Í   rz   r   c                	ó   € \        V4      # r1   )r7   r|   s   &&r   r~   Ú"Flux2ImageEditModel.supports_modelÌ   r€   r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r‚   r   r   z'Flux2ImageEditModel'r   )r   s   "r   r   r¡   Ñ   s(   € ÷ ;ñ ;àð;ð ð;ð 
ñ	;r   c                	óÜ  € \        V4      pVP                  '       g   \        VP                   R 24      h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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      VP	                  RR4      VP	                  RR4      R7      pV ! V\        V4      R7      # )z does not support image editingr#   Nr„   Tr…   r†   r‡   Frˆ   r‰   rŠ   r`   r‹   r_   rŒ   r�   rŽ   )r$   r)   r+   Úrepo_idr�   r   r   r   r    r!   r   r�   )r}   r   r‚   r,   r‘   r#   r@   s   &&,    r   r’   Ú!Flux2ImageEditModel.from_model_idÐ   s=  € ô " %Ó(ˆØ×$×$Ð$Ü §¡Ð0Ð0OÐPÓQÐQØŸ™ L°$Ó7ˆð Ò&Ü˜u¤c×*Ò*Ü˜“K×*Ñ*Ó,×3Ñ3×5Ò5ô	 �‹K×"Ñ"Ô$ð  ð 	ô "×1Ò1ØØ!Ø—Z‘Z 
¨DÓ1Ø—*‘*˜W dÓ+Ø—Z‘Z 
¨DÓ1Ø!Ÿ:™:Ð&6¸Ó>Ø%Ÿz™zÐ*>ÀÓEØ$Ÿj™jÐ)<¸eÓDØ#ŸZ™ZÐ(:¸DÓAØ—j‘j ¨fÓ5Ø &§
¡
Ð+@À#Ó Fô
ˆñ ˜H¬s°5«zÔ:Ð:r   r   N©zflux2-klein-9b-kv)r•   r–   r—   r˜   rŸ   r™   r?   rB   rš   r,   rX   r¯   r›   r~   r’   rœ   r   r   r   rž   rž   –   sq   ‡ à*.Ð˜Ó.Ø '€J�Ó'ØÓØƒMØ€FˆCÓàô*ó ð*õõ"
ðH ôó ðð ö;ó ô;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'   € ÷ Dñ D�ð D°#ð DÐ:Sñ Dr   c                ó0   € \         P                  ! V 3/ VB # r1   )r:   r’   ©r   r‚   s   &,r   Úloadr¼   ó   s   € Ü$×2Ò2°5ÑC¸FÑCÐCr   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"   € ÷ >ñ >�Sð >¸#ð >ÐBUñ >r   c                ó0   € \         P                  ! V 3/ VB # r1   )rž   r’   r»   s   &,r   Ú	load_editr¿   ÷   s   € Ü×,Ò,¨UÑ=°fÑ=Ð=r   r”   r¸   )rž   r:   r7   r4   r¼   r¿   r$   )%Ú
__future__r   Údataclassesr   Úpathlibr   Útypingr   r   Úmlx.coreÚcorert   Úmlx_vlm.generate.edit_imager   r	   Úmlx_vlm.generate.imager
   r   r   Úconfigr   r   r   r„   r   r@   r   r   r$   r-   r4   r7   r:   rž   r¼   r¿   Ú__all__r   r   r   Ú<module>rÊ      s¦   ðÝ "å !Ý ß  å ç H÷ñ ÷ GÑ FÝ +ß 0õ ð°%÷ õ(õ/ñ �ÔôS;Ð 4ó S;ó ðS;ñl �ÔôY;˜.ó Y;ó ðY;÷xD÷>ò‚r   