Ë
    Z²j¤  ã                   ó  — d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZ d dlmZmZ d dlmZmZ d d	lmZ  ee«      Zd
Z G d„ dee«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    N)ÚABC)ÚAny)Úurlparse)ÚInferenceProviderMapping)ÚRequestParametersÚ_as_dict)ÚTaskProviderHelperÚfilter_none)Úget_sessionÚhf_raise_for_status)Ú
get_loggerg      à?c                   ó\   ‡ — e Zd Zdefˆ fd„Zdededefd„Z	 ddeez  d	edz  de	fd
„Z
ˆ xZS )ÚWavespeedAITaskÚtaskc                 ó*   •— t         ‰| �  dd|¬«       y )NÚ	wavespeedzhttps://api.wavespeed.ai)ÚproviderÚbase_urlr   ©ÚsuperÚ__init__)Úselfr   Ú	__class__s     €úm/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/huggingface_hub/inference/_providers/wavespeed.pyr   zWavespeedAITask.__init__   s   ø€ Ü‰Ñ +Ð8RÐY]ÐÕ^ó    Úmapped_modelÚapi_keyÚreturnc                 ó   — d|› �S )Nz/api/v3/© )r   r   r   s      r   Ú_prepare_routezWavespeedAITask._prepare_route   s   € Ø˜,˜Ð(Ð(r   NÚresponseÚrequest_paramsc                 ó  — t        |«      }|j                  di «      }|j                  di «      j                  d«      }|st        d«      ‚|€t        d«      ‚t        |j                  «      }|j
                  dk(  r|j                  › d|j
                  › d�}n|j                  › d|j
                  › �}t        |t        «      rt        |«      j                  }n|}|› |› �}	t        j                  d	«       	 t        j                  t        «       t        «       j                  |	|j                   ¬
«      }
t#        |
«       |
j%                  «       }|j                  di «      }|j                  d«      }|dk(  rX|j                  d«      rt'        |d   «      dk(  rt        d«      ‚|d   d   }t        «       j                  |«      j(                  S |dk(  r |j                  dd«      }t        d|› �«      ‚|dv r�Œt        d|› �«      ‚)NÚdataÚurlsÚgetz#No result URL found in the responsezSA `RequestParameters` object should be provided to get responses with WaveSpeed AI.zrouter.huggingface.coz://z
/wavespeedz*Processing request, polling for results...)ÚheadersÚstatusÚ	completedÚoutputsr   z#No output URL in completed responseÚfailedÚerrorz*Task failed with no specific error messagezWaveSpeed AI task failed: )Ú
processingÚcreatedzUnknown status: )r   r'   Ú
ValueErrorr   ÚurlÚnetlocÚschemeÚ
isinstanceÚstrÚpathÚloggerÚinfoÚtimeÚsleepÚ_POLLING_INTERVALr   r(   r   ÚjsonÚlenÚcontent)r   r"   r#   Úresponse_dictr%   Úresult_pathÚ
parsed_urlr   Úresult_url_pathÚ
result_urlÚresult_responseÚresultÚtask_resultr)   Ú
output_urlÚ	error_msgs                   r   Úget_responsezWavespeedAITask.get_response   s   € ô
 ! Ó*ˆØ× Ñ  ¨Ó,ˆØ—h‘h˜v rÓ*×.Ñ.¨uÓ5ˆáÜÐBÓCÐCØÐ!ÜÐrÓsÐsô ˜n×0Ñ0Ó1ˆ
à×ÑÐ 7Ò7Ø$×+Ñ+Ð,¨C°
×0AÑ0AÐ/BÀ*ÐM‰Hà$×+Ñ+Ð,¨C°
×0AÑ0AÐ/BÐCˆHô �k¤3Ô'Ü& {Ó3×8Ñ8‰Oà)ˆOà �z /Ð!2Ð3ˆ
ä�‰Ð@ÔAð Ü�J‰JÔ(Ô)Ü)›m×/Ñ/°
ÀN×DZÑDZÐ/Ó[ˆOÜ Ô0à$×)Ñ)Ó+ˆFØ Ÿ*™* V¨RÓ0ˆKØ —_‘_ XÓ.ˆFà˜Ò$à"—‘ yÔ1´S¸ÀYÑ9OÓ5PÐTUÒ5UÜ$Ð%JÓKÐKà(¨Ñ3°AÑ6�
Ü"“}×(Ñ(¨Ó4×<Ñ<Ð<Ø˜8Ò#Ø'ŸO™O¨GÐ5aÓb�	Ü Ð#=¸i¸[Ð!IÓJÐJØÐ4Ñ4Ùä Ð#3°F°8Ð!<Ó=Ð=r   )N)Ú__name__Ú
__module__Ú__qualname__r5   r   r!   ÚbytesÚdictr   r   rI   Ú__classcell__©r   s   @r   r   r      sZ   ø„ ð_˜Sõ _ð)¨3ð )¸ð )Àó )ð 48ñ7>à˜$‘,ð7>ð *¨DÑ0ð7>ð 
÷	7>r   r   c            	       ó<   ‡ — e Zd Zˆ fd„Zdededededz  fd„Zˆ xZS )ÚWavespeedAITextToImageTaskc                 ó$   •— t         ‰| �  d«       y )Nztext-to-imager   ©r   r   s    €r   r   z#WavespeedAITextToImageTask.__init__V   s   ø€ Ü‰Ñ˜Õ)r   ÚinputsÚ
parametersÚprovider_mapping_infor   Nc                 ó    — d|it        |«      ¥S )NÚprompt)r
   )r   rU   rV   rW   s       r   Ú_prepare_payload_as_dictz3WavespeedAITextToImageTask._prepare_payload_as_dictY   s   € ð ˜&Ð<¤K°
Ó$;Ð<Ð<r   ©	rJ   rK   rL   r   r   rN   r   rZ   rO   rP   s   @r   rR   rR   U   s7   ø„ ô*ð=àð=ð ð=ð  8ð	=ð
 
�‰÷=r   rR   c                   ó   — e Zd Zd„ Zy)ÚWavespeedAITextToVideoTaskc                 ó0   — t         j                  | d«       y )Nztext-to-video©r   r   ©r   s    r   r   z#WavespeedAITextToVideoTask.__init__c   s   € Ü× Ñ   Õ7r   N©rJ   rK   rL   r   r    r   r   r]   r]   b   s   „ ó8r   r]   c            	       ó<   ‡ — e Zd Zˆ fd„Zdededededz  fd„Zˆ xZS )ÚWavespeedAIImageToImageTaskc                 ó$   •— t         ‰| �  d«       y )Nzimage-to-imager   rT   s    €r   r   z$WavespeedAIImageToImageTask.__init__h   s   ø€ Ü‰ÑÐ)Õ*r   rU   rV   rW   r   Nc                 óÆ  — t        |t        «      r|j                  d«      r|}nˆt        |t        «      rOt        |d«      5 }|j	                  «       }d d d «       t        j                  «      j                  d«      }d|› �}n)t        j                  |«      j                  d«      }d|› �}|j                  dd «      }d|it        |«      ¥}	|�||	d<   |	S # 1 sw Y   Œ†xY w)N)zhttp://zhttps://Úrbzutf-8zdata:image/jpeg;base64,rY   Úimage)
r4   r5   Ú
startswithÚopenÚreadÚbase64Ú	b64encodeÚdecodeÚpopr
   )
r   rU   rV   rW   rg   ÚfÚfile_contentÚ	image_b64rY   Úpayloads
             r   rZ   z4WavespeedAIImageToImageTask._prepare_payload_as_dictk   sâ   € ô �fœcÔ" v×'8Ñ'8Ð9PÔ'QØ‰EÜ˜¤Ô$ä�f˜dÓ#ð ( qØ Ÿv™v›x�÷(ä×(Ñ(¨Ó6×=Ñ=¸gÓFˆIØ-¨i¨[Ð9‰Eô ×(Ñ(¨Ó0×7Ñ7¸Ó@ˆIØ-¨i¨[Ð9ˆEð —‘ ¨$Ó/ˆØ˜EÐ=¤[°Ó%<Ð=ˆØÐØ &ˆG�HÑàˆ÷(ð (ús   ÁCÃC r[   rP   s   @r   rc   rc   g   s7   ø„ ô+ðàðð ðð  8ð	ð
 
�‰÷r   rc   c                   ó   — e Zd Zd„ Zy)ÚWavespeedAIImageToVideoTaskc                 ó0   — t         j                  | d«       y )Nzimage-to-videor_   r`   s    r   r   z$WavespeedAIImageToVideoTask.__init__‰   s   € Ü× Ñ  Ð'7Õ8r   Nra   r    r   r   rt   rt   ˆ   s   „ ó9r   rt   )rk   r9   Úabcr   Útypingr   Úurllib.parser   Úhuggingface_hub.hf_apir   Ú!huggingface_hub.inference._commonr   r   Ú,huggingface_hub.inference._providers._commonr	   r
   Úhuggingface_hub.utilsr   r   Úhuggingface_hub.utils.loggingr   rJ   r7   r;   r   rR   r]   rc   rt   r    r   r   ú<module>r~      sz   ðÛ Û Ý Ý Ý !å ;ß Iß Xß BÝ 4ñ 
�HÓ	€ð Ð ô>>Ð(¨#ô >>ôB
= ô 
=ô8Ð!;ô 8ô
 /ô ôB9Ð"=õ 9r   