+
    UV-jÅR  ã                  ó"  € ^ RI Ht ^ RIt^ RIt^ RI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 ^ RIHtHtHtHt ^ RIHt ^ RIt^ R	IHt ^R
IH t  Rt!^t"Rt#Rt$Rt%RUt&RVt']RW,          t(]RX,          t)]R,          t*]R,          t+]R,          t,]
! RR7       ! R R4      4       t-]
! RR7       ! R R4      4       t. ! R R]4      t/R R lt0R R lt1R R lt2R  R! lt3R" R# lt4R$ R% lt5R& R' lt6R( R) lt7R* R+ lt8R, R- lt9]! ^€R.7      R/ R0 l4       t:R1 R2 lt;R3RR4R5/R6 R7 llt<R8 R9 lt=R: R; lt>R< R= lt?R> R? lt@R@ RA ltARB]%/RC RD lltBRE RF ltCRB]%RGRRHR/RI RJ lltDRK RL ltERM RN ltFRO RP ltGRQ RR ltHRS RT ltI. RYOtJR# )Zé    )ÚannotationsN)ÚSequence)Ú	dataclassÚfieldÚreplace)Ú	lru_cache)ÚBytesIO)ÚPath)ÚAnyÚClassVarÚLiteralÚProtocol)ÚImage)Úget_model_pathÚ512x512g      ð?ÚpngÚgenerateÚHWCÚuint8_0_255ÚRGBT)Úslotsc                  ó’   € ] tR t^6t$ 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tR# )ÚImageGenerationRequestÚstrÚpromptNú
int | NoneÚseedÚintÚstepsi   ÚwidthÚheightÚfloatÚguidanceúLiteral['png']Úoutput_format©Údefault_factoryúdict[str, Any]Úextra© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   ÚDEFAULT_IMAGE_STEPSr   r    r!   ÚDEFAULT_IMAGE_GUIDANCEr#   ÚDEFAULT_IMAGE_FORMATr%   r   Údictr)   Ú__static_attributes__r*   ó    Úg/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/generate/image.pyr   r   6   sR   ‡ àƒKØ€Dˆ*ÓØ$€Eˆ3Ó$Ø€Eˆ3ÓØ€FˆCÓØ,€HˆeÓ,Ø$8€M�>Ó8Ù!°$Ô7€Eˆ>×7r5   r   c                  óF  € ] tR t^Bt$ R]R&   R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   ]	t
R]R&   RtR]R&   RtR]R&   RtR]R &   ]! ]R!7      tR"]R#&   R$ R% lt]R& R' l4       tR( R) ltR* R+ ltR, R- ltR. R/ ltR0tR# )1ÚImageGenerationResultzmx.arrayÚarrayr   r   r    r!   r   r   ÚmodelÚfamilyr"   r#   Nú
str | NoneÚvariantr   Úprompt_tokensg        Úpeak_memoryúPath | NoneÚpathr$   r%   r   ÚImageArrayLayoutÚlayoutr   ÚImageArrayRangeÚvalue_ranger   ÚImageColorSpaceÚcolor_spacer&   r(   Úmetadatac               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚNoner*   )Úformats   "r6   Ú__annotate__Ú"ImageGenerationResult.__annotate__V   s   € ÷ ñ ˜tñ r5   c                	óF   € \         P                  ! V P                  4       R # ©N)ÚmxÚevalr9   ©Úselfs   &r6   Ú__post_init__Ú#ImageGenerationResult.__post_init__V   s   € Ü
�Š�—
‘
Ör5   c               ó   € V ^8„  d   QhRR/# ©rJ   rK   zImage.Imager*   )rM   s   "r6   rN   rO   Z   s   € ÷ ñ �{ñ r5   c                	ó"   € V P                  4       # rQ   )Úto_pilrT   s   &r6   ÚimageÚImageGenerationResult.imageY   s   € à�{‰{‹}Ðr5   c               ó   € V ^8„  d   QhRR/# rY   r*   )rM   s   "r6   rN   rO   ]   s   € ÷ 5ñ 5˜ñ 5r5   c                	óþ   € V P                   R 8w  g   V P                  R8w  d)   \        RV P                   : RV P                  : R24      h\        P                  ! \
        P                  ! V P                  4      4      # )r   r   zCannot convert image layout=z color_space=z to PIL)rC   rG   Ú
ValueErrorr   Ú	fromarrayÚnpr9   rT   s   &r6   r[   ÚImageGenerationResult.to_pil]   si   € Ø�;‰;˜%Ô 4×#3Ñ#3°uÔ#<ÜØ.¨t¯{©{©oð >Ø#×/Ñ/Ñ2°'ð;óð ô �ŠœrŸxšx¨¯
©
Ó3Ó4Ð4r5   c               ó   € V ^8„  d   QhRR/# )rJ   rK   Úbytesr*   )rM   s   "r6   rN   rO   e   s   € ÷ !ñ !˜eñ !r5   c                	óx   € \        4       pV P                  4       P                  VR R7       VP                  4       # ©ÚPNG)rM   )r	   r[   ÚsaveÚgetvalue)rU   Úbuffers   & r6   Úto_png_bytesÚ"ImageGenerationResult.to_png_bytese   s/   € Ü“ˆØ�‰‹×Ñ˜6¨%ÐÔ0Ø�‰Ó Ð r5   c               ó   € V ^8„  d   QhRR/# )rJ   rK   r   r*   )rM   s   "r6   rN   rO   j   s   € ÷ Eñ E˜Sñ Er5   c                	óh   € \         P                  ! V P                  4       4      P                  R 4      # ©Úascii)Úbase64Ú	b64encoderl   ÚdecoderT   s   &r6   Úto_b64_jsonÚ!ImageGenerationResult.to_b64_jsonj   s'   € Ü×Ò × 1Ñ 1Ó 3Ó4×;Ñ;¸GÓDÐDr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   rA   z
str | PathrK   r
   r*   )rM   s   "r6   rN   rO   m   s   € ÷ ñ ˜ð ¨ñ r5   c                	ó¼   € \        V4      P                  4       pVP                  P                  R R R7       V P	                  4       P                  V4       W n        V# )T)ÚparentsÚexist_ok)r
   Ú
expanduserÚparentÚmkdirr[   ri   rA   )rU   rA   Úoutput_paths   && r6   ri   ÚImageGenerationResult.savem   sL   € Ü˜4“j×+Ñ+Ó-ˆØ×Ñ× Ñ ¨¸Ð Ô=Ø�‰‹×Ñ˜;Ô'ØŒ	ØÐr5   )rA   )r+   r,   r-   r.   r/   r=   r>   r?   rA   r2   r%   rC   rE   rG   r   r3   rH   rV   Úpropertyr\   r[   rl   ru   ri   r4   r*   r5   r6   r8   r8   B   s½   ‡ àƒOØ
ƒIØƒJØƒKØƒJØƒJØƒKØƒOØ€GˆZÓØ $€M�:Ó$Ø€K�ÓØ€Dˆ+ÓØ$8€M�>Ó8Ø$€FÐÓ$Ø#0€K�Ó0Ø#(€K�Ó(Ù$°TÔ:€HˆnÓ:õð ôó ðõ5õ!õ
E÷ñ r5   r8   c                  óx   € ] tR t^ut$ 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# )ÚImageGenerationModelzClassVar[bool]Úis_image_generation_modelzClassVar[str]Ú
model_typer   Úmodel_idr;   c               ó    € V ^8„  d   QhRRRR/# )rJ   r:   r   rK   Úboolr*   )rM   s   "r6   rN   Ú!ImageGenerationModel.__annotate__|   s   € ×4Ñ4 3Ð4¨4Ñ4r5   c                	ó   € R # rQ   r*   )Úclsr:   s   &&r6   Úsupports_modelÚ#ImageGenerationModel.supports_model{   s   € Ù14r5   c               ó$   € V ^8„  d   QhRRRRRR/# )rJ   r:   r   Úkwargsr   rK   z'ImageGenerationModel'r*   )rM   s   "r6   rN   rˆ      s   € ×TÑT #ÐT°ÐTÐ9OÑTr5   c                	ó   € R # rQ   r*   )rŠ   r:   rŽ   s   &&,r6   Úfrom_model_idÚ"ImageGenerationModel.from_model_id~   s   € ÙQTr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   Úrequestr   rK   r8   r*   )rM   s   "r6   rN   rˆ   �   s   € ×UÑUÐ 6ÐUÐ;PÑUr5   c                	ó   € R # rQ   r*   )rU   r“   s   &&r6   r   ÚImageGenerationModel.generate�   s   € ÑRUr5   r*   N)
r+   r,   r-   r.   r/   Úclassmethodr‹   r�   r   r4   r*   r5   r6   r‚   r‚   u   s:   ‡ Ø-Ó-ØÓØƒMØƒKàÜ4ó Ø4àÜTó ØTçUÑUr5   r‚   c               ó    € V ^8„  d   QhRRRR/# )rJ   Úvaluer   rK   ztuple[int, int]r*   )rM   s   "r6   rN   rN   „   s   € ÷ ñ �cð ˜oñ r5   c                óä   € V P                  4       P                  R R4      p VP                  R^4      w  r#\        V4      p\        V4      pWE3#   \         d   p\	        RT : 24      ThRp?ii ; i)ô   Ã—ÚxzSize must be WIDTHxHEIGHT, got N)Úlowerr   Úsplitr   r`   )r˜   Ú
normalizedÚwidth_sÚheight_sr    r!   Úexcs   &      r6   Ú
parse_sizer¢   „   sz   € Ø—‘“×&Ñ& t¨SÓ1€JðOØ&×,Ñ,¨S°!Ó4ÑˆÜ�G“ˆÜ�X“ˆð ˆ=Ðøô ô OÜÐ:¸5¹)ÐDÓEÈ3ÐNûðOús   ¢*A ÁA/ÁA*Á*A/c               ó    € V ^8„  d   QhRRRR/# )rJ   r:   r   rK   r*   )rM   s   "r6   rN   rN   �   s   € ÷ "ñ "˜sð " sñ "r5   c           
     ó
  € V P                  4       P                  4       P                  R 4      pV'       g   R# VP                  R ^4      R	,          pVP	                  R^4      ^ ,          pRRRRRRRRRR/P                  W34      # )
Ú/Ú Ú-ÚternaryÚbonsaiÚ2bitzflux.2Úflux2Úkleinéÿÿÿÿ)Ústriprœ   ÚrstripÚrsplitr�   Úget)r:   r…   Únamer„   s   &   r6   Ú_model_type_from_idr³   �   s€   € Ø�{‰{‹}×"Ñ"Ó$×+Ñ+¨CÓ0€HßÙØ�?‰?˜3 Ó" 2Õ&€DØ—‘˜C Ó# AÕ&€Jà�8Ø�Ø�'Ø�Ø�ð÷ 
�cˆ*Ó!ð"r5   c               ó    € V ^8„  d   QhRRRR/# )rJ   r„   ú
Any | NonerK   r<   r*   )rM   s   "r6   rN   rN   ž   s   € ÷ Lñ L jð L°Zñ Lr5   c                óÀ   € V f   R # \        V 4      P                  4       P                  4       P                  RR4      pV'       d   VP	                  4       '       d   V# R # )Nr§   Ú_)r   r®   rœ   r   Úisidentifier)r„   rž   s   & r6   Ú_normalize_model_typer¹   ž   sN   € ØÒÙÜ�Z“×&Ñ&Ó(×.Ñ.Ó0×8Ñ8¸¸cÓB€Jß#¨
×(?Ñ(?×(AÒ(Aˆ:ÐKÀtÐKr5   c               ó$   € V ^8„  d   QhRRRRRR/# )rJ   Ú
candidatesz	list[str]r„   rµ   rK   rL   r*   )rM   s   "r6   rN   rN   ¥   s!   € ÷ &ñ & 	ð &°zð &Àdñ &r5   c                óZ   € \        V4      pVe   W 9  d   V P                  V4       R # R # R # rQ   )r¹   Úappend)r»   r„   rž   s   && r6   Ú_add_model_typer¾   ¥   s-   € Ü& zÓ2€JØÒ *Ô">Ø×Ñ˜*Ö%ñ #?Ñr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   Ú
class_namer   rK   útuple[str, ...]r*   )rM   s   "r6   rN   rN   «   s   € ÷ ñ ¨Sð °_ñ r5   c           	     óô   € \         P                  ! R V 4      p. p\        ^\        V4      ^,           4       F!  p\	        VRP                  VRV 4      4       K#  	  V F  p\	        W$4       K  	  \        V4      # )z [A-Z][a-z0-9]*|[A-Z]+(?=[A-Z]|$)r·   N)ÚreÚfindallÚrangeÚlenr¾   ÚjoinÚtuple)rÀ   Útokensr»   ÚendÚtokens   &    r6   Ú_model_types_from_class_namerÌ   «   sg   € Ü�ZŠZÐ;¸ZÓH€FØ€JÜ�Qœ˜F› a�Ö(ˆÜ˜
 C§H¡H¨V°D°S¨\Ó$:Ö;ñ )ãˆÜ˜
Ö*ñ ä�ÓÐr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   rH   r(   rK   rÁ   r*   )rM   s   "r6   rN   rN   µ   s   € ÷ ñ ¨~ð À/ñ r5   c           
     ó”  a€ . o\        SV P                  R 4      4       SP                  V3R l\        \	        V P                  R4      ;'       g    R4      4       4       4       R FÔ  pV P                  V4      pRp\        V\        4      '       d2   \        V\        4      '       g   V'       d   \	        VR,          4      pMS\        V\        4      '       d>   \	        VP                  R4      ;'       g    VP                  R4      ;'       g    R4      pSP                  V3R l\        V4       4       4       KÖ  	  \        S4      # )r„   c              3  ó:   <"  € T F  pVS9  g   K  Vx € K  	  R # 5irQ   r*   ©Ú.0Ú	candidater»   s   & €r6   Ú	<genexpr>Ú3_image_model_types_from_metadata.<locals>.<genexpr>¸   s(   øé € ð ñ
ˆIð ˜JÑ&÷	 	Š	ó
ùó   ƒ	‘
Ú_class_namer¦   Úclassc              3  ó:   <"  € T F  pVS9  g   K  Vx € K  	  R # 5irQ   r*   rÐ   s   & €r6   rÓ   rÔ   Æ   s"   øé € ð 
áJ�	Ø 
Ñ*÷ ŠIÛJùrÕ   )ÚtransformerÚvaeÚ	schedulerÚtext_encoderr­   )	r¾   r±   ÚextendrÌ   r   Ú
isinstancer   r3   rÈ   )rH   Ú	componentr˜   Úcomponent_classr»   s   &   @r6   Ú _image_model_types_from_metadatará   µ   s  ø€ Ø€JÜ�J §¡¨\Ó :Ô;Ø×Ñô ä5Ü�—‘˜]Ó+×1Ð1¨rÓ2ô
óô ó Iˆ	Ø—‘˜YÓ'ˆØˆÜ�eœX×&Ò&¬z¸%Ä×/EÒ/EÏ%Ü! %¨¥)›n‰OÜ˜œt×$Ò$Ü! %§)¡)¨MÓ":×"VÐ"V¸e¿i¹iÈÓ>P×"VÐ"VÐTVÓWˆOØ×Ñô 
ä9¸/ÔJó
ö 	
ñ Iô �ÓÐr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   rH   r(   rK   zset[str]r*   )rM   s   "r6   rN   rN   Î   s   € ÷ ñ ˜nð °ñ r5   c                óÆ  € \        4       pV P                  R R4       FÀ  p\        V\        4      '       d   VP	                  V4       K,  \        V\
        4      '       g   KD  VP                  R4      ;'       gD    VP                  R4      ;'       g+    VP                  R4      ;'       g    VP                  R4      pVf   K¦  VP	                  \        V4      4       KÂ  	  V# )ÚfilesÚremote_pathrA   Úfilenamer²   r*   )Úsetr±   rÞ   r   Úaddr3   )rH   ÚpathsÚentryrA   s   &   r6   Ú_manifest_pathsrë   Î   s¸   € Ü‹E€EØ—‘˜g rÖ*ˆÜ�eœS×!Ò!Ø�I‰I�eÖÜ˜œt×$Ô$à—	‘	˜-Ó(÷ %ð %Ø—9‘9˜VÓ$÷%ð %à—9‘9˜ZÓ(÷%ð %ð —9‘9˜VÓ$ð	 ð ÔØ—	‘	œ#˜d›)Ö$ñ +ð €Lr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   rH   r(   rK   r<   r*   )rM   s   "r6   rN   rN   ß   s   € ÷ ñ ¨nð Àñ r5   c                óJ   € \        V 4      pR V9   d   RV9   d
   RV9   d   R# R# )z<transformer-packed-mflux/diffusion_pytorch_model.safetensorsz'text_encoder-mlx-4bit/model.safetensorsztokenizer/tokenizer.jsonr©   N)rë   )rH   ré   s   & r6   Ú_image_model_type_from_manifestrî   ß   s*   € Ü˜HÓ%€EàFÈ%ÔOØ5¸Ô>Ø&¨%Ô/áÙr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   rA   r
   rK   zdict[str, Any] | Noner*   )rM   s   "r6   rN   rN   ê   s   € ÷ 6ñ 6˜$ð 6Ð#8ñ 6r5   c                óô   € V P                  4       '       g   R #  \        P                  ! V P                  4       4      p\        T\        4      '       d   T# R #   \        \        P
                  3 d     R # i ; irQ   )ÚexistsÚjsonÚloadsÚ	read_textÚOSErrorÚJSONDecodeErrorrÞ   r3   )rA   r˜   s   & r6   Ú_load_json_filer÷   ê   sb   € Ø�;‰;�=Š=ÙðÜ—
’
˜4Ÿ>™>Ó+Ó,ˆô ˜u¤d×+Ò+ˆ5Ð5°Ð5øô ”T×)Ñ)Ð*ô Úðús   š$A ÁA7Á6A7c               ó    € V ^8„  d   QhRRRR/# )rJ   r:   r   rK   rÁ   r*   )rM   s   "r6   rN   rN   ô   s   € ÷ ñ  Cð ¨Oñ r5   c                óì  € \        V 4      P                  4       pVP                  4       '       g   R# . pR F7  p\        W,          4      pVf   K  \	        V4       F  p\        W%4       K  	  K9  	  \        VR,          4      pVe   \        V\        V4      4       \        VP                  R4      4       F1  p\        V4      pVf   K  \	        V4       F  p\        W%4       K  	  K3  	  \        V4      # )úmodel_index.jsonúmanifest.jsonz*/config.jsonr*   )rú   úconfig.json)
r
   r{   rñ   r÷   rá   r¾   rî   ÚsortedÚglobrÈ   )r:   Úrootr»   ræ   rH   r„   ÚmanifestÚconfig_paths   &       r6   Ú_local_image_model_typesr  ô   sÑ   € Ü�‹;×!Ñ!Ó#€DØ�;‰;�=Š=Øˆ	à€JÛ7ˆÜ" 4¥?Ó3ˆØÔÜ>¸xÖH�
Ü 
Ö7ó Iñ 8ô ˜t oÕ5Ó6€HØÒÜ˜
Ô$CÀHÓ$MÔNä˜dŸi™i¨Ó8Ö9ˆÜ" ;Ó/ˆØÔÜ>¸xÖH�
Ü 
Ö7ó Iñ :ô
 �ÓÐr5   )Úmaxsizec               ó    € V ^8„  d   QhRRRR/# )rJ   r„   r<   rK   útype[Any] | Noner*   )rM   s   "r6   rN   rN     s   € ÷ ñ ¨Jð Ð;Kñ r5   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ƒ   Fr„   )
r¹   Ú	importlibÚimport_moduleÚModuleNotFoundErrorr²   ÚvarsÚvaluesrÞ   ÚtypeÚgetattr)r„   rž   Úpackage_nameÚmodule_nameÚmoduler¡   r˜   s   &      r6   Ú_image_model_class_for_typer    sº   € ä& zÓ2€JØÒÙØ$ Z LÐ1€LØ!�N &Ð)€KðÜ×(Ò(¨Ó5ˆô
 �f“×$Ñ$Ö&ˆä�uœd×#Ô#Ü˜Ð:¸E×BÔBÜ˜˜|¨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/# )rJ   r„   r<   r:   r   rK   r  r*   )rM   s   "r6   rN   rN   #  s$   € ÷ 
ñ 
Øð
Ø#&ð
àñ
r5   c                óz   € \        V 4      pVe,   VP                  '       d   VP                  V4      '       d   V# R # rQ   )r  rƒ   r‹   )r„   r:   Úmodel_classs   && r6   Ú_supported_image_model_classr  #  s:   € ô .¨jÓ9€KàÒØ×1×1Ð1Ø×&Ñ& u×-Ò-àÐÙr5   ÚrevisionÚforce_downloadFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rJ   r:   r   r  r<   r  r‡   rK   r@   r*   )rM   s   "r6   rN   rN   0  s2   € ÷ ñ Øðð ðð ð	ð
 ñr5   c               óœ   € \        V 4      P                  4       pVP                  4       '       d   V# \        V VV\	        \
        4      R 7      # ))r  r  Úallow_patterns)r
   r{   rñ   r   ÚlistÚIMAGE_DOWNLOAD_PATTERNS)r:   r  r  Ú
model_paths   &$$ r6   Ú_resolve_image_model_pathr  0  sJ   € ô �e“×'Ñ'Ó)€JØ×Ñ×ÒØÐÜØØØ%ÜÔ3Ó4ô	ð r5   c               ó    € V ^8„  d   QhRRRR/# )rJ   r:   r   rK   r@   r*   )rM   s   "r6   rN   rN   A  s   € ÷ ñ ¨cð °kñ r5   c                ó˜   € \        V 4      P                  4       pVP                  4       '       d   V# \        V \	        \
        4      R 7      # ))r  )r
   r{   rñ   r   r  Ú IMAGE_METADATA_DOWNLOAD_PATTERNS)r:   r  s   & r6   Ú"_resolve_image_model_metadata_pathr"  A  sB   € Ü�e“×'Ñ'Ó)€JØ×Ñ×ÒØÐÜØÜÔ<Ó=ôð r5   c               ó    € V ^8„  d   QhRRRR/# )rJ   r:   r<   rK   r  r*   )rM   s   "r6   rN   rN   K  s   € ÷ ñ ¨
ð Ð7Gñ r5   c                ó4  € V f   R # \        \        V 4      V 4      pVe   V#  \        V 4      pVe   \	        \        V4      4      MRp. VO\        V 4      N F*  p\        V4      pVf   K  VP                  '       g   K(  Vu # 	  R #   \         d    R p Lhi ; i)Nr*   )r  r³   r"  Ú	Exceptionr  r   r  rƒ   )r:   Úalias_model_classÚresolved_pathÚlocal_model_typesr„   r  s   &     r6   Úimage_generation_model_classr)  K  s·   € Ø‚}Ùä4Ô5HÈÓ5OÐQVÓWÐØÒ$Ø Ð ðÜ:¸5ÓAˆð
 Ò$ô 	!¤ ]Ó!3Ô4àð ð
Ø	ðä˜EÓ"óˆ
ô 2°*Ó=ˆØÔ" {×'L×'LÒ'LØÒññ øô ô ØŠðús   £B ÂBÂBc               ó    € V ^8„  d   QhRRRR/# )rJ   r:   r<   rK   r‡   r*   )rM   s   "r6   rN   rN   g  s   € ÷ ñ  Zð °Dñ r5   c                óp   € V f   R# . \        V 4      O\        V 4      N F  p\        W4      f   K   R# 	  R# )NFT)r  r³   r  )r:   r„   s   & r6   rƒ   rƒ   g  s>   € Ø‚}ÙàTÔ0°Ó7ÐTÔ9LÈUÓ9SÓTˆ
Ü'¨
Ó:ÔFÚñ Uñ r5   c               ó$   € V ^8„  d   QhRRRRRR/# )rJ   r:   r<   rŽ   r   rK   r‚   r*   )rM   s   "r6   rN   rN   q  s+   € ÷ &Iñ &IØð&Iàð&Ið ñ&Ir5   c                óV  € V f   \        R4      hVP                  RR4      pVP                  RR 4      p\        \        V 4      4      p \	        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P                  '       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P                  '       d   TP                  ! T 3/ TB u # h i ; i)
Nz(Image generation model must be specifiedr  Fr  )r  r  r  zImage generation model z is not supportedr*   )r`   Úpopr  r³   r  r%  rƒ   r�   r  r   Ú
setdefault)	r:   rŽ   r  r  r&  r'  r(  r  r„   s	   &,       r6   Úload_image_generation_modelr0  q  sP  € ð ‚}ÜÐCÓDÐDØ—Z‘ZÐ 0°%Ó8€NØ�z‰z˜* dÓ+€HÜ3Ô4GÈÓ4NÓOÐðÜ1ØØØ)ô
ˆð Ò$ô 	!¤ ]Ó!3Ô4àð ð
 €KØFÐ)ÐFÔ+>¸uÓ+EÓFˆ
Ü1°*Ó=ˆØÔ" {×'L×'LÒ'LÙñ Gð ÒØ'ˆØÒØÒ$Ø×Ñ˜l¨MÔ:Ø×(Ò(¨Ñ9°&Ñ9Ð9Ü
Ð.¨u¨gÐ5FÐGÓ
HÐHøô/ ô àÒ)Ø!×;×;Ð;à$×2Ò2°5ÑC¸FÑCÒCØðús   Á	C0 Ã0 D(ÄD(Ä&D(c               ó    € V ^8„  d   QhRRRR/# )rJ   Útaskr<   rK   Ú	ImageTaskr*   )rM   s   "r6   rN   rN   š  s   € ÷ ñ  
ð ¨yñ r5   c                óŠ   € T ;'       g    \         P                  4       P                  4       pVR9  d   \        RV : 24      hV# )r   z-Image task must be 'generate' or 'edit', got >   Úeditr   )ÚDEFAULT_IMAGE_TASKr®   rœ   r`   )r2  rž   s   & r6   Ú_normalize_image_taskr7  š  sD   € Ø×,Ð,Ô,×3Ñ3Ó5×;Ñ;Ó=€JØÐ-Ô-ÜÐHÈÉÐQÓRÐRØÐr5   r2  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rJ   r:   r<   r2  r3  rŽ   r   rK   úImageGenerationModel | Anyr*   )rM   s   "r6   rN   rN   ¡  s2   € ÷ 8ñ 8Øð8ð ð8ð ð	8ð
  ñ8r5   c               ó\   € \        V4      pVR 8X  d   ^RIHp V! V 3/ VB # \        V 3/ VB # )r5  )Úload_image_edit_model)r7  Ú
edit_imager;  r0  )r:   r2  rŽ   r;  s   &$, r6   Úload_image_modelr=  ¡  s8   € ô ! Ó&€DØˆv„~Ý5á$ UÑ5¨fÑ5Ð5Ü& uÑ7°Ñ7Ð7r5   c               ó$   € V ^8„  d   QhRRRRRR/# )rJ   r   r   rŽ   r   rK   r   r*   )rM   s   "r6   rN   rN   ¯  s'   € ÷ Cñ C ð C°ð CÐ8Nñ Cr5   c                ó.  € 0 RmpVP                  4        UUu/ uF  w  r4W29   g   K  W4bK  	  ppp\        VP                  R/ 4      ;'       g    / 4      pVP                  4        F  w  r4W29  g   K  Vf   K  WFV&   K  	  WeR&   \        RRV /VB # u uppi )r   r)   r   >   r   r)   r   r    r!   r#   r%   r*   )Úitemsr3   r.  r   )r   rŽ   Ú	supportedÚkeyr˜   Úrequest_kwargsr)   s   &,     r6   Ú_request_from_promptrD  ¯  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ÑÜ!ÑB¨ÐB°>ÑBÐBùó Ws
   ˜
B§BÚimage_pathsr~   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )rJ   r:   r9  r“   z"ImageGenerationRequest | str | Anyr2  r3  rE  zSequence[str | Path] | Noner~   zstr | Path | NonerŽ   r   rK   r8   r*   )rM   s   "r6   rN   rN   Â  sN   € ÷ 3ñ 3Ø%ð3à/ð3ð ð	3ð
 -ð3ð #ð3ð ð3ð ñ3r5   c               óF  € \        V4      pVR 8X  d¯   ^RIHpHp \        V\        4      '       dƒ   Vf   \        R4      hV! VP                  \        V4      VP                  VP                  VP                  VP                  VP                  VP                  \        VP                  4      R7	      pV! V V3RVRV/VB # \        V\         4      '       d   \#        V3/ VB pMbV'       d[   \        VP                  4      pTP%                  VP'                  4        U	U
u/ uF  w  ršV
f   K  WšbK  	  up
p	4       \)        WR7      pVP                  f"   \)        V\*        P,                  ! R4      R7      pV P/                  V4      pVe   VP1                  V4       V# u up
p	i )	r5  )ÚImageEditRequestr<  zAimage_paths are required when editing from ImageGenerationRequest)	r   rE  r   r   r    r!   r#   r%   r)   rE  r~   )r)   )r   ì        )r7  r<  rH  rÞ   r   r`   r   rÈ   r   r   r    r!   r#   r%   r3   r)   r   rD  Úupdater@  r   ÚrandomÚ	randranger   ri   )r:   r“   r2  rE  r~   rŽ   rH  r<  r)   rB  r˜   Údatas   &&$$$,      r6   Úgenerate_imagerN  Â  st  € ô ! Ó&€DØˆv„~ß<ä�gÔ5×6Ò6ØÒ"Ü ð-óð ñ 'Ø—~‘~Ü! +Ó.Ø—\‘\Ø—m‘mØ—m‘mØ—~‘~Ø ×)Ñ)Ø%×3Ñ3Ü˜7Ÿ=™=Ó)ô
ˆGñ ØØñ
ð $ð
ð $ð	
ð
 ñ
ð 	
ô �'œ3×ÒÜ& wÑ9°&Ñ9‰ß	Ü�W—]‘]Ó#ˆØ�‰°6·<±<´>ÔW±>¡Z SÀU”j�c’j±>ÒWÔXÜ˜'Ô/ˆà‡|�|ÒÜ˜'¬×(8Ò(8¸Ó(?Ô@ˆà�>‰>˜'Ó"€DØÒØ�	‰	�+ÔØ€Kùó Xs   ÄF
Ä,F
c               ó    € V ^8„  d   QhRRRR/# )rJ   r\   ú.Image.Image | mx.array | ImageGenerationResultrK   re   r*   )rM   s   "r6   rN   rN   ø  s   € ÷ ñ ÐLð ÐQVñ r5   c                ó<  € \        V \        4      '       d   V P                  4       # \        V \        P                  4      '       d+   \
        P                  ! \        P                  ! V 4      4      p \        4       pV P                  VR R7       VP                  4       # rg   )rÞ   r8   rl   rR   r9   r   ra   rb   r	   ri   rj   )r\   rk   s   & r6   Úimage_to_png_bytesrR  ø  sj   € Ü�%Ô.×/Ò/Ø×!Ñ!Ó#Ð#Ü�%œŸ™×"Ò"Ü—’¤§¢¨£Ó0ˆÜ‹Y€FØ	‡J�Jˆv˜e€JÔ$Ø�?‰?ÓÐr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   r\   rP  rK   r   r*   )rM   s   "r6   rN   rN     s    € ÷ Gñ GÐKð GÐPSñ Gr5   c                ó^   € \         P                  ! \        V 4      4      P                  R 4      # rp   )rr   rs   rR  rt   )r\   s   &r6   Úimage_to_b64_jsonrU    s$   € Ü×ÒÔ.¨uÓ5Ó6×=Ñ=¸gÓFÐFr5   c               ó    € V ^8„  d   QhRRRR/# )rJ   r   zstr | Sequence[str]rK   r   r*   )rM   s   "r6   rN   rN     s   € ÷ 2ñ 2Ð"5ð 2¸#ñ 2r5   c                ób   € \        V \        4      '       d   V # R P                  R V  4       4      # )Ú c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irQ   )r   )rÑ   Úparts   & r6   rÓ   Ú(_prompt_to_image_text.<locals>.<genexpr>	  s   é € Ð1©& $”C˜—I�I«&ùs   ‚)rÞ   r   rÇ   )r   s   &r6   Ú_prompt_to_image_textr\    s)   € Ü�&œ#×ÒØˆØ�8‰8Ñ1©&Ó1Ó1Ð1r5   c               ó$   € V ^8„  d   QhRRRRRR/# )rJ   Úargsr   r2  r3  rK   rL   r*   )rM   s   "r6   rN   rN     s&   € ÷ !Eñ !E¨#ð !E¸	ð !EÀdñ !Er5   c               óX  € . pVR 8X  d!   \        V RR4      e   VP                  R4       VR8X  d   \        V RR4      '       g   \        R4      hR# F7  p\        WR4      f   K  VP                  RVP                  RR4       24       K9  	  \        V R	R
4      '       d   VP                  R4       \        V RR4      e   VP                  R4       \        V RR4      e   VP                  R4       \        V RR4      e   VP                  R4       \        V RR4      e   VP                  R4       \        V RR4      '       d   VP                  R4       \        V RR
4      '       d   VP                  R4       \        V RR
4      '       d   VP                  R4       \        V RR4      e   VP                  R4       \        V RR4      e   VP                  R4       \        V RR
4      '       d   VP                  R4       V'       d#   R P	                  V4      p\        R!V R"V 24      hR# )$r   r\   Nz--imager5  z0Image editing requires at least one --image pathz--r·   r§   ÚchatFz--chatÚresize_shapez--resize-shapeÚ
eos_tokensz--eos-tokensÚkv_bitsz	--kv-bitsÚmax_kv_sizez--max-kv-sizeÚprocessor_kwargsz--processor-kwargsÚquantize_activationsz--quantize-activationsÚskip_special_tokensz--skip-special-tokensÚthinking_budgetz--thinking-budgetÚmax_denoising_stepsz--max-denoising-stepsÚdiffusion_full_canvasz--diffusion-full-canvasz, zImage z does not support: )ÚaudioÚvideoÚadapter_pathÚdraft_model)r  r½   r`   r   rÇ   )r^  r2  Úincompatibler²   Újoineds   &$   r6   Ú_validate_image_generation_argsrq    s  € Ø€LØˆzÔœg d¨G°TÓ:ÒFØ×Ñ˜IÔ&Øˆv„~œg d¨G°T×:Ò:ÜÐKÓLÐLÛAˆÜ�4˜tÓ$Ô0Ø×Ñ " T§\¡\°#°sÓ%;Ð$<Ð =Ö>ñ Bô ˆt�V˜U×#Ò#Ø×Ñ˜HÔ%Üˆt�^ TÓ*Ò6Ø×ÑÐ,Ô-Üˆt�\ 4Ó(Ò4Ø×Ñ˜NÔ+Üˆt�Y Ó%Ò1Ø×Ñ˜KÔ(Üˆt�] DÓ)Ò5Ø×Ñ˜OÔ,ÜˆtÐ'¨×.Ò.Ø×ÑÐ0Ô1ÜˆtÐ+¨U×3Ò3Ø×ÑÐ4Ô5ÜˆtÐ*¨E×2Ò2Ø×ÑÐ3Ô4ÜˆtÐ&¨Ó-Ò9Ø×ÑÐ/Ô0ÜˆtÐ*¨DÓ1Ò=Ø×ÑÐ3Ô4ÜˆtÐ,¨e×4Ò4Ø×ÑÐ5Ô6ßØ—‘˜<Ó(ˆÜ˜6 $ Ð':¸6¸(ÐCÓDÐDñ r5   c               ó    € V ^8„  d   QhRRRR/# )rJ   r^  r   rK   rL   r*   )rM   s   "r6   rN   rN   0  s   € ÷ Hñ H 3ð H¨4ñ Hr5   c                ó´  € \        \        V R \        4      4      p\        WR7       V P                  e   V P                  M\
        P                  ! R4      p\        V P                  4      pV'       g   \        RV 24      hR\        V RR4      R\        V RR4      /pVR8X  dì   ^RI
Hp R;rg\        V R	R4      pVe   \        V4      w  rgV P                  e$   \        V P                  4      P                  4       M\        R
4      RV R2,          p	\!        V P"                  3R R/VB p
T! T\%        V P&                  4      TV P(                  TTV P*                  \-        \        V R/ 4      ;'       g    / 4      R7      p\/        V
VRV	R7      pMï\        \        V R	R4      ;'       g    \0        4      w  rgV P                  e$   \        V P                  4      P                  4       M\        R
4      RV R2,          p	\!        V P"                  3R R/VB p
\-        \        V R/ 4      ;'       g    / 4      p\        V RR4      pVe   WíR&   \3        VVV P(                  VVV P*                  VR7      p\/        V
VRV	R7      p\5        RVP6                   RVP                   RVP8                   RVP:                   RVP(                   RVP<                   24       R# )r2  )r2  Nz%--prompt must not be empty for image r  Fr  r5  )rH  ÚsizeÚoutputszedit-z.pngÚ
gen_kwargs)r   rE  r   r   r    r!   r#   r)   )r2  r~   zimage-r   Úprompt_expansion_model)r   r   r   r    r!   r#   r)   zSaved z seed=z size=r›   z steps=z	 variant=rI  )r7  r  r6  rq  r   rK  rL  r\  r   r`   r<  rH  r¢   Úoutputr
   r{   r=  r:   rÈ   r\   r   r#   r3   rN  ÚDEFAULT_IMAGE_SIZEr   ÚprintrA   r    r!   r=   )r^  r2  r   r   Úload_kwargsrH  r    r!   rt  r~   r:   r“   Úresultr)   rw  s   &              r6   Úrun_image_generation_clir}  0  s¹  € Ü ¤¨¨vÔ7IÓ!JÓK€DÜ# DÕ4ØŸ	™	Ò-ˆ4�9Š9´6×3CÒ3CÀEÓ3J€DÜ" 4§;¡;Ó/€FßÜÐ@ÀÀÐGÓHÐHð 	œ' $Ð(8¸%Ó@Ø”G˜D *¨dÓ3ð€Kð ˆv„~Ý0àÐˆÜ�t˜V TÓ*ˆØÒÜ& tÓ,‰MˆEð �{‰{Ò&ô �—‘Ó×(Ñ(Ô*ä�i“ U¨4¨&°Ð#5Õ5ð 	ô
 ! §¡ÑH°&ÐH¸KÑHˆÙ"ØÜ˜dŸj™jÓ)ØØ—*‘*ØØØ—]‘]Ü”w˜t \°2Ó6×<Ð<¸"Ó=ô	
ˆô  ØØØØ#ô	
‰ô #¤7¨4°¸Ó#>×#TÐ#TÔBTÓU‰ˆð �{‰{Ò&ô �—‘Ó×(Ñ(Ô*ä�i“ V¨D¨6°Ð#6Õ6ð 	ô
 ! §¡ÑL°*ÐLÀÑLˆÜ”W˜T <°Ó4×:Ð:¸Ó;ˆÜ!(¨Ð/GÈÓ!NÐØ!Ò-Ø.DÐ*Ñ+Ü(ØØØ—*‘*ØØØ—]‘]Øô
ˆô  ØØØØ#ô	
ˆô 
Ø
�—‘�˜V F§K¡K =ð 1Ø—‘ˆ~˜Q˜vŸ}™}˜o¨W°V·\±\°Nð CØ—>‘>Ð"ð	$ör5   )z*.jsonz*.safetensorsz*.txtz*.jinjaz*.modelz
*.tiktokenz	**/*.jsonz**/*.safetensorsz**/*.txtz
**/*.jinjaz
**/*.modelz**/*.tiktoken)rú   rü   rû   z**/config.json)Úb64_jsonrA   )r   r5  )r2   r1   ry  r0   r6  rB   rD   rF   r‚   r   r8   ÚImageOutputFormatr3  rN  r)  rU  rR  rƒ   r0  r=  r¢   r}  )KÚ
__future__r   rr   r  rò   rK  rÃ   Úcollections.abcr   Údataclassesr   r   r   Ú	functoolsr   Úior	   Úpathlibr
   Útypingr   r   r   r   Úmlx.coreÚcorerR   Únumpyrb   ÚPILr   Úutilsr   ry  r0   r1   r2   r6  r  r!  r  r3  rB   rD   rF   r   r8   r‚   r¢   r³   r¹   r¾   rÌ   rá   rë   rî   r÷   r  r  r  r  r"  r)  rƒ   r0  r7  r=  rD  rN  rR  rU  r\  rq  r}  Ú__all__r*   r5   r6   Ú<module>r�     sÍ  ðÝ "ã Û Û Û Û 	Ý $ß 1Ñ 1Ý Ý Ý ß 3Ó 3å Û Ý å "àÐ ØÐ ØÐ ØÐ ØÐ ðÐ ð$Ð  ð Ð.Õ/Ð ØÐ&Õ'€	Ø˜5•>Ð Ø˜-Õ(€Ø˜%•.€ñ �Ô÷8ð 8ó ð8ñ �Ô÷/ð /ó ð/ôdV˜8ô Võõ"õLõ&õõõ2õ"õ6õñ0 �3Ôôó ðõ,
ðð  ðð !÷	õ"õõ8õ&IõRð8ð )÷8õCð&3ð )ð	3ð
 04ð3ð &*÷3õlõGõ2õ!EõHHòV‚r5   