+
    UV-j  ã                  ó\  € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHtHtH	t	 ^ RI
Ht ^ RIHt ^ RIHtHtHtHt ^RIHtHtHtHtHtHtHtHt ]! R	R
7       ! R R4      4       t ! R R]4      t]! ^€R7      R R l4       tR R ltR R lt R R lt!R R lt"R R lt#RRRR/R R llt$. R Ot%R# )!é    )ÚannotationsN)ÚSequence)Ú	dataclassÚfieldÚreplace)Ú	lru_cache)ÚPath)ÚAnyÚClassVarÚLiteralÚProtocol)ÚDEFAULT_IMAGE_FORMATÚDEFAULT_IMAGE_GUIDANCEÚDEFAULT_IMAGE_STEPSÚImageGenerationResultÚ_local_image_model_typesÚ_model_type_from_idÚ_normalize_model_typeÚ_resolve_image_model_pathT)Úslotsc                  ó¨   € ] tR t^t$ R]R&   R]R&   RtR]R&   ]tR]R	&   RtR]R
&   Rt	R]R&   ]
tR]R&   ]tR]R&   ]! ]R7      tR]R&   R R ltRtR# )ÚImageEditRequestÚstrÚpromptztuple[str | Path, ...]Úimage_pathsNz
int | NoneÚseedÚintÚstepsÚwidthÚheightÚfloatÚguidancezLiteral['png']Úoutput_format)Údefault_factoryzdict[str, Any]Úextrac               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚNone© )Úformats   "Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/generate/edit_image.pyÚ__annotate__ÚImageEditRequest.__annotate__#   s   € ÷ 7ñ 7˜tñ 7ó    c                	ó®   € \        V P                  \        \        34      '       d   V P                  3V n        R # \	        V P                  4      V n        R # ©N)Ú
isinstancer   r   r	   Útuple)Úselfs   &r,   Ú__post_init__ÚImageEditRequest.__post_init__#   s=   € Ü�d×&Ñ&¬¬d¨×4Ò4Ø $× 0Ñ 0Ð2ˆDÖä$ T×%5Ñ%5Ó6ˆDÖr/   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   r   r   r   r    r   r"   r   r#   r   Údictr%   r5   Ú__static_attributes__r*   r/   r,   r   r      sb   ‡ àƒKØ'Ó'Ø€Dˆ*ÓØ$€Eˆ3Ó$Ø€Eˆ:ÓØ€FˆJÓØ,€HˆeÓ,Ø$8€M�>Ó8Ù!°$Ô7€Eˆ>Ó7÷7ñ 7r/   r   c                  óx   € ] tR t^*t$ R]R&   R]R&   R]R&   R]R&   ]R R	 l4       t]R
 R l4       tR R ltRt	R# )ÚImageEditModelzClassVar[bool]Úis_image_edit_modelzClassVar[str]Ú
model_typer   Úmodel_idÚfamilyc               ó    € V ^8„  d   QhRRRR/# )r'   Úmodelr   r(   Úboolr*   )r+   s   "r,   r-   ÚImageEditModel.__annotate__1   s   € ×4Ñ4 3Ð4¨4Ñ4r/   c                	ó   € R # r1   r*   )ÚclsrE   s   &&r,   Úsupports_modelÚImageEditModel.supports_model0   s   € Ù14r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rE   r   Úkwargsr
   r(   z'ImageEditModel'r*   )r+   s   "r,   r-   rG   4   s   € ×NÑN #ÐN°ÐNÐ9IÑNr/   c                	ó   € R # r1   r*   )rI   rE   rM   s   &&,r,   Úfrom_model_idÚImageEditModel.from_model_id3   s   € ÙKNr/   c               ó    € V ^8„  d   QhRRRR/# )r'   Úrequestr   r(   r   r*   )r+   s   "r,   r-   rG   6   s   € ×KÑKÐ,ÐKÐ1FÑKr/   c                	ó   € R # r1   r*   )r4   rR   s   &&r,   ÚeditÚImageEditModel.edit6   s   € Ér/   r*   N)
r7   r8   r9   r:   r;   ÚclassmethodrJ   rO   rT   r=   r*   r/   r,   r?   r?   *   s:   ‡ Ø'Ó'ØÓØƒMØƒKàÜ4ó Ø4àÜNó ØNçKÑKr/   r?   )Úmaxsizec               ó    € V ^8„  d   QhRRRR/# )r'   rA   ú
str | Noner(   útype[Any] | Noner*   )r+   s   "r,   r-   r-   :   s   € ÷ ñ °ð Ð@Pñ r/   c                óˆ  € \        V 4      pVf   R # RV 2pV R2p \        P                  ! V4      p\        T4      P                  4        FF  p\        T\        4      '       g   K  \        TRR4      '       g   K0  \        TRR 4      T8X  g   KD  Tu # 	  R #   \         d   pTP                  Y#09   d    R p?R # h R p?ii ; i)Nzmlx_vlm.models.z.modelr@   FrA   )
r   Ú	importlibÚimport_moduleÚModuleNotFoundErrorÚnameÚvarsÚvaluesr2   ÚtypeÚgetattr)rA   Ú
normalizedÚpackage_nameÚmodule_nameÚmoduleÚexcÚvalues   &      r,   Ú _image_edit_model_class_for_typerj   9   sº   € ä& zÓ2€JØÒÙØ$ Z LÐ1€LØ!�N &Ð)€KðÜ×(Ò(¨Ó5ˆô
 �f“×$Ñ$Ö&ˆä�uœd×#Ô#Ü˜Ð4°e×<Ô<Ü˜˜|¨TÓ2°jÖ@àŠLñ 'ñ øô ô Ø�8‰8˜Ð2Ô2ÝØûðús   �B ÂCÂ#B<Â;B<Â<Cc               ó$   € V ^8„  d   QhRRRRRR/# )r'   rA   rY   rE   r   r(   rZ   r*   )r+   s   "r,   r-   r-   P   s$   € ÷ 
ñ 
Øð
Ø#&ð
àñ
r/   c                ó|   € \        V 4      pVe-   \        VRR4      '       d   VP                  V4      '       d   V# R # )Nr@   F)rj   rc   rJ   )rA   rE   Úmodel_classs   && r,   Ú!_supported_image_edit_model_classrn   P   s>   € ô 3°:Ó>€KàÒÜ�KÐ!6¸×>Ò>Ø×&Ñ& u×-Ò-àÐÙr/   c               ó    € V ^8„  d   QhRRRR/# )r'   rE   rY   r(   rZ   r*   )r+   s   "r,   r-   r-   ]   s   € ÷ ñ  *ð Ð1Añ r/   c                ó  € V f   R # \        V 4      P                  4       pVP                  4       '       d   \        \	        V4      4      MRp\        V 4      .VO F+  p\        V4      pVf   K  \        VRR4      '       g   K)  Vu # 	  R # )Nr@   Fr*   )r	   Ú
expanduserÚexistsr   r   r   rj   rc   )rE   Ú
model_pathÚlocal_model_typesrA   rm   s   &    r,   Úimage_edit_model_classru   ]   sŠ   € Ø‚}Ùä�e“×'Ñ'Ó)€Jà5?×5FÑ5F×5HÒ5HÔ ¤ Z£Ô1Èbð ô +¨5Ó1ÐFÐ4EÓFˆ
Ü6°zÓBˆØÔ"¤wØÐ.°÷(
ô (
ð Òñ Gñ r/   c               ó    € V ^8„  d   QhRRRR/# )r'   rE   rY   r(   rF   r*   )r+   s   "r,   r-   r-   o   s   € ÷ ñ ˜zð ¨dñ r/   c                óp   € V f   R# . \        V 4      O\        V 4      N F  p\        W4      f   K   R# 	  R# )NFT)r   r   rn   )rE   rA   s   & r,   r@   r@   o   s>   € Ø‚}ÙàTÔ0°Ó7ÐTÔ9LÈUÓ9SÓTˆ
Ü,¨ZÓ?ÔKÚñ Uñ r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rE   rY   rM   r
   r(   r?   r*   )r+   s   "r,   r-   r-   y   s+   € ÷ 3Cñ 3CØð3Càð3Cð ñ3Cr/   c                ó  € V f   \        R4      hVP                  RR4      pVP                  RR 4      p\        \        V 4      4      p\	        V 4      P                  4       pVP                  4       '       g/   Ve+   \        VRR4      '       d   VP                  ! V 3RVRV/VB #  \        V VVR7      pTe   \        \        T4      4      MR
pR p. TO\        T 4      N F)  p	\        T	4      pTf   K  \        TRR4      '       g   K)   M	  Tf   TpTe*   Te   TP                  RT4       TP                  ! T 3/ TB # \        RT  R	24      h  \         d/    Te)   \        TRR4      '       d   TP                  ! T 3/ TB u # h i ; i)Nz"Image edit model must be specifiedÚforce_downloadFÚrevisionr@   )r{   rz   rs   zImage edit model z is not supportedr*   )Ú
ValueErrorÚpoprj   r   r	   rq   rr   rc   rO   r   Ú	Exceptionr   r   Ú
setdefault)
rE   rM   rz   r{   Úalias_model_classrs   Úresolved_pathrt   rm   rA   s
   &,        r,   Úload_image_edit_modelr‚   y   sÏ  € ð ‚}ÜÐ=Ó>Ð>Ø—Z‘ZÐ 0°%Ó8€NØ�z‰z˜* dÓ+€HÜ8Ô9LÈUÓ9SÓTÐÜ�e“×'Ñ'Ó)€Jà×Ñ×ÒØÒ)ÜÐ%Ð'<¸e×DÒDà ×.Ò.Øñ
à)ð
ð ð
ð ñ	
ð 	
ðÜ1ØØØ)ô
ˆð Ò$ô 	!¤ ]Ó!3Ô4àð ð
 €KØFÐ)ÐFÔ+>¸uÓ+EÓFˆ
Ü6°zÓBˆØÔ"¤wØÐ.°÷(
ô (
ñ ñ Gð ÒØ'ˆØÒØÒ$Ø×Ñ˜l¨MÔ:Ø×(Ò(¨Ñ9°&Ñ9Ð9Ü
Ð(¨¨Ð/@ÐAÓ
BÐBøô1 ô ØÒ(¬WØÐ4°e÷.
ò .
ð %×2Ò2°5ÑC¸FÑCÒCØðús   Â&E Å5FÆFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r'   r   r   r   zSequence[str | Path]rM   r
   r(   r   r*   )r+   s   "r,   r-   r-   ¯   s2   € ÷ ñ Øðð &ðð ð	ð
 ñr/   c          	     óD  € 0 RmpVP                  4        UUu/ uF  w  rEWC9   g   K  WEbK  	  ppp\        VP                  R/ 4      ;'       g    / 4      pVP                  4        F  w  rEWC9  g   K  Vf   K  WWV&   K  	  WvR&   \        RRV R\	        V4      /VB # u uppi )r   r%   r   r   >   r   r%   r   r   r    r"   r#   r*   )Úitemsr<   r}   r   r3   )r   r   rM   Ú	supportedÚkeyri   Úrequest_kwargsr%   s   &$,     r,   Ú_request_from_promptr‰   ¯   s­   € ò€Ið 4:·<±<´>ÔV±>¡Z SÀSÑEU”j�c’j±>€NÑVÜ�×#Ñ# G¨RÓ0×6Ð6°BÓ7€EØ—l‘l–n‰
ˆØÖ EÔ$5Ø�#‹Jñ %ð $�7ÑÜñ ØðÜ#(¨Ó#5ðØ9Gñð ùó Ws
   ˜
B§Br   Úoutput_pathc               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r'   rE   r?   rR   zImageEditRequest | strr   zSequence[str | Path] | NonerŠ   zstr | Path | NonerM   r
   r(   r   r*   )r+   s   "r,   r-   r-   É   sD   € ÷ ñ Øðà#ðð -ð	ð
 #ðð ðð ñr/   c               ó"  € \        V\        4      '       d   Vf   \        R4      h\        V3RV/VB pMbV'       d[   \	        VP
                  4      pTP                  VP                  4        UUu/ uF  w  rgVf   K  WgbK  	  upp4       \        WR7      pVP                  '       g   \        R4      hVP                  f"   \        V\        P                  ! R4      R7      pV P                  V4      pVe   VP                  V4       V# u uppi )Nz8image_paths are required when request is a prompt stringr   )r%   z-At least one reference image path is required)r   l        )r2   r   r|   r‰   r<   r%   Úupdater…   r   r   r   ÚrandomÚ	randrangerT   Úsave)	rE   rR   r   rŠ   rM   r%   r‡   ri   Údatas	   &&$$,    r,   Ú
edit_imager’   É   sß   € ô �'œ3×ÒØÒÜÐWÓXÐXÜ& wÑR¸KÐRÈ6ÑR‰ß	Ü�W—]‘]Ó#ˆØ�‰°6·<±<´>ÔW±>¡Z SÀU”j�c’j±>ÒWÔXÜ˜'Ô/ˆà××ÐÜÐHÓIÐIØ‡|�|ÒÜ˜'¬×(8Ò(8¸Ó(?Ô@ˆà�:‰:�gÓ€DØÒØ�	‰	�+ÔØ€Kùó Xs   Á0D
Á=D
)r?   r   r’   ru   r@   r‚   )&Ú
__future__r   r\   rŽ   Úcollections.abcr   Údataclassesr   r   r   Ú	functoolsr   Úpathlibr	   Útypingr
   r   r   r   Úimager   r   r   r   r   r   r   r   r   r?   rj   rn   ru   r@   r‚   r‰   r’   Ú__all__r*   r/   r,   Ú<module>r›      s²   ðÝ "ã Û Ý $ß 1Ñ 1Ý Ý ß 3Ó 3÷	÷ 	ó 	ñ �Ô÷7ð 7ó ð7ô$L�Xô Lñ �3Ôôó ðõ,
õõ$õ3Cõlð4ð 04ð	ð
 &*÷ò8‚r/   