+
    kHàjÅ  ã            	      ó6  a € 0 t $ R t^ RIHt ^ RIt^ RIHtHtHtH	t	H
t
 ^ RIHtHt ^ RIHtHtHtHtHt ^ RIHtHtHtHtHtHtHt ]P8                  ! ]4      tRtRt Rt!R	t"R
 R lt#R R lt$RRRRRRRRR//t%R]&R&   Rt'R R R llt( ! R R]4      t)R R lt*R# )!uG  Meta Model API (``muse-image``): OpenAI-compatible (https://api.meta.ai/v1), so the OpenAI SDK
is pointed at Meta's base URL with ``META_MODEL_API_KEY``. Output is base64 WebP â†’ image cache.
Selection: ``model`` kwarg â†’ ``META_IMAGE_MODEL`` â†’ ``image_gen.meta-ai.model`` â†’ ``image_gen.model``
â†’ :data:`DEFAULT_MODEL`.)ÚannotationsN)ÚAnyÚDictÚListÚOptionalÚTuple)Ú
get_secretÚget_secret_str)ÚDEFAULT_ASPECT_RATIOÚresolve_aspect_ratioÚsave_b64_imageÚsave_url_imageÚsuccess_response)ÚStaticImageGenProviderÚerror_factoryÚimport_openaiÚopenai_importableÚprompt_required_errorÚresolve_static_modelÚsize_forzhttps://api.meta.ai/v1ÚMETA_MODEL_API_KEYÚMETA_BASE_URLc               ó   € V ^8„  d   QhRR/# )é   ÚreturnúOptional[str]© )Úformats   "ÚG/home/ubuntu/.hermes/hermes-agent/plugins/image_gen/meta-ai/__init__.pyÚ__annotate__r      s   € ÷ Mñ M˜-ñ Mó    c                 óL   € \        R \        \        \        4       4       R4      # )z0First non-empty auth env var, in priority order.c              3  ó8   "  € T F  q'       g   K  Vx € K  	  R # 5i©Nr   )Ú.0Úvals   & r   Ú	<genexpr>Ú#_resolve_api_key.<locals>.<genexpr>   s   é € ÐEÑ =˜Ã—’Ó =ùs   ‚	�
N)ÚnextÚmapr   ÚAPI_KEY_ENVSr   r    r   Ú_resolve_api_keyr+      s   € äÑE¤¤J´Ô =ÓEÀtÓLÐLr    c               ó   € V ^8„  d   QhRR/# )r   r   Ústrr   )r   s   "r   r   r   !   s   € ÷ Dñ D˜3ñ Dr    c                 óX   € \        \        4      P                  4       ;'       g    \        # r#   )r	   ÚBASE_URL_ENVÚstripÚDEFAULT_BASE_URLr   r    r   Ú_resolve_base_urlr2   !   s!   € ô œ,Ó'×-Ñ-Ó/×CÐCÔ3CÐCr    zmuse-image-1.0ÚdisplayzMuse Image 1.0Úspeedz~10sÚ	strengthszMeta Model API image generationÚpricez$0.01/imagezdict[str, dict[str, Any]]Ú_MODELSc               ó    € V ^8„  d   QhRRRR/# )r   Úcaller_modelr   r   ztuple[str, dict[str, Any]]r   )r   s   "r   r   r   3   s   € ÷ ñ  ð Ð:Tñ r    c                ó2   € \        \        \        R RV R7      # )ÚMETA_IMAGE_MODELúmeta-ai)Úenv_varÚ
config_keyÚexplicit)r   r7   ÚDEFAULT_MODEL)r9   s   &r   Ú_resolve_modelrA   3   s   € ÜÜ”Ð(:ÀyÐ[gôð r    c            	      ó|   € ] tR t^9tRtRtRt]t]	t
]! RRR]RRR7      tR	 R
 ltR R lt]3RRRR/R R llltRtR# )ÚMetaImageGenProviderz8Meta Model API ``images.generate`` backend (muse-image).r<   zMeta Model APIÚpaidz+Muse Image via Meta Model API (api.meta.ai)z"Meta Model API key (LLM|... token)zhttps://api.meta.ai)ÚnameÚbadgeÚtagÚkeyÚpromptÚurlc               ó   € V ^8„  d   QhRR/# )r   r   Úboolr   )r   s   "r   r   Ú!MetaImageGenProvider.__annotate__D   s   € ÷ @ñ @˜dñ @r    c                	óL   € \        \        4       4      ;'       d    \        4       # r#   )rL   r+   r   ©Úselfs   &r   Úis_availableÚ!MetaImageGenProvider.is_availableD   s   € ÜÔ$Ó&Ó'×?Ð?Ô,=Ó,?Ð?r    c               ó   € V ^8„  d   QhRR/# )r   r   údict[str, Any]r   )r   s   "r   r   rM   G   s   € ÷ Cñ C˜nñ Cr    c                	ó   € R R.R^ /# )Ú
modalitiesÚtextÚmax_reference_imagesr   rO   s   &r   ÚcapabilitiesÚ!MetaImageGenProvider.capabilitiesG   s   € à˜v˜hÐ(>ÀÐBÐBr    Ú	image_urlNÚreference_image_urlsc               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   rI   r-   Úaspect_ratior[   r   r\   zOptional[list[str]]Úkwargsr   r   rT   r   )r   s   "r   r   rM   K   s@   € ÷ 2*ñ 2*Øð2*Ø),ð2*à ð2*à?Rð2*ð ð2*ð 
ñ	2*r    c          
     	ó>  € T;'       g    R P                  4       p\        V4      pV'       g   \        RV4      # \        4       pV'       g   \	        RV4      ! \
         R2R4      # \        RV4      w  r‰V	'       d   V	# \        VP                  R4      4      w  r«\        V4      p\	        RWjVR7      pVP                  V\        4       R7      p VP                  P                  W¡V^R7      p TP"                  ^ ,          p\+        TRR4      p\+        TRR4      p T'       d   \-        \/        TRRR7      4      pM(T'       d   \-        \1        TRR7      4      pM	T! RR4      # RT/p\+        TRR4      '       d   TP2                  TR&   \5        TY¡TRRTR7      #   \         d.   p\        P!                  RR	R
7       T! RT 2R4      u Rp?# Rp?ii ; i  \$        \&        \(        3 d    T! RR4      u # i ; i  \         d   pT! RT 2R4      u Rp?# Rp?ii ; i)Ú r<   zP not set. Run `hermes tools` -> Image Generation -> Meta Model API to configure.Úauth_requiredÚmodel)rc   rI   )Úapi_keyÚbase_url)rc   rI   ÚsizeÚnzMeta image generation failedT)Úexc_infozMeta image generation failed: Ú	api_errorNz%Meta response contained no image dataÚempty_responseÚb64_jsonrJ   ÚmetaÚwebp)ÚprefixÚ	extension)rn   z0Meta response contained neither b64_json nor URLzFailed to save Meta image: Úio_errorrf   Úrevised_promptrW   )Úimagerc   rI   r^   ÚproviderÚmodalityÚextra)r0   r   r   r+   r   ÚAPI_KEY_ENVr   rA   Úgetr   ÚOpenAIr2   ÚimagesÚgenerateÚ	ExceptionÚloggerÚdebugÚdataÚAttributeErrorÚ
IndexErrorÚ	TypeErrorÚgetattrr-   r   r   rq   r   )rP   rI   r^   r[   r\   r_   Úaspectrd   ÚopenaiÚerrÚmodel_idÚ_metarf   ÚfailÚclientÚresponseÚexcÚfirstÚb64rJ   Ú	image_refru   s   &&&$$,                r   rz   ÚMetaImageGenProvider.generateK   s$  € ð
 —,�,˜B×%Ñ%Ó'ˆÜ% lÓ3ˆßÜ(¨°FÓ;Ð;Ü"Ó$ˆßÜ  ¨FÔ3Ü�-ð  =ð =àó!ð !ô
 $ I¨vÓ6‰ˆßØˆJÜ(¨¯©°GÓ)<Ó=‰ˆÜ˜ÓˆÜ˜Y¨ÀvÔNˆØ—‘ wÔ9JÓ9L�ÓMˆð	MØ—}‘}×-Ñ-°HÐRVÐZ[Ð-Ó\ˆHð
	SØ—M‘M !Õ$ˆEô �e˜Z¨Ó.ˆÜ�e˜U DÓ)ˆð	IßÜ¤¨s¸6ÈVÔ TÓU‘	ßÜ¤¨s¸6Ô BÓC‘	áÐNÐP`ÓaÐað "(¨ ˆÜ�5Ð*¨D×1Ò1Ø&+×&:Ñ&:ˆEÐ"Ñ#ÜØ 8ÈÐZcØ 5ô*ð 	*øô/ ô 	MÜ�L‰LÐ7À$ˆLÔGÙÐ8¸¸Ð>ÀÓLÕLûð	Mûô ¤
¬IÐ6ô 	SÙÐ?ÐAQÓRÒRð	Sûô ô 	IÙÐ5°c°UÐ;¸ZÓHÕHûð	Iús`   ÃF Ã.G ÄG; Ä<G; ÅG; ÅG; ÆGÆ&"GÇGÇGÇG8Ç7G8Ç;HÈHÈHÈHr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úprovider_idÚlabelr7   Úmodelsr@   Údefault_model_idÚdictrv   ÚsetuprQ   rY   r
   rz   Ú__static_attributes__r   r    r   rC   rC   9   sb   † ÙBà€KØ€EØ€FØ$ÐÙØ VÐ1^ØÐ DÐJ_ôa€Eõ@õCð
 0Dñ2*à#'ð2*àUY÷2*ô 2*r    rC   c               ó   € V ^8„  d   QhRR/# )r   r   ÚNoner   )r   s   "r   r   r   €   s   € ÷ <ñ <�Tñ <r    c                ó8   € V P                  \        4       4       R# )zFPlugin entry point -- wire ``MetaImageGenProvider`` into the registry.N)Úregister_image_gen_providerrC   )Úctxs   &r   Úregisterr¡   €   s   € à×#Ñ#Ô$8Ó$:Ö;r    )ÚMODEL_API_KEYÚMETA_API_KEYr   r#   )+Ú__conditional_annotations__r”   Ú
__future__r   ÚloggingÚtypingr   r   r   r   r   Úagent.secret_scoper   r	   Úagent.image_gen_providerr
   r   r   r   r   Úplugins.image_gen._commonr   r   r   r   r   r   r   Ú	getLoggerr�   r|   r1   r*   rv   r/   r+   r2   r7   Ú__annotations__r@   rA   rC   r¡   )r¤   s   @r   Ú<module>r­      s½   øðôõ
 #ã ß 3Õ 3ç 9÷bõ b÷$÷ $ñ $ð 
×	Ò	˜8Ó	$€à+Ð ð G€Ø"€Ø€õMõ
Dð ØÐ#Ø�ØÐ6Ø�ð	ð&€Ð	"ó ð !€÷ôD*Ð1ô D*÷N<r    