§
    	ÊjU
  ã                  ór  — d dl mZ d dlmZmZmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZ ddlmZ dd	lmZ d
dlmZmZmZ d
dlmZ  edg ee¦  «        g¬¦  «        Zd!d„Ze                     d¦  «         ee¦  «        fd"d„¦   «         Ze                     d¦  «         ee¦  «        fd#d„¦   «         Zd S )$é    )Úannotations)Ú	APIRouterÚDependsÚRequesté   )Úload_image_ref)Úresolve_model)Ú
InputImageÚVideoRequest)ÚNotFound)ÚServices)ÚTaské   )Úget_servicesÚpublic_baseÚrequire_api_key)ÚVideoCreateRequestÚvideos)ÚtagsÚdependenciesÚtaskr   ÚreturnÚdictc           	     ó¨   — | j         d| j        j        | j        t	          | j        ¦  «        | j                             d¦  «        | j        | j	        dœS )NÚvideoÚmodel)ÚidÚobjectÚstatusÚprogressÚ
created_atr   ÚresultÚerror)
r   r   Úvaluer    Úintr!   ÚrequestÚgetr"   r#   )r   s    ú6C:\Projects\Muse2API\src\muse2api\api\routes\videos.pyÚ
_task_viewr)      sP   € àŒgØØ”+Ô#Ø”MÝ˜$œ/Ñ*Ô*Ø”×!Ò! 'Ñ*Ô*Ø”+Ø”ð	ð 	ð 	ó    z
/v1/videosÚbodyr   r&   r   Úsvcr   c              ƒ  óò  ‡ ‡‡‡‡	K  — ‰ j         |j        _         t          ‰ j         d¦  «        Š	‰ j         p‰	j        |j        _         ‰ j        p‰ j        }|rt          t          |¦  «        ƒ d {V —†Ž nd Št          |¦  «        Šdˆˆ ˆˆ	ˆfd„}‰	j        ‰ j	        ‰ j
        ‰ j        p‰ j        t          ‰¦  «        dœ}‰j                             d||¦  «        }|j        |j        _        t#          |¦  «        S )Nr   r   r   c           	   “  óB  •K  — t          ‰j        ‰j        ‰j        ‰j        p‰j        ‰‰j        j        | ¬¦  «        }‰j         	                    |¦  «        ƒ d {V —†}‰j
                             |j        |j        d¬¦  «        }‰› d|› �|j        |j        |j        dœS )N)Úpromptr   ÚsizeÚdurationÚfirst_frameÚtimeoutÚon_progressÚvid)Úprefixz
/v1/media/)ÚurlÚmimeÚwidthÚheight)r   r/   r   r0   r1   ÚsecondsÚsettingsÚvideo_timeoutÚgatewayÚgenerate_videoÚmediaÚsaveÚdatar8   r9   r:   )	r    Úreqr"   ÚnameÚbaser+   r2   Úspecr,   s	       €€€€€r(   Úrunnerzcreate_video.<locals>.runner(   s¸   øè è € Ý $¤+°T´WÀ4Ä9Ø$(¤MÐ$A°T´\È{Ø#&¤<Ô#=È8ðUñ Uô Uˆð ”{×1Ò1°#Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6ˆØŒy�~Š~˜fœk¨6¬;¸uˆ~ÑEÔEˆØÐ0Ð0¨$Ð0Ð0¸&¼+Øœ°´ð@ð @ð 	@r*   )r   r/   r0   r1   Úhas_first_frame)r   r   )r   Ústater	   r   ÚimageÚinput_referencer
   r   r   r/   r0   r1   r;   ÚboolÚtasksÚsubmitÚtask_idr)   )
r+   r&   r,   Ú	frame_refrG   Úrequest_metar   rE   r2   rF   s
   ` `    @@@r(   Úcreate_videorR      s,  øøøøøè è € ð œ*€G„MÔÝ˜œ WÑ-Ô-€DØœ*Ð/¨¬€G„MÔØ”
Ð2˜dÔ2€IØDMÐW•*¥^°IÑ%>Ô%>Ð>Ð>Ð>Ð>Ð>Ð>Ð@Ð@ÐSW€KÝ�wÑÔ€Dð@ð @ð @ð @ð @ð @ð @ð @ð @ð @ð "œW°´ÀTÄYØ $¤Ð =°´ÕRVÐWbÑRcÔRcðeð e€LàŒ9×Ò˜G \°6Ñ:Ô:€DØ œG€G„MÔÝ�dÑÔÐr*   z/v1/videos/{task_id}rO   Ústrc              ƒ  óà   K  — |j                              | ¦  «        }|�|j        dk    rt          d| › d�¦  «        ‚|j                             d¦  «        |j        _        t          |¦  «        S )Nr   zvideo task 'z' not foundr   )rM   r'   Úkindr   r&   rI   r   r)   )rO   r&   r,   r   s       r(   Ú	get_videorV   8   sn   è è € ð Œ9�=Š=˜Ñ!Ô!€DØ€|�t”y GÒ+Ð+ÝÐ: gÐ:Ð:Ð:Ñ;Ô;Ð;Øœ,×*Ò*¨7Ñ3Ô3€G„MÔÝ�dÑÔÐr*   N)r   r   r   r   )r+   r   r&   r   r,   r   r   r   )rO   rS   r&   r   r,   r   r   r   )Ú
__future__r   Úfastapir   r   r   Ú
core.mediar   Úcore.modelsr	   Údrivers.baser
   r   Úerrorsr   Úservices.containerr   Úservices.tasksr   Údepsr   r   r   Úschemasr   Úrouterr)   ÚpostrR   r'   rV   © r*   r(   ú<module>rd      s—  ðØ "Ð "Ð "Ð "Ð "Ð "à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø "Ð "Ð "Ð "Ð "Ð "Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø (Ð (Ð (Ð (Ð (Ð (à	ˆ˜˜
°'°'¸/Ñ2JÔ2JÐ1KÐ	LÑ	LÔ	L€ð
ð 
ð 
ð 
ð ‡‚ˆ\ÑÔà'. w¨|Ñ'<Ô'<ðð ð ð ñ Ôðð2 ‡‚Ð"Ñ#Ô#à$+ G¨LÑ$9Ô$9ðð ð ð ñ $Ô#ðð ð r*   