
    j                        d Z ddlmZ ddl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
Zd,dZd-dZd.dZd/dZdddddd0d&Zd1d*ZdS )2z3Run generated Wan2.2 I2V clip jobs through ComfyUI.    )annotationsN)datetimetimezone)Path)Any)build_native_wan22_i2v_workflowreturnstrc                 b    t          j        t          j                                                  S )N)r   nowr   utc	isoformat     S/home/agent/jarvis_runtime/autoshortsbot/AutoShortsBot/autoshorts/i2v_job_runner.py_utc_nowr      s     <%%//111r   totalintdict[str, int]c                    | ddddS )Nr   )r   	succeededskippedfailedr   )r   s    r   _empty_summaryr      s    qAFFFr   jobdict[str, Any]reasonc                R    | d         | d         | d         d|| d         | d         dS )Njob_idscene_idseedr   keyframe_pathoutput_path)r   r    r!   statusr   r"   r#   r   )r   r   s     r   _skip_resultr%      s<    h-
OF_-=)  r   client_resultc           
         | d         | d         | d         d|                     d          |                     d| d                   dS )Nr   r    r!   success	prompt_idr#   )r   r    r!   r$   r)   r#   )get)r   r&   s     r   _success_resultr+   !   sR    h-
OF"&&{33$((M8JKK  r   errorException | dict[str, Any]c                    t          |t                    r|n#t          |          j        t	          |          d}| d         | d         | d         d|| d         | d         dS )	N)r,   messager   r    r!   r   r"   r#   )r   r    r!   r$   detailr"   r#   )
isinstancedicttype__name__r
   )r   r,   r0   s      r   _failed_resultr5   ,   so     --iUUT%[[=Q^abg^h^h3i3iFh-
OF_-=)  r   F   i  )limitdry_runpoll_secondstimeout_secondspackageclientr   r7   
int | Noner8   boolr9   floatr:   c          
        |                      dg           d|         }t          t          |                    }g }|D ]}	t          |	d                   }
|
                                s4|dxx         dz  cc<   |                    t          |	d                     `t          |	d                                                   r4|dxx         dz  cc<   |                    t          |	d                     |r4|dxx         dz  cc<   |                    t          |	d	                     t          |	|	d
                   }	 |                    ||
|	d
         t          |	d                   ||          }|                     d          dk    r4|dxx         dz  cc<   |                    t          |	|                     n3|dxx         dz  cc<   |                    t          |	|                     # t          $ r>}|dxx         dz  cc<   |                    t          |	|                     Y d}~d}~ww xY wdt                      |                      di           ||dS )z@Run clip jobs from a package and return a structured run report.jobsNr"   r      missing_keyframer#   output_existsdry_run_readyremote_image_name)uploaded_image_name)workflowr"   rF   r#   r9   r:   r$   r(   r   r   zi2v_run_report.v1video)schema_version
created_atrI   summaryresults)r*   r   lenr   existsappendr%   r   run_i2v_workflowr+   r5   	Exceptionr   )r;   r<   r7   r8   r9   r:   rA   rL   rM   r   r"   rH   r&   excs                 r   run_i2v_clip_jobsrT   9   s    ;;vr""6E6*DSYY''G$&G !5 !5S122##%% 	I!#NN<-?@@AAAM"##**,, 	I!#NN<_==>>> 	I!#NN<_==>>>23CPcLdeee	5"33!+"%&9": ]!344) / 4  M   **i77$$$)$$$sMBBCCCC!!!Q&!!!~c=AABBB 	5 	5 	5H"NN>#s3344444444	5
 .jjWb))  s   B4G>>
I3IIreportoutput_filer   c                    |j                             dd           |                    t          j        | dd          dz   d           |S )	z Write an I2V run report as JSON.T)parentsexist_ok   F)indentensure_ascii
zutf-8)encoding)parentmkdir
write_textjsondumps)rU   rV   s     r   write_run_reportrd   s   sT    TD9994:fQUKKKdR]deeer   )r	   r
   )r   r   r	   r   )r   r   r   r
   r	   r   )r   r   r&   r   r	   r   )r   r   r,   r-   r	   r   )r;   r   r<   r   r7   r=   r8   r>   r9   r?   r:   r   r	   r   )rU   r   rV   r   r	   r   )__doc__
__future__r   rb   r   r   pathlibr   typingr   autoshorts.i2v_clip_jobsr   r   r   r%   r+   r5   rT   rd   r   r   r   <module>rj      s'   9 9 " " " " " "  ' ' ' ' ' ' ' '             D D D D D D2 2 2 2G G G G	 	 	 	   
 
 
 
" 7 7 7 7 7 7t     r   