§
     ’ÞjH ã                  óÜ  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
ZddlZddlZddlZddlZddlZddlZddlZddlZddlmZmZ 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%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,  ej-        ¦   «         Z. ej-        ¦   «         Z/da0de1d<   da2 ej3        dej4        ¦  «        Z5 ej3        d¦  «        Z6 ej3        dej4        ¦  «        Z7 ej3        dej4        ¦  «        Z8džd„Z9dŸd„Z:d d„Z;d¡d$„Z<d¢d(„Z=d£d*„Z>d¤d-„Z? ed.¬/¦  «         G d0„ d1¦  «        ¦   «         Z@ ed.¬/¦  «         G d2„ d3¦  «        ¦   «         ZA ed.¬/¦  «         G d4„ d5¦  «        ¦   «         ZB ed.¬/¦  «         G d6„ d7¦  «        ¦   «         ZC ed.¬/¦  «         G d8„ d9¦  «        ¦   «         ZD ed.¬/¦  «         G d:„ d;¦  «        ¦   «         ZE ed.¬/¦  «         G d<„ d=¦  «        ¦   «         ZFd¥d@„ZGd¦dB„ZHd¦dC„ZId§dE„ZJddddFœd¨dP„ZKddddFœd©dR„ZL G dS„ dT¦  «        ZM G dU„ dVejN        ¦  «        ZO ed.¬/¦  «         G dW„ dX¦  «        ¦   «         ZP G dY„ dZ¦  «        ZQ G d[„ d\¦  «        ZRd]d]d]ddddd^d_ddd`œdªdr„ZSdd]d]d_dsdddddtœ	d«d~„ZTdddddœd¬d€„ZUd­d‚„ZVd®dƒ„ZWd¯d…„ZXddddd†d.d.dd‡œd°d’„ZYd±d“„ZZd±d”„Z[ej\        d²d˜„¦   «         Z]ej\        d³dš„¦   «         Z^d.d›œd´d�„Z_dS )µz;Lightweight in-process API wrapper around WanGP generation.é    )ÚannotationsN)Ú	dataclassÚfield)ÚPath)ÚAnyÚIteratorÚSequence)ÚImage)ÚVideoPreview)Úfit_video_lengthÚnormalize_output_frame_count)ÚGALLERY_SOURCESÚgallery_state_defaults)Úset_main_generation_running)Úget_virtual_media_vsourceÚparse_virtual_media_pathÚreplace_virtual_media_sourcez'_WanGPRuntime | None'Ú_RUNTIMEFz_^(?:prompt|sample|sliding window|window|chunk|task|step|phase|pass)\s+\d+\s*/\s*\d+\s*(?:,\s*)?z^\[\s*\d+\s*/\s*\d+\s*\]\s*z^[\d:.]+\s*[smh]?$z!^\s*([0-9]+(?:\.[0-9]+)?)\s*s\s*$Úvaluer   ÚreturnÚboolc                óä   — | €dS t          | t          ¦  «        r!t          |                      ¦   «         ¦  «        S t          | t          t
          f¦  «        rt          d„ | D ¦   «         ¦  «        S dS )NFc              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©N)Ú_has_media_setting©Ú.0Úitems     ú2C:\Users\johnn\OneDrive\Documents\AI\shared\api.pyú	<genexpr>z%_has_media_setting.<locals>.<genexpr>2   s+   è è € Ð>Ð>°Õ% dÑ+Ô+Ð>Ð>Ð>Ð>Ð>Ð>ó    T)Ú
isinstanceÚstrr   ÚstripÚlistÚtupleÚany©r   s    r   r   r   ,   sl   € Ø€}ØˆuÝ�%�ÑÔð #Ý�E—K’K‘M”MÑ"Ô"Ð"Ý�%�$¥˜Ñ'Ô'ð ?ÝÐ>Ð>¸Ð>Ñ>Ô>Ñ>Ô>Ð>Øˆ4r!   Ú
definitionú	list[str]c                ó¾  — t          | t          ¦  «        sg S g }|                      dd¦  «        pdD ]e}t          |t          t          f¦  «        rt          |¦  «        dk    r|d         n|}t          |pd¦  «        }||vr|                     |¦  «         Œf|                      dd¦  «        pdD ],}t          |pd¦  «        }||vr|                     |¦  «         Œ-|S )NÚchoices© é   Ú Ú	selection)r"   ÚdictÚgetr%   r&   Úlenr#   Úappend)r)   ÚvaluesÚchoicer   s       r   Ú_declared_choice_valuesr7   6   sõ   € Ý�j¥$Ñ'Ô'ð Øˆ	Ø€FØ—.’. ¨BÑ/Ô/Ð5°2ð !ð !ˆÝ'¨µµu°Ñ>Ô>Ð^Å3ÀvÁ;Ä;ÐQRÂ?À?��q”	�	ÐX^ˆÝ�E�K˜RÑ Ô ˆØ˜ÐÐØ�MŠM˜%Ñ Ô Ð øØ—’ ¨RÑ0Ô0Ð6°Bð !ð !ˆÝ�E�K˜RÑ Ô ˆØ˜ÐÐØ�MŠM˜%Ñ Ô Ð øØ€Mr!   ÚexistingÚflagsr#   c                ób   — t          | pd¦  «        }t          |pd¦  «        D ]}||vr||z  }Œ|S ©Nr/   ©r#   )r8   r9   r   Úflags       r   Ú_add_unique_flagsr>   F   sH   € Ý��˜BÑÔ€EÝ�E�K˜RÑ Ô ð ð ˆØ�uÐÐØ�T‰MˆEøØ€Lr!   Úsettingsúdict[str, Any]Ú	model_defúdict[str, str]c                ó´  ‡‡— i }t          |                      dd¦  «        pd¦  «        Št          |                     dd¦  «        pd¦  «        }t          ˆfd„dD ¦   «         ¦  «        smt          |                      d¦  «        ¦  «        rd|v rt	          ‰d¦  «        Šn6t          |                      d¦  «        ¦  «        rd	|v rt	          ‰d	¦  «        Št          |                      d
¦  «        ¦  «        rd|v rt	          ‰d¦  «        Š‰t          |                      dd¦  «        pd¦  «        k    r
‰| d<   ‰|d<   t          |                      dd¦  «        pd¦  «        }t          |                      d¦  «        ¦  «        rZd|vrVt          d„ t          |                     d¦  «        ¦  «        D ¦   «         d¦  «        }|rt	          ||¦  «        }|| d<   ||d<   t          |                      dd¦  «        pd¦  «        }t          |                      d¦  «        ¦  «        }t          |                      d¦  «        ¦  «        }t          |                      d¦  «        ¦  «        }	|s|s|	rf|	rdn|rdndŠt          ˆfd„t          |                     d¦  «        ¦  «        D ¦   «         d¦  «        }
|
r‰|vrt	          ||
¦  «        }|| d<   ||d<   |S )NÚimage_prompt_typer/   Úimage_prompt_types_allowedc              3  ó    •K  — | ]}|‰v V — Œ	d S r   r-   )r   r=   rD   s     €r   r    z,apply_media_flag_defaults.<locals>.<genexpr>R   s)   øè è € Ð;Ð;¨TˆtÐ(Ð(Ð;Ð;Ð;Ð;Ð;Ð;r!   ÚSVLÚvideo_sourceÚVÚimage_startÚSÚ	image_endÚEÚvideo_prompt_typeÚ
image_refsÚIc              3  ó"   K  — | ]
}d |v ¯|V — ŒdS )rP   Nr-   ©r   r   s     r   r    z,apply_media_flag_defaults.<locals>.<genexpr>_   s.   è è € Ð~Ð~¨ÐqtÐx}Ðq}Ðq}˜uÐq}Ðq}Ðq}Ðq}Ð~Ð~r!   Úimage_ref_choicesÚaudio_prompt_typeÚaudio_guideÚaudio_guide2Úaudio_guide3ÚDÚBÚAc              3  ó$   •K  — | ]
}‰|v ¯|V — Œd S r   r-   )r   r   Úrequired_flags     €r   r    z,apply_media_flag_defaults.<locals>.<genexpr>k   s[   øè è € ð  Mð  M Uð  vCð  GLð  vLð  vL˜5ð  vLð  vLð  vLð  vLð  Mð  Mr!   Úaudio_prompt_type_sources)r#   r2   r'   r   r>   Únextr7   )r?   rA   ÚinferredÚallowed_image_flagsrN   Úreference_moderT   Úhas_audio_guideÚhas_audio_guide2Úhas_audio_guide3Ú
audio_moderD   r\   s              @@r   Úapply_media_flag_defaultsrf   N   sO  øø€ Ø€HÝ˜HŸLšLÐ)<¸bÑAÔAÐGÀRÑHÔHÐÝ˜iŸmšmÐ,HÈ"ÑMÔMÐSÐQSÑTÔTÐÝÐ;Ð;Ð;Ð;°UÐ;Ñ;Ô;Ñ;Ô;ð JÝ˜hŸlšl¨>Ñ:Ô:Ñ;Ô;ð 	JÀÐGZÐ@ZÐ@ZÝ 1Ð2CÀSÑ IÔ IÐÐÝ §¢¨]Ñ ;Ô ;Ñ<Ô<ð 	JÀÐH[ÐA[ÐA[Ý 1Ð2CÀSÑ IÔ IÐÝ˜(Ÿ,š, {Ñ3Ô3Ñ4Ô4ð F¸Ð@SÐ9SÐ9SÝ-Ð.?ÀÑEÔEÐØ�C §¢Ð-@À"Ñ EÔ EÐ KÈÑLÔLÒLÐLØ(9ˆÐ$Ñ%Ø(9ˆÐ$Ñ%å˜HŸLšLÐ)<¸bÑAÔAÐGÀRÑHÔHÐÝ˜(Ÿ,š, |Ñ4Ô4Ñ5Ô5ð >¸#ÐEVÐ:VÐ:VÝÐ~Ð~Õ2IÈ)Ï-Ê-ÐXkÑJlÔJlÑ2mÔ2mÐ~Ñ~Ô~ð  ACñ  Dô  DˆØð 	>Ý 1Ð2CÀ^Ñ TÔ TÐØ,=ˆHÐ(Ñ)Ø,=ˆHÐ(Ñ)å˜HŸLšLÐ)<¸bÑAÔAÐGÀRÑHÔHÐÝ(¨¯ª°mÑ)DÔ)DÑEÔE€OÝ)¨(¯,ª,°~Ñ*FÔ*FÑGÔGÐÝ)¨(¯,ª,°~Ñ*FÔ*FÑGÔGÐØð >Ð*ð >Ð.>ð >Ø/ÐU˜˜Ð<LÐ5U°S°SÐRUˆÝð  Mð  Mð  Mð  MÕ.EÀiÇmÂmÐToÑFpÔFpÑ.qÔ.qð  Mñ  Mô  Mð  OQñ  Rô  Rˆ
Øð 	>˜-Ð/@Ð@Ð@Ý 1Ð2CÀZÑ PÔ PÐØ,=ˆHÐ(Ñ)Ø,=ˆHÐ(Ñ)Ø€Or!   Úruntime_moduleÚ
model_typeÚintc           	     óŽ  — i }|                       |¦  «                             |d         ||¦  «         |                     d¦  «        }|�|S |                     di ¦  «                             d¦  «        }|�|S t          d|                     dd¦  «        |                     dd	¦  «        |                     d
d¦  «        ¦  «        S )NÚarchitectureÚsliding_window_sizeÚsliding_window_defaultsÚwindow_defaultéa   Úframes_minimumé   Úframes_stepsé   Úframes_offsetr.   )Úget_model_handlerÚupdate_default_settingsr2   r   )rg   rh   rA   Úhandler_defaultsrl   s        r   Ú_model_frames_maximumrx   s   sò   € ØÐØ×$Ò$ ZÑ0Ô0×HÒHÈÐSaÔIbÐdmÐoñ  Aô  Að  AØ*×.Ò.Ð/DÑEÔEÐØÐ&Ø"Ð"Ø#Ÿ-š-Ð(AÀ2ÑFÔF×JÒJÐK[Ñ\Ô\ÐØÐ&Ø"Ð"Ý'¨¨I¯MªMÐ:JÈAÑ,NÔ,NÐPY×P]ÒP]Ð^lÐnoÑPpÔPpÐr{×rÒrð  APð  RSñ  sTô  sTñ  Uô  Uð  Ur!   údict[str, Any] | Nonec           	     óŠ  — |                       d¦  «        }t          |t          ¦  «        r9|                     ¦   «                              ¦   «                              d¦  «        sd S t                               |¦  «        }|€t          d¦  «        ‚t          | 
                    d¦  «        ¦  «        }t          j        |¦  «        r|dk    rt          d¦  «        ‚|                       d¦  «        }d }t          |t          t          f¦  «        r%t          |t          ¦  «        st          |¦  «        }nJt          |t          ¦  «        r5|                     ¦   «         r!	 t          |¦  «        }n# t          $ r Y nw xY w|€#t          |                      dd	¦  «        ¦  «        }t          j        |¦  «        r|dk    rt          d
¦  «        ‚t          t          ||z  ¦  «        ¦  «        }t!          ||                      dd¦  «        |                      dd¦  «        |                      dd¦  «        ¦  «        }|| d<   ||||dœS )NÚvideo_lengthÚszFvideo_length seconds must use a positive value such as '10s' or '5.5s'r.   r   z.video_length seconds must be greater than zeroÚ	force_fpsÚfpsé   zTA positive numeric force_fps or model fps is required when video_length uses secondsrp   rq   rr   rs   rt   )ÚinputÚsecondsr~   Úframes)r2   r"   r#   r$   ÚlowerÚendswithÚ_SECONDS_FRAME_COUNT_REÚ	fullmatchÚ
ValueErrorÚfloatÚgroupÚmathÚisfiniteri   r   Úroundr   )	r?   rA   Ú	raw_valueÚmatchr�   r}   r~   Úrequested_framesr‚   s	            r   Úapply_video_length_durationr�      sI  € Ø—’˜^Ñ,Ô,€IÝ�i¥Ñ%Ô%ð ¨Y¯_ª_Ñ->Ô->×-DÒ-DÑ-FÔ-F×-OÒ-OÐPSÑ-TÔ-Tð ØˆtÝ#×-Ò-¨iÑ8Ô8€EØ€}ÝÐaÑbÔbÐbÝ�E—K’K ‘N”NÑ#Ô#€GÝŒ=˜Ñ!Ô!ð K W°¢\ \ÝÐIÑJÔJÐJØ—’˜[Ñ)Ô)€IØ
€CÝ�)�c¥5˜\Ñ*Ô*ð µ:¸iÍÑ3NÔ3Nð Ý�IÑÔˆˆÝ	�I�sÑ	#Ô	#ð ¨	¯ªÑ(9Ô(9ð ð	Ý˜	Ñ"Ô"ˆCˆCøÝð 	ð 	ð 	ØˆDð	øøøà
€{Ý�I—M’M %¨Ñ,Ô,Ñ-Ô-ˆÝŒ=˜ÑÔð q ¨¢ ÝÐoÑpÔpÐpÝ�5 ¨3¡Ñ/Ô/Ñ0Ô0ÐÝÐ.°	·²Ð>NÐPQÑ0RÔ0RÐT]×TaÒTaÐbpÐrsÑTtÔTtÐv÷  wDò  wDð  ETð  VWñ  wXô  wXñ  Yô  Y€FØ%€Hˆ^ÑØ¨7¸3È&ÐQÐQÐQs   ÅE. Å.
E;Å:E;Útextú
str | Nonec                ó
  — t          | pd¦  «                             ¦   «         }t          |¦  «        dk    rdS d„ |                     d¦  «        D ¦   «         p|g}d}|D ]Ÿ}|}	 t                               d|¦  «        }t                               d|¦  «        }|                     d¦  «        }||k    rnd}|                     ¦   «         }Œit          |¦  «        dk    rt           	                    |¦  «        s|c S Œ |rdn|S )Nr/   r   c                ó€   — g | ];}t          |                     ¦   «         ¦  «        d k    ¯'|                     ¦   «         ‘Œ<S )r   )r3   r$   )r   Úparts     r   ú
<listcomp>z.extract_status_phase_label.<locals>.<listcomp>    s;   € ÐSÐSÐS˜d½SÀÇÂÁÄÑ=NÔ=NÐQRÒ=RÐ=RˆT�ZŠZ‰\Œ\Ð=RÐ=RÐ=Rr!   ú|FTz -:,)
r#   r$   r3   ÚsplitÚ_STATUS_INDEX_REÚsubÚ_STATUS_STEP_PREFIX_REÚlstripÚ_STATUS_TIME_ONLY_REr†   )r‘   Úraw_textÚpartsÚstripped_wrapperr•   Ú
phase_textÚcleaneds          r   Úextract_status_phase_labelr£   œ   s  € Ý�4�:˜2‰Œ×$Ò$Ñ&Ô&€HÝ
ˆ8�}„}˜ÒÐØˆrØSÐS h§n¢n°SÑ&9Ô&9ÐSÑSÔSÐaÐX`ÐWa€EØÐØð ð ˆØˆ
ð	)Ý&×*Ò*¨2¨zÑ:Ô:ˆGÝ,×0Ò0°°WÑ=Ô=ˆGØ—n’n VÑ,Ô,ˆGØ˜*Ò$Ð$ØØ#ÐØ Ÿš™œˆJð	)õ ˆz‰?Œ?˜QÒÐÕ';×'EÒ'EÀjÑ'QÔ'QÐØÐÐÐøØ!Ð/ˆ2ˆ2 xÐ/r!   T)Úfrozenc                  ó$   — e Zd ZU ded<   ded<   dS )ÚStreamMessager#   Ústreamr‘   N©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r-   r!   r   r¦   r¦   ±   s"   € € € € € € à€K€K�KØ€I€I�I€I€Ir!   r¦   c                  ó¤   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	Zd
ed<   d	Zd
ed<   d	Zd
ed<   d	Zded<   d	Zded<   d	Z	ded<   d	Z
ded<   d	S )ÚProgressUpdater#   ÚphaseÚstatusri   Úprogressú
int | NoneÚcurrent_stepÚtotal_stepsNr’   Ú	raw_phaseÚunitÚtask_idÚ
task_indexÚ
task_countÚwindow_indexÚwindow_count)r©   rª   r«   r¬   rµ   r¶   r·   r¸   r¹   rº   r»   r-   r!   r   r®   r®   ·   s¼   € € € € € € à€J€J�JØ€K€K�KØ€M€M�MØÐÐÑØÐÐÑØ €IÐ Ð Ð Ñ Ø€DÐÐÐÑØ€GÐÐÐÑØ!€JÐ!Ð!Ð!Ñ!Ø!€JÐ!Ð!Ð!Ñ!Ø#€LÐ#Ð#Ð#Ñ#Ø#€LÐ#Ð#Ð#Ñ#Ð#Ð#r!   r®   c                  óZ   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   dZded<   dS )ÚPreviewUpdatezImage.Image | NoneÚimager#   r¯   r°   ri   r±   r²   r³   r´   Nzbytes | NoneÚvideo)r©   rª   r«   r¬   r¿   r-   r!   r   r½   r½   Ç   sb   € € € € € € àÐÐÑØ€J€J�JØ€K€K�KØ€M€M�MØÐÐÑØÐÐÑØ€EÐÐÐÑÐÐr!   r½   c                  óT   — e Zd ZU ded<   dZded<    eej        ¬¦  «        Zded<   dS )	ÚSessionEventr#   ÚkindNr   Údata©Údefault_factoryrˆ   Ú	timestamp)r©   rª   r«   r¬   rÃ   r   ÚtimerÆ   r-   r!   r   rÁ   rÁ   Ò   sL   € € € € € € à€I€I�IØ€DÐÐÐÑØ�u¨T¬YÐ7Ñ7Ô7€IÐ7Ð7Ð7Ñ7Ð7Ð7r!   rÁ   c                  óÔ   — e Zd ZU ded<   ded<   dZded<   dZded	<   dZded
<   dZded<   dZded<   dZ	ded<   dZ
ded<   dZded<    ee¬¦  «        Zded<   eddœdd„¦   «         ZdS )ÚGeneratedArtifactr’   Úpathr#   Ú
media_typer/   Ú	client_idNr   Úvideo_tensor_uint8Úvideo_tensor_hdrFr   ÚhdrÚaudio_tensorr²   Úaudio_sampling_rateúfloat | Noner~   Úflashvsr_continue_cacherÄ   zdict[str, bytes]Ú
side_files©Údefault_client_idÚpayloadr@   rÖ   r   ú'GeneratedArtifact | None'c               ó¢  — t          |t          ¦  «        sd S  | t          |                     d¦  «        pd¦  «        pd t          |                     d¦  «        pd¦  «        t          |                     d¦  «        p|pd¦  «                             ¦   «         |                     d¦  «        |                     d¦  «        t          |                     dd	¦  «        ¦  «        |                     d
¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        |                     di ¦  «        ¬¦  «        S )NrÊ   r/   rË   r¿   rÌ   rÍ   rÎ   rÏ   FrÐ   rÑ   r~   rÓ   rÔ   )rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   r~   rÓ   rÔ   )r"   r1   r#   r2   r$   r   )Úclsr×   rÖ   s      r   Úfrom_payloadzGeneratedArtifact.from_payloadç   s%  € å˜'¥4Ñ(Ô(ð 	Ø�4ØˆsÝ�W—[’[ Ñ(Ô(Ð.¨BÑ/Ô/Ð7°4Ý˜7Ÿ;š; |Ñ4Ô4Ð?¸Ñ@Ô@Ý˜'Ÿ+š+ kÑ2Ô2ÐMÐ6GÐMÈ2ÑNÔN×TÒTÑVÔVØ&Ÿ{š{Ð+?Ñ@Ô@Ø$Ÿ[š[Ð);Ñ<Ô<Ý�W—[’[ ¨Ñ.Ô.Ñ/Ô/Ø Ÿš ^Ñ4Ô4Ø '§¢Ð,AÑ BÔ BØ—’˜EÑ"Ô"Ø$+§K¢KÐ0IÑ$JÔ$JØ—{’{ <°Ñ4Ô4ð
ñ 
ô 
ð 	
r!   )r×   r@   rÖ   r#   r   rØ   )r©   rª   r«   r¬   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   r~   rÓ   r   r1   rÔ   ÚclassmethodrÛ   r-   r!   r   rÉ   rÉ   Ù   s   € € € € € € àÐÐÑØ€O€O�OØ€IÐÐÐÑØ"ÐÐ"Ð"Ð"Ñ"Ø ÐÐ Ð Ð Ñ Ø€CÐÐÐÑØ€LÐÐÐÑØ&*ÐÐ*Ð*Ð*Ñ*Ø€CÐÐÐÑØ#'ÐÐ'Ð'Ð'Ñ'Ø#( 5¸Ð#>Ñ#>Ô#>€JÐ>Ð>Ð>Ñ>àØOQð 
ð 
ð 
ð 
ð 
ñ „[ð
ð 
ð 
r!   rÉ   c                  ór   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   dZded<   edd„¦   «         ZdS )ÚGenerationResultr   Úsuccessr*   Úgenerated_fileszlist['GenerationError']Úerrorsri   Útotal_tasksÚsuccessful_tasksÚfailed_tasksr-   útuple[GeneratedArtifact, ...]Ú	artifactsr   c                ón   — t          | j        ¦  «        dk    ot          d„ | j        D ¦   «         ¦  «        S )Nr   c              3  ó$   K  — | ]}|j         V — Œd S r   )Ú	cancelled)r   Úerrors     r   r    z-GenerationResult.cancelled.<locals>.<genexpr>  s$   è è € Ð+UÐ+UÀ¨E¬OÐ+UÐ+UÐ+UÐ+UÐ+UÐ+Ur!   )r3   rá   Úall©Úselfs    r   ré   zGenerationResult.cancelled  s5   € å�4”;ÑÔ !Ò#ÐU­Ð+UÐ+UÈÌÐ+UÑ+UÔ+UÑ(UÔ(UÐUr!   N©r   r   )r©   rª   r«   r¬   ræ   Úpropertyré   r-   r!   r   rÞ   rÞ   ú   s�   € € € € € € à€M€M�MØÐÐÑØ#Ð#Ð#Ñ#ØÐÐÑØÐÐÑØÐÐÑØ/1€IÐ1Ð1Ð1Ñ1àðVð Vð Vñ „XðVð Vð Vr!   rÞ   c                  ód   — e Zd ZU ded<   dZded<   dZded<   dZded	<   dd„Zedd„¦   «         Z	dS )ÚGenerationErrorr#   ÚmessageNr²   r¸   r   r·   r’   Ústager   c                ó   — | j         S r   )rò   rì   s    r   Ú__str__zGenerationError.__str__  s
   € ØŒ|Ðr!   r   c                ó  — t          | j        pd¦  «                             ¦   «                              ¦   «         }|dk    rdS t          | j        pd¦  «                             ¦   «                              ¦   «         dk    S )Nr/   ré   Tzgeneration was cancelled)r#   ró   r$   rƒ   rò   )rí   ró   s     r   ré   zGenerationError.cancelled  sq   € å�D”JÐ$ "Ñ%Ô%×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5ˆØ�KÒÐØ�4Ý�4”<Ð% 2Ñ&Ô&×,Ò,Ñ.Ô.×4Ò4Ñ6Ô6Ð:TÒTÐTr!   ©r   r#   rî   )
r©   rª   r«   r¬   r¸   r·   ró   rõ   rï   ré   r-   r!   r   rñ   rñ   	  sŒ   € € € € € € à€L€L�LØ!€JÐ!Ð!Ð!Ñ!Ø€GÐÐÐÑØ€EÐÐÐÑðð ð ð ð ðUð Uð Uñ „XðUð Uð Ur!   rñ   Úplugin_dataútuple[bool, bool]c                óf  — t          | t          ¦  «        si n|                      di ¦  «        }t          |t          ¦  «        sdS t          |                     d¦  «        p|                     d¦  «        ¦  «        t          |                     d¦  «        p|                     d¦  «        ¦  «        fS )NÚapi©FFÚreturn_video_uint8Úreturn_mediaÚreturn_audio)r"   r1   r2   r   )rø   Úapi_optionss     r   Úget_api_output_optionsr    sÉ   € Ý& {µDÑ9Ô9ÐY�"�"¸{¿ºÈuÐVXÑ?YÔ?Y€KÝ�k¥4Ñ(Ô(ð Øˆ|Ý�—’Ð 4Ñ5Ô5ÐX¸¿ºÈÑ9XÔ9XÑYÔYÕ[_Ð`k×`oÒ`oÐp~Ñ`Ô`ð  acð  DO÷  DSò  DSð  Tbñ  Dcô  Dcñ  \dô  \dð  dð  dr!   Úoutput_video_framesc                ó$  ‡— 	 dd l Šn# t          $ r d ŠY nw xY w‰�Ã‰                     | ¦  «        r®| j        ‰j        k    r| S |                      ¦   «                              ¦   «                              ¦   «                              dd¦  «         	                    d¦  «         
                    d¦  «                             ¦   «                              ‰j        ¦  «        S t          | t          ¦  «        rEt          | ¦  «        dk    r2‰�0‰                     | d         ¦  «        rt!          | d         ¦  «        S t          | t          ¦  «        rÂ‰�Àˆfd„| D ¦   «         }t          |¦  «        t          | ¦  «        k    r4|r2t#          ˆfd„|D ¦   «         ¦  «        r‰                     |d¬¦  «        S t          |¦  «        t          | ¦  «        k    r>|r<t#          ˆfd	„|D ¦   «         ¦  «        r!‰                     d
„ |D ¦   «         d¬¦  «        S d S )Nr   éÿÿÿÿr.   ç      ð?g     à_@c                ó>   •— g | ]}‰                      |¦  «        ¯|‘ŒS r-   ©Ú	is_tensor©r   r   Útorchs     €r   r–   z2_coerce_api_video_tensor_uint8.<locals>.<listcomp>.  ó*   ø€ ÐQÐQÐQ˜D¸5¿?º?È4Ñ;PÔ;PÐQ�4ÐQÐQÐQr!   c              3  óN   •K  — | ]}|j         ‰j        k    o
|j        d k    V — Œ dS ©rs   N©ÚdtypeÚuint8Úndimr	  s     €r   r    z1_coerce_api_video_tensor_uint8.<locals>.<genexpr>/  ó^   øè è € ð  HJð  HJÐy}ÈÌ
ÐV[ÔVaÒHaÐHtÐfjÔfoÐstÒftð  HJð  HJð  HJð  HJð  HJð  HJr!   ©Údimc              3  óN   •K  — | ]}|j         ‰j        k    o
|j        d k    V — Œ dS r  r  r	  s     €r   r    z1_coerce_api_video_tensor_uint8.<locals>.<genexpr>1  r  r!   c                ó,   — g | ]}t          |¦  «        ‘ŒS r-   )Ú_coerce_api_video_tensor_uint8r   s     r   r–   z2_coerce_api_video_tensor_uint8.<locals>.<listcomp>2  s!   € ÐWÐWÐWÀtÕ<¸TÑBÔBÐWÐWÐWr!   )r
  Ú	Exceptionr  r  r  ÚdetachÚcpurˆ   ÚclampÚaddÚmulrŒ   Útor"   r%   r3   r  rë   Úcat©r  Útensorsr
  s     @r   r  r  "  s’  ø€ ðØˆˆˆˆøÝð ð ð ØˆˆˆðøøøàÐ˜UŸ_š_Ð-@ÑAÔAÐØÔ$¨¬Ò3Ð3Ø&Ð&Ø"×)Ò)Ñ+Ô+×/Ò/Ñ1Ô1×7Ò7Ñ9Ô9×?Ò?ÀÀAÑFÔF×JÒJÈ3ÑOÔO×SÒSÐTYÑZÔZ×`Ò`ÑbÔb×eÒeÐfkÔfqÑrÔrÐrÝÐ%¥tÑ,Ô,ð FµÐ5HÑ1IÔ1IÈQÒ1NÐ1NÐSXÐSdÐin×ixÒixð  zMð  NOô  zPñ  jQô  jQÐSdÝ-Ð.AÀ!Ô.DÑEÔEÐEÝÐ%¥tÑ,Ô,ð `°Ð1BØQÐQÐQÐQÐ$7ÐQÑQÔQˆÝˆw‰<Œ<�3Ð2Ñ3Ô3Ò3Ð3¸Ð3ÅCð  HJð  HJð  HJð  HJð  BIð  HJñ  HJô  HJñ  EJô  EJÐ3Ø—9’9˜W¨!�9Ñ,Ô,Ð,Ýˆw‰<Œ<�3Ð2Ñ3Ô3Ò3Ð3¸Ð3ÅCð  HJð  HJð  HJð  HJð  BIð  HJñ  HJô  HJñ  EJô  EJÐ3Ø—9’9ÐWÐWÈwÐWÑWÔWÐ]^�9Ñ_Ô_Ð_Øˆ4ó   ƒ ˆ–c                óJ  ‡— 	 dd l Šn# t          $ r d ŠY nw xY w‰�)‰                     | ¦  «        r| j        ‰j        k    r| nd S t          | t          ¦  «        rPt          | ¦  «        dk    r=‰�;‰                     | d         ¦  «        r | d         j        ‰j        k    r| d         nd S t          | t          ¦  «        rd‰�bˆfd„| D ¦   «         }t          |¦  «        t          | ¦  «        k    r4|r2t          ˆfd„|D ¦   «         ¦  «        r‰ 	                    |d¬¦  «        S d S )Nr   r.   c                ó>   •— g | ]}‰                      |¦  «        ¯|‘ŒS r-   r  r	  s     €r   r–   z0_coerce_api_video_tensor_hdr.<locals>.<listcomp>@  r  r!   c              3  óN   •K  — | ]}|j         ‰j        k    o
|j        d k    V — Œ dS r  r  r	  s     €r   r    z/_coerce_api_video_tensor_hdr.<locals>.<genexpr>A  r  r!   r  )
r
  r  r  r  r  r"   r%   r3   rë   r  r   s     @r   Ú_coerce_api_video_tensor_hdrr&  6  s¤  ø€ ðØˆˆˆˆøÝð ð ð ØˆˆˆðøøøàÐ˜UŸ_š_Ð-@ÑAÔAÐØ&9Ô&?À5Ä;Ò&NÐ&NÐ"Ð"ÐTXÐXÝÐ%¥tÑ,Ô,ð _µÐ5HÑ1IÔ1IÈQÒ1NÐ1NÐSXÐSdÐin×ixÒixð  zMð  NOô  zPñ  jQô  jQÐSdØ)<¸QÔ)?Ô)EÈÌÒ)TÐ)TÐ" 1Ô%Ð%ÐZ^Ð^ÝÐ%¥tÑ,Ô,ð -°Ð1BØQÐQÐQÐQÐ$7ÐQÑQÔQˆÝˆw‰<Œ<�3Ð2Ñ3Ô3Ò3Ð3¸Ð3ÅCð  HJð  HJð  HJð  HJð  BIð  HJñ  HJô  HJñ  EJô  EJÐ3Ø—9’9˜W¨!�9Ñ,Ô,Ð,Øˆ4r"  Úoutput_audio_datac                óJ   — | €d nt          j        | t           j        ¬¦  «        S )N)r  )ÚnpÚasarrayÚfloat32)r'  s    r   Ú_coerce_api_audio_tensorr,  F  s%   € Ø$Ð,ˆ4ˆ4µ"´*Ð=NÕVXÔV`Ð2aÑ2aÔ2aÐar!   ©rÏ   rÓ   rÔ   rÌ   Ú
video_pathrË   Úoutput_audio_sampling_rateÚ
output_fpsrÏ   rÓ   rÔ   údict[str, bytes] | Nonec               ó  — t          | pd¦  «                             ¦   «         } t          | ¦  «        dk    rd S t          |t          ¦  «        r(t          |¦  «        dk    rt          |d         ¦  «        nt          |pd¦  «        }
| |
t          |pd¦  «        |rd nt          |¦  «        |rt          |¦  «        nd t          |¦  «        t          |¦  «        |rt          |¦  «        nd |rt          |¦  «        nd ||	�|	ni dœS )Nr/   r   r¿   )rÌ   rÊ   rË   rÍ   rÎ   rÏ   rÐ   rÑ   r~   rÓ   rÔ   )r#   r$   r3   r"   r%   r  r&  r   r,  ri   rˆ   )rÌ   r.  rË   r  r'  r/  r0  rÏ   rÓ   rÔ   Úoutput_paths              r   Ú!build_api_output_artifact_payloadr4  J  s  € Ý�I�O Ñ$Ô$×*Ò*Ñ,Ô,€IÝ
ˆ9�~„~˜ÒÐØˆtÝ(2°:½tÑ(DÔ(DÐwÍÈZÉÌÐ[\ÒI\ÐI\•#�j ”mÑ$Ô$Ð$ÕbeÐfpÐfvÐtvÑbwÔbw€KàØÝ˜*Ð/¨Ñ0Ô0Ø&)Ðb˜d˜dÕ/MÐNaÑ/bÔ/bØQTÐ^Õ8Ð9LÑMÔMÐMÐZ^Ý�C‰yŒyÝ0Ð1BÑCÔCØB\Ðf�sÐ#=Ñ>Ô>Ð>ÐbfØ$.Ð8�u�ZÑ Ô Ð °DØ#:Ø$.Ð$:�j�jÀðð ð r!   Úgenc               ó~   — t          |||||||||	|
¬¦
  «
        }|€dS ||                      di ¦  «        |d         <   dS )Nr-  FÚapi_output_artifactsrÌ   T)r4  Ú
setdefault)r5  rÌ   r.  rË   r  r'  r/  r0  rÏ   rÓ   rÔ   r×   s               r   Ústore_api_output_artifactr9  ^  su   € Ý/°	¸:ÀzÐSfÐhyð  |Vð  Xbð  hkð  E\ð  isð  tñ  tô  t€GØ€ØˆuØGN€C‡N‚NÐ)¨2Ñ.Ô.¨w°{Ô/CÑDØˆ4r!   c                  ó\   — e Zd Zdd„Zddd	„Zdd
„Zdd„Zddd„Zddd„Ze	dd„¦   «         Z
dS )ÚSessionStreamr   ÚNonec                óŒ   — t          j        ¦   «         | _        t          j        ¦   «         | _        t          ¦   «         | _        d S r   )ÚqueueÚQueueÚ_queueÚ	threadingÚEventÚ_closedÚobjectÚ	_sentinelrì   s    r   Ú__init__zSessionStream.__init__g  s-   € Ý:?¼+¹-¼-ˆŒÝ ”Ñ(Ô(ˆŒÝ™œˆŒˆˆr!   NrÂ   r#   rÃ   r   c                óŽ   — | j                              ¦   «         rd S | j                             t	          ||¬¦  «        ¦  «         d S )N©rÂ   rÃ   )rC  Úis_setr@  ÚputrÁ   )rí   rÂ   rÃ   s      r   rJ  zSessionStream.putl  sD   € ØŒ<×ÒÑ Ô ð 	ØˆFØŒ�Š�¨$°TÐ:Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;r!   c                ó¬   — | j                              ¦   «         rd S | j                              ¦   «          | j                             | j        ¦  «         d S r   )rC  rI  Úsetr@  rJ  rE  rì   s    r   ÚclosezSessionStream.closeq  sM   € ØŒ<×ÒÑ Ô ð 	ØˆFØŒ×ÒÑÔÐØŒ�Š˜œÑ'Ô'Ð'Ð'Ð'r!   c                óÞ   — 	 	 | j                              ¦   «          n# t          j        $ r Y nw xY wŒ1| j                             ¦   «         r!| j                              | j        ¦  «         d S d S r   )r@  Ú
get_nowaitr>  ÚEmptyrC  rI  rJ  rE  rì   s    r   ÚclearzSessionStream.clearw  sˆ   € ð	ðØ”×&Ò&Ñ(Ô(Ð(Ð(øÝ”;ð ð ð Ø�ðøøøð	ð
 Œ<×ÒÑ Ô ð 	,ØŒK�OŠO˜DœNÑ+Ô+Ð+Ð+Ð+ð	,ð 	,s   ƒ �/®/ÚtimeoutrÒ   úSessionEvent | Nonec                ó‚   — 	 | j                              |¬¦  «        }n# t          j        $ r Y d S w xY w|| j        u rd S |S ©N©rR  )r@  r2   r>  rP  rE  )rí   rR  r   s      r   r2   zSessionStream.get€  sY   € ð	Ø”;—?’?¨7�?Ñ3Ô3ˆDˆDøÝŒ{ð 	ð 	ð 	Ø�4�4ð	øøøà�4”>Ð!Ð!Ø�4Øˆs   ‚ ž1°1úIterator[SessionEvent]c              #  óz   K  — 	 |                       |¬¦  «        }|€| j                             ¦   «         rd S Œ5|V — Œ9)NTrV  )r2   rC  rI  )rí   rR  Úevents      r   ÚiterzSessionStream.iter‰  sO   è è € ð	Ø—H’H W�HÑ-Ô-ˆEØˆ}Ø”<×&Ò&Ñ(Ô(ð Ø�EØØˆKˆKˆKð	r!   r   c                ó4   — | j                              ¦   «         S r   )rC  rI  rì   s    r   ÚclosedzSessionStream.closed’  s   € àŒ|×"Ò"Ñ$Ô$Ð$r!   ©r   r<  r   )rÂ   r#   rÃ   r   r   r<  )rR  rÒ   r   rS  )rR  rÒ   r   rW  rî   )r©   rª   r«   rF  rJ  rM  rQ  r2   rZ  rï   r\  r-   r!   r   r;  r;  f  s»   € € € € € ð"ð "ð "ð "ð
<ð <ð <ð <ð <ð
(ð (ð (ð (ð,ð ,ð ,ð ,ðð ð ð ð ðð ð ð ð ð ð%ð %ð %ñ „Xð%ð %ð %r!   r;  c                  ó`   — e Zd Z	 dddœdd„Zdd„Zedd„¦   «         Zdd„Zdd„Zdd„Z	dd„Z
dS )Ú_OutputCaptureNT)Úconsole_isattyÚstream_namer#   Úconsoleúio.TextIOBase | Noner`  r   r   r<  c               óf   — || _         || _        || _        t          |¦  «        | _        d| _        d S r;   )Ú_stream_nameÚ
_emit_lineÚ_consoler   Ú_console_isattyÚ_buffer)rí   ra  Ú	emit_linerb  r`  s        r   rF  z_OutputCapture.__init__˜  s5   € ð (ˆÔØ#ˆŒØˆŒÝ# NÑ3Ô3ˆÔØˆŒˆˆr!   c                ó   — dS ©NTr-   rì   s    r   Úwritablez_OutputCapture.writable¦  s   € Øˆtr!   c                óH   — t          t          | j        dd¦  «        ¦  «        S )NÚencodingúutf-8)r#   Úgetattrrg  rì   s    r   ro  z_OutputCapture.encoding©  s   € å•7˜4œ=¨*°gÑ>Ô>Ñ?Ô?Ð?r!   c                ó   — | j         S r   )rh  rì   s    r   Úisattyz_OutputCapture.isatty­  s   € ØÔ#Ð#r!   r‘   ri   c                ó´   — |sdS | j         �| j                              |¦  «         | xj        |z  c_        |                      d¦  «         t	          |¦  «        S )Nr   F)rg  Úwriteri  Ú_drainr3   )rí   r‘   s     r   ru  z_OutputCapture.write°  s[   € Øð 	Ø�1ØŒ=Ð$ØŒM×Ò Ñ%Ô%Ð%ØˆŒ˜ÑˆŒØ�Š�EÑÔÐÝ�4‰yŒyÐr!   c                óp   — | j         �| j                              ¦   «          |                      d¦  «         d S rl  )rg  Úflushrv  rì   s    r   rx  z_OutputCapture.flush¹  s6   € ØŒ=Ð$ØŒM×ÒÑ!Ô!Ð!Ø�Š�DÑÔÐÐÐr!   Ú	flush_allc                óp  — 	 d}dD ]0}| j                              |¦  «        }|dk    r|dk     s||k     r|}Œ1|dk     rnD| j         d |…         }| j         |dz   d …         | _         |r|                      | j        |¦  «         Œ€|r0| j         r+|                      | j        | j         ¦  «         d| _         d S d S d S )NTr  )úú
r   r.   r/   )ri  Úfindrf  re  )rí   ry  Úsplit_atÚ	delimiterÚindexÚlines         r   rv  z_OutputCapture._drain¾  sò   € ð	9ØˆHØ)ð %ð %�	Øœ×)Ò)¨)Ñ4Ô4�Ø˜A’:�: 8¨a¢< <°5¸8Ò3CÐ3CØ$�HøØ˜!Š|ˆ|ØØ”< 	  	Ô*ˆDØœ<¨°1©¨¨Ô7ˆDŒLØð 9Ø—’ Ô 1°4Ñ8Ô8Ð8ð	9ð ð 	˜œð 	Ø�OŠO˜DÔ-¨t¬|Ñ<Ô<Ð<ØˆDŒLˆLˆLð	ð 	ð 	ð 	r!   r   )ra  r#   rb  rc  r`  r   r   r<  rî   r÷   )r‘   r#   r   ri   r]  )ry  r   r   r<  )r©   rª   r«   rF  rm  rï   ro  rs  ru  rx  rv  r-   r!   r   r_  r_  —  sÉ   € € € € € ð
 )-ð	ð  $ðð ð ð ð ð ðð ð ð ð ð@ð @ð @ñ „Xð@ð$ð $ð $ð $ðð ð ð ðð ð ð ð
ð ð ð ð ð r!   r_  c                  ó8   — e Zd ZU ded<   ded<   ded<   ded<   dS )	Ú_WanGPRuntimer   Úmoduler   ÚrootÚconfig_pathútuple[str, ...]Úcli_argsNr¨   r-   r!   r   rƒ  rƒ  Ð  s<   € € € € € € à€K€K�KØ€J€J�JØÐÐÑØÐÐÑÐÐr!   rƒ  c                  ó<  — e Zd Zd-d„Zd.d„Zd/d„Zd0d„Zd1d„Zd2d„Zd2d„Z	d2d„Z
d3d„Zd2d„Zd4d5d„Zd4d6d!„Zd4d5d"„Zed7d#„¦   «         Zed7d$„¦   «         Zed8d&„¦   «         Zed9d(„¦   «         Zed:d)„¦   «         Zed:d*„¦   «         Zed7d+„¦   «         Zed:d,„¦   «         ZdS );Ú
SessionJobÚsessionú'WanGPSession'r   r<  c                ó\  — || _         d | _        t          ¦   «         | _        t	          j        ¦   «         | _        t	          j        ¦   «         | _        t	          j        ¦   «         | _        t	          j        ¦   «         | _	        d | _
        d | _        g | _        d| _        d| _        d| _        d S )Nr-   r/   )Ú_sessionÚ
_callbacksr;  ÚeventsrA  rB  Ú_doneÚ_cancel_requestedÚ_webui_submission_readyÚ_webui_submission_or_doneÚ_threadÚ_resultÚ_webui_manifestÚ_webui_client_idsÚ_webui_load_queue_tokenÚ_webui_owner_call_id)rí   r‹  s     r   rF  zSessionJob.__init__Ù  sŽ   € ØˆŒØ)-ˆŒÝ#‘o”oˆŒÝ”_Ñ&Ô&ˆŒ
Ý!*¤Ñ!2Ô!2ˆÔÝ'0¤Ñ'8Ô'8ˆÔ$Ý)2¬Ñ):Ô):ˆÔ&Ø04ˆŒØ04ˆŒØ57ˆÔØ24ˆÔØ')ˆÔ$Ø$&ˆÔ!Ð!Ð!r!   Úthreadúthreading.Threadc                ó   — || _         d S r   )r•  )rí   r›  s     r   Ú_bind_threadzSessionJob._bind_threadè  s   € ØˆŒˆˆr!   Ú	callbacksúobject | Nonec                ó   — || _         d S r   )r�  )rí   rŸ  s     r   Ú_bind_callbackszSessionJob._bind_callbacksë  s   € Ø#ˆŒˆˆr!   ÚresultrÞ   c                óx   — || _         | j                             ¦   «          | j                             ¦   «          d S r   )r–  r‘  rL  r”  )rí   r£  s     r   Ú_set_resultzSessionJob._set_resultî  s6   € ØˆŒØŒ
�ŠÑÔÐØÔ&×*Ò*Ñ,Ô,Ð,Ð,Ð,r!   ÚmanifestúSequence[dict[str, Any]]Ú
client_idsúSequence[str]Úload_queue_tokenr#   c               óÞ   — t          j        t          |¦  «        ¦  «        | _        t	          d„ |D ¦   «         ¦  «        | _        t          |pd¦  «                             ¦   «         | _        d S )Nc              3  ó¢   K  — | ]J}t          |pd ¦  «                             ¦   «         ¯%t          |pd ¦  «                             ¦   «         V — ŒKdS ©r/   N)r#   r$   )r   rÌ   s     r   r    z/SessionJob._set_webui_bridge.<locals>.<genexpr>õ  sv   è è € ð  'Að  'AÈ	ÕcfÐgpÐgvÐtvÑcwÔcw×c}Òc}ÑcÔcð  'A¥s¨9¨?¸Ñ';Ô';×'AÒ'AÑ'CÔ'Cð  'Að  'Að  'Að  'Að  'Að  'Ar!   r/   )	ÚcopyÚdeepcopyr%   r—  r&   r˜  r#   r$   r™  )rí   r¦  r¨  rª  s       r   Ú_set_webui_bridgezSessionJob._set_webui_bridgeó  sw   € Ý#œ}­T°(©^¬^Ñ<Ô<ˆÔÝ!&ð  'Að  'AÐU_ð  'Añ  'Aô  'Añ  "Aô  "AˆÔÝ'*Ð+;Ð+A¸rÑ'BÔ'B×'HÒ'HÑ'JÔ'JˆÔ$Ð$Ð$r!   c                ó   — g | _         d S r   )r—  rì   s    r   Úrelease_input_payloadz SessionJob.release_input_payloadø  s   € Ø!ˆÔÐÐr!   c                óF   — d | _         | j                             ¦   «          d S r   )r–  r�  rQ  rì   s    r   Úrelease_output_payloadz!SessionJob.release_output_payloadû  s#   € ØˆŒØŒ×ÒÑÔÐÐÐr!   c                ój   — | j                              ¦   «          | j                             ¦   «          d S r   )r“  rL  r”  rì   s    r   Ú_mark_webui_submission_readyz'SessionJob._mark_webui_submission_readyÿ  s2   € ØÔ$×(Ò(Ñ*Ô*Ð*ØÔ&×*Ò*Ñ,Ô,Ð,Ð,Ð,r!   Úcall_idc                óV   — t          |pd¦  «                             ¦   «         | _        d S r;   )r#   r$   rš  )rí   r·  s     r   Ú_bind_webui_owner_callz!SessionJob._bind_webui_owner_call  s(   € Ý$'¨¨°2Ñ$6Ô$6×$<Ò$<Ñ$>Ô$>ˆÔ!Ð!Ð!r!   c                ó¾   — | j                              ¦   «          t          | j        dd ¦  «        }t          |dd ¦  «        }t	          |¦  «        r || ¦  «         d S d S )NÚ_gradio_session_proxyÚ_capture_cancelled_job)r’  rL  rq  rŽ  Úcallable)rí   ÚownerÚcaptures      r   ÚcancelzSessionJob.cancel  sh   € ØÔ×"Ò"Ñ$Ô$Ð$Ý˜œÐ'>ÀÑEÔEˆÝ˜%Ð!9¸4Ñ@Ô@ˆÝ�GÑÔð 	ØˆG�D‰MŒMˆMˆMˆMð	ð 	r!   NrR  rÒ   c           	     ó�   — | j                              |¬¦  «        st          d¦  «        ‚| j        pt	          dg g dddd¬¦  «        S )NrV  zWanGP session job timed outFr   r-   )rß   rà   rá   râ   rã   rä   ræ   )r‘  ÚwaitÚTimeoutErrorr–  rÞ   ©rí   rR  s     r   r£  zSessionJob.result  s_   € ØŒz�Š wˆÑ/Ô/ð 	>ÝÐ<Ñ=Ô=Ð=ØŒ|ð 
Õ/ØØØØØØØð 
ñ  
ô  
ð 	
r!   r   c                ój   — | j                              |¬¦  «         | j                             ¦   «         S rU  )r”  rÂ  r“  rI  rÄ  s     r   Ú'wait_for_webui_submission_or_completionz2SessionJob.wait_for_webui_submission_or_completion  s1   € ØÔ&×+Ò+°GÐ+Ñ<Ô<Ð<ØÔ+×2Ò2Ñ4Ô4Ð4r!   c                ó.   — |                       |¬¦  «        S rU  )r£  rÄ  s     r   ÚjoinzSessionJob.join  s   € Ø�{Š{ 7ˆ{Ñ+Ô+Ð+r!   c                ó4   — | j                              ¦   «         S r   )r‘  rI  rì   s    r   ÚdonezSessionJob.done!  s   € àŒz× Ò Ñ"Ô"Ð"r!   c                ó4   — | j                              ¦   «         S r   )r’  rI  rì   s    r   Úcancel_requestedzSessionJob.cancel_requested%  s   € àÔ%×,Ò,Ñ.Ô.Ð.r!   úlist[dict[str, Any]]c                ó4   — t          j        | j        ¦  «        S r   )r®  r¯  r—  rì   s    r   Úwebui_manifestzSessionJob.webui_manifest)  s   € åŒ}˜TÔ1Ñ2Ô2Ð2r!   r‡  c                ó   — | j         S r   ©r˜  rì   s    r   Úwebui_client_idszSessionJob.webui_client_ids-  s   € àÔ%Ð%r!   c                ó.   — | j         sdn| j         d         S )Nr/   r   rÑ  rì   s    r   Úprimary_client_idzSessionJob.primary_client_id1  s   € àÔ/ÐNˆrˆr°TÔ5KÈAÔ5NÐNr!   c                ó   — | j         S r   )r™  rì   s    r   Úwebui_load_queue_tokenz!SessionJob.webui_load_queue_token5  s   € àÔ+Ð+r!   c                ó4   — | j                              ¦   «         S r   )r“  rI  rì   s    r   Úwebui_submission_readyz!SessionJob.webui_submission_ready9  s   € àÔ+×2Ò2Ñ4Ô4Ð4r!   c                ó   — | j         S r   )rš  rì   s    r   Úwebui_owner_call_idzSessionJob.webui_owner_call_id=  s   € àÔ(Ð(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   r<  r   )rR  rÒ   r   rÞ   )rR  rÒ   r   r   rî   )r   rÍ  ©r   r‡  r÷   )r©   rª   r«   rF  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Š  Ø  s/  € € € € € ð'ð 'ð 'ð 'ðð ð ð ð$ð $ð $ð $ð-ð -ð -ð -ð
Kð Kð Kð Kð
"ð "ð "ð "ðð ð ð ð-ð -ð -ð -ð?ð ?ð ?ð ?ðð ð ð ð
ð 
ð 
ð 
ð 
ð5ð 5ð 5ð 5ð 5ð,ð ,ð ,ð ,ð ,ð ð#ð #ð #ñ „Xð#ð ð/ð /ð /ñ „Xð/ð ð3ð 3ð 3ñ „Xð3ð ð&ð &ð &ñ „Xð&ð ðOð Oð Oñ „XðOð ð,ð ,ð ,ñ „Xð,ð ð5ð 5ð 5ñ „Xð5ð ð)ð )ð )ñ „Xð)ð )ð )r!   rŠ  c                  óì  — e Zd Zddddddddddœ	dÒd„ZdÓd„ZdddddddddddddœdÔd-„ZdÕd0„ZdÖd×d3„ZdØd5„ZdÙdÚd6„Z	dÛd8„Z
dÛd9„ZdÜdd:œdÝd<„ZdÞd>„ZdÞd?„ZdÛd@„ZdßdA„ZdÜdàdB„ZdÛdC„ZdádE„ZdÕdF„ZdâdH„ZdØdI„ZdÜdãdM„ZdÜdädN„ZdOdOdOdddddPdQddddRœdådd„ZddOdOdQdeddddddfœ
dædo„Zddddddpœdçdq„ZdÜdèds„ZdÜdédu„ZdÜdêdv„ZdÜdëdw„Zdìdy„Z dídz„Z!dîd{„Z"dïd|„Z#dïd}„Z$d~„ Z%d„ Z&dðd€„Z'dñd‚„Z(e)dòd„„¦   «         Z*e+dðd…„¦   «         Z,dÜdód‡„Z-dÜdôd‰„Z.e+ddŠœdõd�„¦   «         Z/död�„Z0d÷d�„Z1d÷d‘„Z2ddddd’œdød™„Z3dùdœ„Z4dúdŸ„Z5dd œdûd¢„Z6düd¥„Z7dýd¦„Z8dïd§„Z9dþd©„Z:dÿd¬„Z;�d d¯„Z<�d d°„Z=�dd³„Z>dïd´„Z?�dd·„Z@�dd¹„ZAe+�ddº„¦   «         ZBe+�dd»„¦   «         ZC�dd½„ZD�dd¾„ZEe+�dd¿„¦   «         ZFe+�ddÀ„¦   «         ZG�d	dÁ„ZH�d
dÂ„ZI�ddÄ„ZJe+ddddÅœ�ddÉ„¦   «         ZK�ddÊ„ZLe+�ddÌ„¦   «         ZMe+�ddÎ„¦   «         ZNe+�ddÑ„¦   «         ZOdS (  ÚWanGPSessionNr-   TF)	r…  r†  Ú
output_dirrŸ  rˆ  Úconsole_outputr`  Úwebui_stateÚwebui_appendr…  ústr | os.PathLike[str] | Noner†  rÞ  rŸ  r   rˆ  r©  rß  r   r`  rà  ry   rá  r   r<  c       	        ó&  — t          |p0t          t          ¦  «                             ¦   «         j        d         ¦  «                             ¦   «         | _        |�!t          |¦  «                             ¦   «         n| j        dz                       ¦   «         | _        |�!t          |¦  «                             ¦   «         nd | _        || _        t          d„ |D ¦   «         ¦  «        | _	        t          |¦  «        | _        t          |¦  «        | _        t          |t          ¦  «        | _        | j        o|	| _        t          |t          ¦  «        r|n|                      ¦   «         | _        d | _        t)          j        ¦   «         | _        d | _        d S )Nr.   úwgp_config.jsonc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   r<   )r   Úargs     r   r    z(WanGPSession.__init__.<locals>.<genexpr>T  s(   è è € Ð<Ð<¨C�s 3™xœxÐ<Ð<Ð<Ð<Ð<Ð<r!   )r   Ú__file__ÚresolveÚparentsÚ_rootÚ_config_pathÚ_output_dirr�  r&   Ú	_cli_argsr   Ú_console_outputrh  r"   r1   Ú_use_webui_queueÚ_webui_appendÚ_create_headless_stateÚ_stateÚ_active_jobrA  ÚLockÚ	_job_lockÚ_attachment_keys)
rí   r…  r†  rÞ  rŸ  rˆ  rß  r`  rà  rá  s
             r   rF  zWanGPSession.__init__C  sc  € õ ˜$ÐE¥$¥x¡.¤.×"8Ò"8Ñ":Ô":Ô"BÀ1Ô"EÑFÔF×NÒNÑPÔPˆŒ
Ø;FÐ;R�D Ñ-Ô-×5Ò5Ñ7Ô7Ð7ÐY]ÔYcÐfwÑYw÷  YAò  YAñ  YCô  YCˆÔØ9CÐ9O�4 
Ñ+Ô+×3Ò3Ñ5Ô5Ð5ÐUYˆÔØ#ˆŒÝÐ<Ð<°8Ð<Ñ<Ô<Ñ<Ô<ˆŒÝ# NÑ3Ô3ˆÔÝ# NÑ3Ô3ˆÔÝ *¨;½Ñ =Ô =ˆÔà!Ô2ÐC°|ˆÔÝ%/°½TÑ%BÔ%BÐe�k�kÈ×HcÒHcÑHeÔHeˆŒØ.2ˆÔÝ"œÑ)Ô)ˆŒØ8<ˆÔÐÐr!   rŒ  c                ó.   — |                       ¦   «          | S r   )Ú_ensure_runtimerì   s    r   Úensure_readyzWanGPSession.ensure_ready_  s   € Ø×ÒÑÔÐØˆr!   r   )ÚfamilyÚbase_model_typeÚfinetunerh   Úmain_outputÚinputsÚnameÚqueryÚ
resolutionÚinclude_resolution_unknownÚlimitÚoffsetrú  ústr | Sequence[str] | Nonerû  rü  úbool | str | Nonerh   rý  rþ  rÿ  r   r’   r  r  r  r²   r  ri   rÍ  c               óÊ  ‡‡— ddl m}m} |	� ||	¦  «         |                      ¦   «         }t	          |j        ¦  «        5  t          |j                             ||||||¬¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   d„ t          |t          t          t          f¦  «        r|n|gD ¦   «         Št          |pd¦  «                             ¦   «                              ¦   «         Š‰rˆfd„|D ¦   «         }‰rˆfd„|D ¦   «         }|	�ug }|D ]n}t!          d„ |d	         d
         D ¦   «         ¦  «        sŒ( |||	¦  «        }|d         dk    s|
r,|d         dk    r ||d	         d<   |                     |¦  «         Œo|}t%          dt'          |pd¦  «        ¦  «        }|€
||d …         S t%          dt)          t'          |¦  «        d¦  «        ¦  «        }||||z   …         S )Nr   )Úassess_resolutionÚparse_resolution)rú  rû  rü  rh   rý  rþ  c                óº   — g | ]X}|®t          |¦  «                             ¦   «         ¯%t          |¦  «                             ¦   «                              ¦   «         ‘ŒYS r   ©r#   r$   ÚcasefoldrR   s     r   r–   z0WanGPSession.list_model_defs.<locals>.<listcomp>j  ó˜   € ð  lð  lð  l¸5ð  CHð  CTõ  Y\ð  ]bñ  Ycô  Yc÷  Yiò  Yiñ  Ykô  Ykð  CT�˜U™œ×)Ò)Ñ+Ô+×4Ò4Ñ6Ô6ð  CTð  CTð  CTr!   r/   c                óL   •‡— g | ]Št          ˆfd „‰D ¦   «         ¦  «        ¯‰‘Œ S )c           	   3  ó¬   •K  — | ]N}t          j        t          ‰                     d d¦  «        pd¦  «                             ¦   «         |¦  «        V — ŒOdS )rÿ  r/   N)ÚfnmatchÚfnmatchcaser#   r2   r  )r   ÚpatternÚrecords     €r   r    z:WanGPSession.list_model_defs.<locals>.<listcomp>.<genexpr>m  s…   øè è € ð  ;dð  ;dð  KR½7Ô;NÍsÐSY×S]ÒS]Ð^dÐfhÑSiÔSiÐSoÐmoÑOpÔOp×OyÒOyÑO{ÔO{ð  ~Eñ  <Fô  <Fð  ;dð  ;dð  ;dð  ;dð  ;dð  ;dr!   ©r'   )r   r  Úname_patternss    @€r   r–   z0WanGPSession.list_model_defs.<locals>.<listcomp>m  sq   øø€ ð  eð  eð  e &µsð  ;dð  ;dð  ;dð  ;dð  Vcð  ;dñ  ;dô  ;dñ  8dô  8dð  e�vð  eð  eð  er!   c                ó¾  •— g | ]Ù}‰d                       d„ |                     d¦  «        |                     d¦  «        |                     d¦  «        |                     di ¦  «                             d¦  «        |                     di ¦  «                             d¦  «        |                     di ¦  «                             d¦  «        fD ¦   «         ¦  «        v ¯×|‘ŒÚS )	ú c              3  ó\   K  — | ]'}t          |pd ¦  «                             ¦   «         V — Œ(dS r­  )r#   r  rR   s     r   r    z:WanGPSession.list_model_defs.<locals>.<listcomp>.<genexpr>q  sN   è è € ð *ð *àõ ˜˜ Ñ$Ô$×-Ò-Ñ/Ô/ð*ð *ð *ð *ð *ð *r!   rh   rÿ  ÚdescriptionÚmetadatarú  Úfamily_labelrû  )rÈ  r2   )r   r  Ú
query_texts     €r   r–   z0WanGPSession.list_model_defs.<locals>.<listcomp>o  s  ø€ ð 	ð 	ð 	Ø!Ø §¢ð *ð *ð Ÿ
š
 <Ñ0Ô0°&·*²*¸VÑ2DÔ2DÀfÇjÂjÐQ^ÑF_ÔF_ØŸ
š
 :¨rÑ2Ô2×6Ò6°xÑ@Ô@À&Ç*Â*ÈZÐY[ÑB\ÔB\×B`ÒB`ÐaoÑBpÔBpÐrx×r|Òr|ð  ~Hð  JLñ  sMô  sM÷  sQò  sQð  Rcñ  sdô  sdð"ð*ñ *ô *ñ "ô "ð ð ð ðð ð r!   c              3  ó   K  — | ]}|d v V — Œ	dS ))r¾   r¿   Nr-   )r   rÂ   s     r   r    z/WanGPSession.list_model_defs.<locals>.<genexpr>|  s(   è è € ÐdÐd¸$˜4Ð#5Ð5ÐdÐdÐdÐdÐdÐdr!   r  rý  r°   ÚrecommendedÚunknownÚresolution_assessmentr.   iô  )Úshared.resolutionsr  r	  rø  Ú_pushdr…  Ú_strip_model_def_callablesr„  Úlist_model_defsr"   r%   r&   rL  r#   r$   r  r'   r4   Úmaxri   Úmin)rí   rú  rû  rü  rh   rý  rþ  rÿ  r   r  r  r  r  r  r	  ÚruntimeÚrecordsÚselectedr  Ú
assessmentr  r  s                       @@r   r$  zWanGPSession.list_model_defsc  sç  øø€ ØJÐJÐJÐJÐJÐJÐJÐJØÐ!ØÐ˜ZÑ(Ô(Ð(Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	Sð 	SÝ0°´×1OÒ1OÐW]Ðo~ð  JRð  _ið  wBð  KQÐ1Oñ  2Rô  2Rñ  Sô  SˆGð	Sð 	Sð 	Sñ 	Sô 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Søøøð 	Sð 	Sð 	Sð 	Sð lð  lÍZÐX\Õ_cÕejÕloÐ^pÑMqÔMqÐE}ÀTÀTÐx|Ðw}ð  lñ  lô  lˆÝ˜˜ "Ñ%Ô%×+Ò+Ñ-Ô-×6Ò6Ñ8Ô8ˆ
Øð 	eð eð  eð  eð  e¨Gð  eñ  eô  eˆGØð 
	ð	ð 	ð 	ð 	Ø%,ð	ñ 	ô 	ˆGð Ð!ØˆHØ!ð ,ð ,�ÝÐdÐdÀ&ÈÔBTÐUbÔBcÐdÑdÔdÑdÔdð ØØ.Ð.¨v°zÑBÔB�
Ø˜hÔ'¨=Ò8Ð8Ð<VÐ8Ð[eÐfnÔ[oÐs|Ò[|Ð[|ØBL�F˜:Ô&Ð'>Ñ?Ø—O’O FÑ+Ô+Ð+øØˆGÝ�Q�˜F˜K aÑ(Ô(Ñ)Ô)ˆØˆ=Ø˜6˜7˜7Ô#Ð#Ý�A•s�3˜u™:œ: sÑ+Ô+Ñ,Ô,ˆØ�v˜f u™nÐ,Ô-Ð-s   Á .A:Á:A>ÂA>Úfiltersr   c                ó   —  | j         di |¤ŽS )Nr-   )r$  ©rí   r+  s     r   Úget_model_defszWanGPSession.get_model_defs‰  s   € Ø#ˆtÔ#Ð.Ð. gÐ.Ð.Ð.r!   Úinclude_availabilityÚinclude_selectionc           	     óü  — g } | j         di |¤ŽD ]Ô}t          j        |                     di ¦  «        ¦  «        }|                     dt          |                     d¦  «        pd¦  «        ¦  «         |                     d|                     dd¦  «        ¦  «        |d<   |r.|                     |                      |d         ¦  «        ¦  «         |                     |¦  «         ŒÕ|r|  	                    |¦  «         |S )Nr  rh   r/   rÿ  r-   )
r$  r®  r¯  r2   r8  r#   ÚupdateÚget_model_selection_metadatar4   Ú_add_availability_to_metadata)rí   r/  r0  r+  Úmetadata_recordsrA   r  s          r   Úlist_model_metadataz WanGPSession.list_model_metadataŒ  s  € ØÐØ-˜Ô-Ð8Ð8°Ð8Ð8ð 	.ð 	.ˆIÝ”} Y§]¢]°:¸rÑ%BÔ%BÑCÔCˆHØ×Ò ­c°)·-²-ÀÑ2MÔ2MÐ2SÐQSÑ.TÔ.TÑUÔUÐUØ(Ÿ}š}¨V°X·\²\À,ÐPRÑ5SÔ5SÑTÔTˆH�VÑØ ð [Ø—’ × AÒ AÀ(È<ÔBXÑ YÔ YÑZÔZÐZØ×#Ò# HÑ-Ô-Ð-Ð-Øð 	AØ×.Ò.Ð/?Ñ@Ô@Ð@ØÐr!   r#   c                ó(  — |                       ¦   «         }t          |j        ¦  «        5  |j                             |¦  «        }d d d ¦  «         n# 1 swxY w Y   |€d S t          j        |¦  «        }t          |¦  «        |d<   t          |¦  «        S )Nrh   )	rø  r"  r…  r„  Úget_model_defr®  r¯  r#   r#  )rí   rh   r'  rA   s       r   r8  zWanGPSession.get_model_def™  sÖ   € Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	Að 	AØœ×4Ò4°ZÑ@Ô@ˆIð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	AàÐØ�4Ý”M )Ñ,Ô,ˆ	Ý"% j¡/¤/ˆ	�,ÑÝ)¨)Ñ4Ô4Ð4s   ©AÁAÁAc                ó\  — |                       |¦  «        }|€d S t          j        |                     di ¦  «        ¦  «        }|                     dt          |¦  «        ¦  «         |                     d|                     dd¦  «        ¦  «        |d<   |r|                      |¦  «        |d<   |S )Nr  rh   rÿ  r/   Úavailability)r8  r®  r¯  r2   r8  r#   Úget_model_availability)rí   rh   r/  rA   r  s        r   Úget_model_metadatazWanGPSession.get_model_metadata£  s¥   € Ø×&Ò& zÑ2Ô2ˆ	ØÐØ�4Ý”= §¢¨z¸2Ñ!>Ô!>Ñ?Ô?ˆØ×Ò˜L­#¨j©/¬/Ñ:Ô:Ð:Ø$Ÿ=š=¨°·²¸lÈBÑ1OÔ1OÑPÔPˆ�ÑØð 	OØ'+×'BÒ'BÀ:Ñ'NÔ'NˆH�^Ñ$Øˆr!   r@   c                óP  — |                       |¦  «        €t          d|› �¦  «        ‚|                      ¦   «         }t          |j        ¦  «        5  t          j        |j                             |¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        |d<   |S )NúUnknown model_type: rh   )
r8  r‡   rø  r"  r…  r®  r¯  r„  Úget_factory_settingsr#   )rí   rh   r'  r?   s       r   Úget_default_settingsz!WanGPSession.get_default_settings®  sè   € Ø×Ò˜jÑ)Ô)Ð1ÝÐ@°JÐ@Ð@ÑAÔAÐAØ×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	Vð 	VÝ”} W¤^×%HÒ%HÈÑ%TÔ%TÑUÔUˆHð	Vð 	Vð 	Vñ 	Vô 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vøøøð 	Vð 	Vð 	Vð 	Vå!$ Z¡¤ˆ�ÑØˆs   Á-B	Â	BÂBc                ó‚  ‡— |                       ¦   «         }t          |j        ¦  «        5  |j                             |¦  «        Šˆfd„dD ¦   «         }‰                     d¦  «        dk    rdn4t          d„ |j                             |¦  «        D ¦   «         ¦  «        rdnd|d<   |cd d d ¦  «         S # 1 swxY w Y   d S )Nc                óN   •— i | ]!}|‰v ¯|t          j        ‰|         ¦  «        “Œ"S r-   )r®  r¯  )r   ÚkeyrA   s     €r   ú
<dictcomp>z=WanGPSession.get_model_selection_metadata.<locals>.<dictcomp>»  s5   ø€ ÐtÐtÐtÀÐcfÐjsÐcsÐcs˜�dœm¨I°c¬NÑ;Ô;ÐcsÐcsÐcsr!   )ÚsizeÚspecialitiesÚacceleratedÚnativec              3  ó.   K  — | ]\  }}}|d k    o|V — ŒdS )Úaccelerator_profilesNr-   )r   r‰   Ú_Úpathss       r   r    z<WanGPSession.get_model_selection_metadata.<locals>.<genexpr>¼  sy   è è € ð  sið  siñ  bqð  bgð  ijð  lqÐsxð  }Sò  tSð  t]ð  X]ð  sið  sið  sið  sið  sið  sir!   ÚprofilesÚnone)rø  r"  r…  r„  r8  r2   r'   Ú_get_builtin_lset_groups)rí   rh   r'  r0   rA   s       @r   r3  z)WanGPSession.get_model_selection_metadata·  sV  ø€ Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	ð 	Øœ×4Ò4°ZÑ@Ô@ˆIØtÐtÐtÐtÐG_ÐtÑtÔtˆIØ3<·=²=ÀÑ3OÔ3OÐS[Ò3[Ð3[ x xÕorð  sið  sið  u|ô  uC÷  u\ò  u\ð  ]gñ  uhô  uhð  siñ  siô  siñ  piô  pið  buÐakÐakð  ouˆI�mÑ$Øð		ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ªA=B4Â4B8Â;B8)r0  Ú
setting_idc          	     ó   ‡‡‡‡— |                       ¦   «         Št          ‰j        ¦  «        5  ‰j                             |¦  «        }|€t          d|› �¦  «        ‚g }dddœ}‰j                             |¦  «        D ]$\  }}}	||         \  ŠŠ|ˆˆˆfd„|	D ¦   «         z  }Œ%t          ‰j                             |¦  «        ¦  «        }
|d„ t          g |
 
                    d¦  «        ¢|
 
                    d¦  «        ¢R d	„ ¬
¦  «        D ¦   «         z  }|rddlm}  ||¦  «        }‰€(t          |¦  «        d„ |D ¦   «         dœcd d d ¦  «         S t          ˆfd„|D ¦   «         d ¦  «        }|€t          d|› d‰› �¦  «        ‚t          |d         ¦  «        }|j                             ¦   «         dk    rÒt#          j        |¦  «        5 }t'          j        |                     d¦  «                             d¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t/          |t0          ¦  «        r|rt/          |d         t2          ¦  «        st          d|j        › �¦  «        ‚|d                              d|d         ¦  «        }n(t'          j        |                     d¬¦  «        ¦  «        }|r|                     dd ¦  «         t          |¦  «        |d         |d         |dœcd d d ¦  «         S # 1 swxY w Y   d S )Nr>  )Úaccelerator_profilezaccelerator profile)ÚpresetrS  )rJ  Úpreset_settingsc           	     ó²   •— g | ]S}‰› d t          |¦  «                             t          d¦  «        d¦  «        › �‰‰j                             |¦  «        dœ‘ŒTS )ú:é\   ú/©ÚidÚtypeÚ_path)r#   ÚreplaceÚchrr„  Ú_builtin_lset_file_path)r   rÊ   Úprefixr'  Úsetting_types     €€€r   r–   z3WanGPSession.get_model_settings.<locals>.<listcomp>É  s’   ø€ ð  rð  rð  rð  dh fÐ#PÐ#P­s°4©y¬y×/@Ò/@ÅÀRÁÄÈ#Ñ/NÔ/NÐ#PÐ#PÐZfÐqxÔq÷  rXò  rXð  Y]ñ  r^ô  r^ð  _ð  _ð  rð  rð  rr!   c                óD   — g | ]}d |j         › �dt          |¦  «        dœ‘ŒS )zuser_settings:zuser settingsrY  )rÿ  r#   )r   rÊ   s     r   r–   z3WanGPSession.get_model_settings.<locals>.<listcomp>Ë  sJ   € ð  Zð  Zð  ZÐnrÐ;°´	Ð;Ð;À_Õ_bÐcgÑ_hÔ_hÐiÐið  Zð  Zð  Zr!   z*.jsonz*.zipc                ó4   — | j                              ¦   «         S r   )rÿ  r  )rÊ   s    r   ú<lambda>z1WanGPSession.get_model_settings.<locals>.<lambda>Ë  s.   € ð  DHô  DM÷  DVò  DVñ  DXô  DX€ r!   )rC  r   )Úprioritize_profilesc                óJ   — g | ] }d „ |                      ¦   «         D ¦   «         ‘Œ!S )c                ó&   — i | ]\  }}|d k    ¯||“ŒS )r\  r-   )r   rC  r   s      r   rD  z>WanGPSession.get_model_settings.<locals>.<listcomp>.<dictcomp>Ð  sQ   € ð  ECð  ECð  ECÑT^ÐTWÐY^Ðsvð  {Bò  tBð  tBÀSÈ%ð  tBð  tBð  tBr!   )Úitems©r   Úentrys     r   r–   z3WanGPSession.get_model_settings.<locals>.<listcomp>Ð  se   € ð  DYð  DYð  DYð  HMð  ECð  ECÐbg×bmÒbmÑboÔboð  ECñ  ECô  ECð  DYð  DYð  DYr!   )rh   r?   c              3  ó4   •K  — | ]}|d          ‰k    ¯|V — ŒdS )rZ  Nr-   )r   rj  rP  s     €r   r    z2WanGPSession.get_model_settings.<locals>.<genexpr>Ñ  s1   øè è € ÐRÐR E¸¸d¼ÀzÒ8QÐ8Q˜%Ð8QÐ8QÐ8QÐ8QÐRÐRr!   zUnknown setting_id for ú: r\  z.zipz
queue.jsonrp  zInvalid settings bundle: Úparams©ro  Úprofile_priorityrZ  r[  )rh   rZ  r[  Úcontent)rø  r"  r…  r„  r8  r‡   rO  r   Úget_lora_dirÚsortedÚglobÚshared.model_selectionre  r#   r^   Úsuffixrƒ   ÚzipfileÚZipFileÚjsonÚloadsÚreadÚdecoder"   r%   r1   rÿ  r2   Ú	read_textÚpop)rí   rh   rP  r0  rA   ÚentriesÚkindsÚgroup_idrK  rL  Úlora_dirre  rj  rÊ   Úarchiver¦  rp  r`  r'  ra  s     `              @@@r   Úget_model_settingszWanGPSession.get_model_settings¿  s½  øøøø€ Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	qð 	qØœ×4Ò4°ZÑ@Ô@ˆIØÐ Ý Ð!D¸
Ð!DÐ!DÑEÔEÐEØˆGØ-[ð  qEð  Fð  FˆEØ&-¤n×&MÒ&MÈjÑ&YÔ&Yð rð rÑ"�˜!˜UØ',¨X¤Ñ$�˜Øð  rð  rð  rð  rð  rð  rð  lqð  rñ  rô  rñ  r��Ý˜GœN×7Ò7¸
ÑCÔCÑDÔDˆHØð  Zð  ZÕv|ð  ~qð  @H÷  @Mò  @Mð  NVñ  @Wô  @Wð  ~qð  Zb÷  Zgò  Zgð  hoñ  Zpô  Zpð  ~qð  ~qð  wXð  wXð  wYñ  wYô  wYð  Zñ  Zô  Zñ  ZˆGØ ð 7ØFÐFÐFÐFÐFÐFØ-Ð-¨gÑ6Ô6�ØÐ!Ý&)¨*¡o¤oð  DYð  DYð  QXð  DYñ  DYô  DYð  Zð  Zð	qð 	qð 	qð 	qñ 	qô 	qð 	qð 	qõ  ÐRÐRÐRÐR¨WÐRÑRÔRÐTXÑYÔYˆEØˆ}Ý Ð!U¸:Ð!UÐ!UÈÐ!UÐ!UÑVÔVÐVÝ˜˜gœÑ'Ô'ˆDØŒ{× Ò Ñ"Ô" fÒ,Ð,Ý”_ TÑ*Ô*ð V¨gÝ#œz¨'¯,ª,°|Ñ*DÔ*D×*KÒ*KÈGÑ*TÔ*TÑUÔU�HðVð Vð Vñ Vô Vð Vð Vð Vð Vð Vð Vøøøð Vð Vð Vð Vå! (­DÑ1Ô1ð N¸ð NÍÐT\Ð]^ÔT_ÕaeÑIfÔIfð NÝ$Ð%LÀÄÐ%LÐ%LÑMÔMÐMØ" 1œ+Ÿ/š/¨(°H¸Q´KÑ@Ô@��åœ* T§^¢^¸W ^Ñ%EÔ%EÑFÔF�Ø ð 6Ø—’Ð.°Ñ5Ô5Ð5Ý"% j¡/¤/¸¸t¼ÈeÐTZÌmÐhoÐpÐpð=	qð 	qð 	qð 	qñ 	qô 	qð 	qð 	qð 	qð 	qð 	qð 	qøøøð 	qð 	qð 	qð 	qð 	qð 	qs>   ­DK3ÅA9K3Ç	;HÈK3ÈH	ÈK3ÈH	ÈCK3Ë3K7Ë:K7r?   c                óæ  — t          |t          ¦  «        st          d¦  «        ‚t          |                     dd¦  «        pd¦  «                             ¦   «         }|st          d¦  «        ‚|                      ¦   «         }t          |j	        ¦  «        5  |j
                             |¦  «        €t          d|› �¦  «        ‚t          j        |j
                             |¦  «        ¦  «        }|                     t          j        |¦  «        ¦  «         |                     dd ¦  «         |j
                             ||¦  «         |j
        j        |d<   d d d ¦  «         n# 1 swxY w Y   ||d<   |S )Núsettings must be a dictionaryrh   r/   ú settings must include model_typer>  ro  Úsettings_version)r"   r1   Ú	TypeErrorr#   r2   r$   r‡   rø  r"  r…  r„  r8  r®  r¯  r?  r2  r}  Úclean_settingsr‡  )rí   r?   rh   r'  Úmergeds        r   Úmerge_settings_with_defaultsz)WanGPSession.merge_settings_with_defaultsá  s¤  € Ý˜(¥DÑ)Ô)ð 	=ÝÐ;Ñ<Ô<Ð<Ý˜Ÿš l°BÑ7Ô7Ð=¸2Ñ>Ô>×DÒDÑFÔFˆ
Øð 	AÝÐ?Ñ@Ô@Ð@Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	Ið 	IØŒ~×+Ò+¨JÑ7Ô7Ð?Ý Ð!D¸
Ð!DÐ!DÑEÔEÐEÝ”] 7¤>×#FÒ#FÀzÑ#RÔ#RÑSÔSˆFØ�MŠM�$œ-¨Ñ1Ô1Ñ2Ô2Ð2Ø�JŠJÐ)¨4Ñ0Ô0Ð0ØŒN×)Ò)¨*°fÑ=Ô=Ð=Ø)0¬Ô)HˆFÐ%Ñ&ð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið  *ˆˆ|ÑØˆs   ÂC E!Å!E%Å(E%c                ó*  — t          |t          ¦  «        st          d¦  «        ‚t          |                     dd¦  «        pd¦  «                             ¦   «         }|st          d¦  «        ‚|                      ¦   «         }t          |j	        ¦  «        5  |j
                             |¦  «        €t          d|› �¦  «        ‚t          j        |¦  «        }| j        |d<   |j
                             d||¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr…  rh   r/   r†  r>  Ústater  )r"   r1   rˆ  r#   r2   r$   r‡   rø  r"  r…  r„  r8  r®  r¯  rò  Úprepare_inputs_dict)rí   r?   rh   r'  Úprepareds        r   Úprepare_settings_for_exportz(WanGPSession.prepare_settings_for_exportó  s_  € Ý˜(¥DÑ)Ô)ð 	=ÝÐ;Ñ<Ô<Ð<Ý˜Ÿš l°BÑ7Ô7Ð=¸2Ñ>Ô>×DÒDÑFÔFˆ
Øð 	AÝÐ?Ñ@Ô@Ð@Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	Xð 	XØŒ~×+Ò+¨JÑ7Ô7Ð?Ý Ð!D¸
Ð!DÐ!DÑEÔEÐEÝ”} XÑ.Ô.ˆHØ $¤ˆH�WÑØ”>×5Ò5°jÀ(ÈJÑWÔWð	Xð 	Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xøøøð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xs   ÂA&DÄDÄDc                óR   — |                       |                      |¦  «        ¦  «        S r   )r�  r@  ©rí   rh   s     r   Úget_exported_default_settingsz*WanGPSession.get_exported_default_settings  s$   € Ø×/Ò/°×0IÒ0IÈ*Ñ0UÔ0UÑVÔVÐVr!   c                ó,  — |                       ¦   «         }t          |j        ¦  «        5  |j                             |¦  «        €t          d|› �¦  «        ‚t          |j                             |¦  «        ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zWThe LoRA folder of a model (raises for unknown models and models without LoRA support).Nr>  )rø  r"  r…  r„  r8  r‡   r#   rq  )rí   rh   r'  s      r   rq  zWanGPSession.get_lora_dir  sã   € à×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	@ð 	@ØŒ~×+Ò+¨JÑ7Ô7Ð?Ý Ð!D¸
Ð!DÐ!DÑEÔEÐEÝ�w”~×2Ò2°:Ñ>Ô>Ñ?Ô?ð	@ð 	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   ©AB	Â	BÂBc                ó¦  ‡— |                       ¦   «         }t          |j        ¦  «        5  |j                             |¦  «        }|€t          d|› �¦  «        ‚|                     dd¦  «        r t          |¦  «        dg ddœcd d d ¦  «         S |j                             |¦  «        }|j         	                    |d |dd ¦  «        d         }d d d ¦  «         n# 1 swxY w Y   d„ t          |t          t          t          f¦  «        r|n|gD ¦   «         Š‰rˆfd„|D ¦   «         }t          |¦  «        d	t          |¦  «        t          |¦  «        dœS )
Nr>  Úno_loraFr   )rh   Ú	supportedÚlorasÚcountr/   c                óº   — g | ]X}|®t          |¦  «                             ¦   «         ¯%t          |¦  «                             ¦   «                              ¦   «         ‘ŒYS r   r  rR   s     r   r–   z+WanGPSession.list_loras.<locals>.<listcomp>  r  r!   c                óL   •‡— g | ]Št          ˆfd „‰D ¦   «         ¦  «        ¯‰‘Œ S )c              3  ó€   •K  — | ]8}t          j        t          ‰¦  «                             ¦   «         |¦  «        V — Œ9d S r   )r  r  r#   r  )r   r  Úloras     €r   r    z5WanGPSession.list_loras.<locals>.<listcomp>.<genexpr>  s\   øè è € ð  3Dð  3DÐjqµ7Ô3FÅsÈ4ÁyÄy×GYÒGYÑG[ÔG[Ð]dÑ3eÔ3eð  3Dð  3Dð  3Dð  3Dð  3Dð  3Dr!   r  )r   r�  r  s    @€r   r–   z+WanGPSession.list_loras.<locals>.<listcomp>  sq   øø€ ð  Eð  Eð  E˜d­sð  3Dð  3Dð  3Dð  3Dð  vCð  3Dñ  3Dô  3Dñ  0Dô  0Dð  E�Tð  Eð  Eð  Er!   T)rø  r"  r…  r„  r8  r‡   r2   r#   rq  Úsetup_lorasr"   r%   r&   rL  r3   )rí   rh   rÿ  r'  rA   r�  r˜  r  s          @r   Ú
list_loraszWanGPSession.list_loras  sø  ø€ Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	Xð 	XØœ×4Ò4°ZÑ@Ô@ˆIØÐ Ý Ð!D¸
Ð!DÐ!DÑEÔEÐEØ�}Š}˜Y¨Ñ.Ô.ð dÝ&)¨*¡o¤oÀEÐTVÐabÐcÐcð	Xð 	Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð ”~×2Ò2°:Ñ>Ô>ˆHØ”N×.Ò.¨z¸4ÀÈ2ÈtÑTÔTÐUVÔWˆEð	Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xøøøð 	Xð 	Xð 	Xð 	Xð lð  lÍZÐX\Õ_cÕejÕloÐ^pÑMqÔMqÐE}ÀTÀTÐx|Ðw}ð  lñ  lô  lˆØð 	Eð Eð  Eð  Eð  E eð  Eñ  Eô  EˆEÝ! *™oœo¸DÍ4ÐPUÉ;Ì;ÕadÐejÑakÔakÐlÐlÐls   ªACÂ>CÃCÃ Cc                óˆ   — |                       |¦  «        €t          d|› �¦  «        ‚|                      |g¦  «        d         S )Nr>  r   )r8  r‡   Ú_get_model_availability_recordsr’  s     r   r;  z#WanGPSession.get_model_availability  sH   € Ø×Ò˜jÑ)Ô)Ð1ÝÐ@°JÐ@Ð@ÑAÔAÐAØ×3Ò3°Z°LÑAÔAÀ!ÔDÐDr!   Úmodel_typesc                óÚ   ‡‡— |                       ¦   «         Št          ‰j        ¦  «        5  ‰j                             ¦   «         Šˆˆfd„|D ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )Nc           	     ól   •— g | ]0}t          |‰j        j                             ‰|¦  «        ¦  «        ‘Œ1S r-   )Ú_model_availability_to_dictr„  Úmodel_dropdownsÚget_model_download_status)r   rh   Údropdown_depsr'  s     €€r   r–   z@WanGPSession._get_model_availability_records.<locals>.<listcomp>$  sZ   ø€ ð ð ð àõ ,¨J¸¼Ô8V×8pÒ8pÐq~ð  AKñ  9Lô  9Lñ  Mô  Mðð ð r!   )rø  r"  r…  r„  Ú_get_dropdown_deps)rí   r¢  r¨  r'  s     @@r   r¡  z,WanGPSession._get_model_availability_records   sÇ   øø€ Ø×&Ò&Ñ(Ô(ˆÝ�G”LÑ!Ô!ð 	ð 	Ø#œN×=Ò=Ñ?Ô?ˆMðð ð ð ð à"-ðñ ô ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   «(A Á A$Á'A$c                óV   — |                       d„  | j        di |¤ŽD ¦   «         ¦  «        S )Nc                ó   — g | ]
}|d          ‘ŒS ©rh   r-   ©r   r  s     r   r–   z8WanGPSession.list_model_availability.<locals>.<listcomp>*  s   € Ð4|Ð4|Ð4|Èf°V¸LÔ5IÐ4|Ð4|Ð4|r!   r-   )r¡  r6  r-  s     r   Úlist_model_availabilityz$WanGPSession.list_model_availability)  s;   € Ø×3Ò3Ð4|Ð4|ÐXpÐX\ÔXpÐX{ÐX{ÐszÐX{ÐX{Ð4|Ñ4|Ô4|Ñ}Ô}Ð}r!   r5  c                óˆ   — |                       d„ |D ¦   «         ¦  «        }d„ |D ¦   «         }|D ]}||d                  |d<   Œd S )Nc                ó   — g | ]
}|d          ‘ŒS r¬  r-   r­  s     r   r–   z>WanGPSession._add_availability_to_metadata.<locals>.<listcomp>-  s   € ÐDyÐDyÐDyÐ^dÀVÈLÔEYÐDyÐDyÐDyr!   c                ó    — i | ]}|d          |“ŒS r¬  r-   r­  s     r   rD  z>WanGPSession._add_availability_to_metadata.<locals>.<dictcomp>.  s   € Ð`Ð`Ð`À  |Ô 4°fÐ`Ð`Ð`r!   rh   r:  )r¡  )rí   r5  Úavailability_recordsÚavailability_by_typer  s        r   r4  z*WanGPSession._add_availability_to_metadata,  so   € Ø#×CÒCÐDyÐDyÐhxÐDyÑDyÔDyÑzÔzÐØ`Ð`ÐK_Ð`Ñ`Ô`ÐØ&ð 	Pð 	PˆFØ%9¸&ÀÔ:NÔ%OˆF�>Ñ"Ð"ð	Pð 	Pr!   c                óž  — |                       |¦  «        }|€d S t          j        |                     di ¦  «        ¦  «        }|                     dd ¦  «         |                     t          |                     d|¦  «        p|¦  «        t          |¦  «        t          |                     dd¦  «        pd¦  «        |                     dd ¦  «        |                     dd ¦  «        |                     dd ¦  «        t          |                     d	d¦  «        pd¦  «        t          |                     d
d¦  «        pd¦  «        t          |                     dd¦  «        ¦  «        dœ	|                     d¦  «        rddini ¥¦  «         d|                     dg ¦  «        v r+t          |  	                    ¦   «         j
        ||¦  «        |d<   d|iS )Nr  Úsetting_valuesrÿ  r  r/   r~   rp   rr   ÚinfosÚprompt_infosÚsliding_windowF)	rÿ  rh   r  r~   rp   rr   r¶  r·  r¸  Úprompt_optionalTr¿   ÚoutputsÚframes_maximum)r8  r®  r¯  r2   r}  r2  r#   r   rx   rø  r„  )rí   rh   rA   r  s       r   Úget_model_schemazWanGPSession.get_model_schema2  s·  € Ø×&Ò& zÑ2Ô2ˆ	ØÐØ�4Ý”= §¢¨z¸2Ñ!>Ô!>Ñ?Ô?ˆØ�ŠÐ% tÑ,Ô,Ð,Ø�ŠÝ˜	Ÿš f¨jÑ9Ô9ÐG¸ZÑHÔHÝ˜j™/œ/Ý˜yŸ}š}¨]¸BÑ?Ô?ÐEÀ2ÑFÔFØ—=’= ¨Ñ-Ô-Ø'ŸmšmÐ,<¸dÑCÔCØ%ŸMšM¨.¸$Ñ?Ô?Ý˜Ÿš w°Ñ3Ô3Ð9°rÑ:Ô:Ý 	§¢¨n¸bÑ AÔ AÐ GÀRÑHÔHÝ" 9§=¢=Ð1AÀ5Ñ#IÔ#IÑJÔJð
ð 
ð -6¯MªMÐ:KÑ,LÔ,LÐTÐ! 4Ð(Ð(ÐRTð
ñ 	ô 	ð 	ð �h—l’l 9¨bÑ1Ô1Ð1Ð1Ý)>¸t×?SÒ?SÑ?UÔ?UÔ?\Ð^hÐjsÑ)tÔ)tˆHÐ%Ñ&Ø˜HÐ%Ð%r!   Úsourceú>str | os.PathLike[str] | dict[str, Any] | list[dict[str, Any]]rŠ  c                ó‚   — |                       ||                      ¦   «         ¬¦  «        }|                      ||¬¦  «        S )N)Úcaller_base_path©rŸ  )Ú_normalize_sourceÚ_get_caller_base_pathÚ_submit_tasks)rí   r½  rŸ  Útaskss       r   ÚsubmitzWanGPSession.submitH  s?   € Ø×&Ò& vÀ×@ZÒ@ZÑ@\Ô@\Ð&Ñ]Ô]ˆØ×!Ò! %°9Ð!Ñ=Ô=Ð=r!   c                ó°   — |                       ¦   «         }|                      |d¬¦  «        }|                      |                      ||¦  «        g|¬¦  «        S )Nr.   ©r¸   rÁ  )rÃ  Ú_normalize_taskrÄ  Ú_absolutize_task_paths)rí   r?   rŸ  rÀ  Útasks        r   Úsubmit_taskzWanGPSession.submit_taskL  sZ   € Ø×5Ò5Ñ7Ô7ÐØ×#Ò# H¸Ð#Ñ;Ô;ˆØ×!Ò! 4×#>Ò#>¸tÐEUÑ#VÔ#VÐ"WÐclÐ!ÑmÔmÐmr!   r/   ç      à?r  )Útemporal_upsamplingÚspatial_upsamplingÚspatial_upsampler_promptÚ"spatial_upsampler_reference_imagesÚspatial_upsampler_paramÚspatial_upsampler_param2Úfilm_grain_intensityÚfilm_grain_saturationÚseedr   rþ   rŸ  Úmedia_sourceústr | os.PathLike[str]rÎ  rÏ  rÐ  rÑ  úlist[str] | NonerÒ  rÒ   rÓ  rÔ  rˆ   rÕ  rÖ  r   rþ   Úsettings_overridesc               ób   — t          |f||||||||	|
||dœ|¤Ž}|                      ||¬¦  «        S )N©rÎ  rÏ  rÐ  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  r   rþ   rÁ  )Ú#build_media_postprocessing_settingsrÌ  )rí   r×  rÎ  rÏ  rÐ  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  r   rþ   rŸ  rÚ  r?   s                   r   Úsubmit_media_postprocessingz(WanGPSession.submit_media_postprocessingQ  s�   € Ý6°|ð  `ÐYlð  BTð  oGð  lNð  hð  Zrð  I]ð  uJð  QUð  cnð  }Ið  `ð  `ð  M_ð  `ð  `ˆØ×Ò °IÐÑ>Ô>Ð>r!   r.   )
Úaudio_sourceÚpostprocess_audio_promptÚpostprocess_audio_neg_promptrÖ  Úrepeat_generationÚreplace_voice_sampleÚreplace_voice_sample2r   rþ   rŸ  rH   Úpostprocess_audiorß  rà  rá  râ  rã  rä  c               ó`   — t          |f||||||||	|
|dœ
|¤Ž}|                      ||¬¦  «        S )N)
rå  rß  rà  rá  rÖ  râ  rã  rä  r   rþ   rÁ  )Úbuild_audio_remux_settingsrÌ  )rí   rH   rå  rß  rà  rá  rÖ  râ  rã  rä  r   rþ   rŸ  rÚ  r?   s                  r   Úsubmit_audio_remuxzWanGPSession.submit_audio_remuxU  s…   € Ý-¨lð  |ÐN_Ðnzð  Vnð  Mið  ptð  HYð  pDð  \qð  Jð  Yeð  |ð  |ð  i{ð  |ð  |ˆØ×Ò °IÐÑ>Ô>Ð>r!   )rã  rä  r   rþ   rŸ  c          	     óV   — t          |f|||||dœ|¤Ž}	|                      |	|¬¦  «        S )N)rå  rã  rä  r   rþ   rÁ  )Ú#build_audio_postprocessing_settingsrÌ  )
rí   rß  rå  rã  rä  r   rþ   rŸ  rÚ  r?   s
             r   Úsubmit_audio_postprocessingz(WanGPSession.submit_audio_postprocessingY  sf   € Ý6°|ð  LÐWhð  @Tð  lAð  OZð  iuð  Lð  Lð  yKð  Lð  LˆØ×Ò °IÐÑ>Ô>Ð>r!   Úsettings_listc                ó”   ‡ ‡— ‰                       ¦   «         Šˆˆ fd„t          |¦  «        D ¦   «         }‰                      ||¬¦  «        S )Nc           	     ór   •— g | ]3\  }}‰                      ‰                     ||d z   ¬¦  «        ‰¦  «        ‘Œ4S ©r.   rÈ  ©rÊ  rÉ  )r   r€  r?   rÀ  rí   s      €€r   r–   z0WanGPSession.submit_manifest.<locals>.<listcomp>_  sX   ø€ ð 
ð 
ð 
á��xð ×'Ò'¨×(<Ò(<¸XÐRWÐZ[ÑR[Ð(<Ñ(\Ô(\Ð^nÑoÔoð
ð 
ð 
r!   rÁ  )rÃ  Ú	enumeraterÄ  )rí   rì  rŸ  rÅ  rÀ  s   `   @r   Úsubmit_manifestzWanGPSession.submit_manifest]  sf   øø€ Ø×5Ò5Ñ7Ô7Ðð
ð 
ð 
ð 
ð 
å#,¨]Ñ#;Ô#;ð
ñ 
ô 
ˆð ×!Ò! %°9Ð!Ñ=Ô=Ð=r!   rÞ   c                óT   — |                       ||¬¦  «                             ¦   «         S ©NrÁ  )rÆ  r£  )rí   r½  rŸ  s      r   ÚrunzWanGPSession.rune  s$   € Ø�{Š{˜6¨Yˆ{Ñ7Ô7×>Ò>Ñ@Ô@Ð@r!   c                óT   — |                       ||¬¦  «                             ¦   «         S rô  )rÌ  r£  )rí   r?   rŸ  s      r   Úrun_taskzWanGPSession.run_taskh  s'   € Ø×Ò °IÐÑ>Ô>×EÒEÑGÔGÐGr!   c                óT   — |                       ||¬¦  «                             ¦   «         S rô  )rò  r£  )rí   rì  rŸ  s      r   Úrun_manifestzWanGPSession.run_manifestk  s'   € Ø×#Ò# M¸YÐ#ÑGÔG×NÒNÑPÔPÐPr!   Úkwargsc                óB   —  | j         |fi |¤Ž                     ¦   «         S r   )rÞ  r£  )rí   r×  rú  s      r   Úrun_media_postprocessingz%WanGPSession.run_media_postprocessingn  ó)   € Ø/ˆtÔ/°ÐGÐGÀÐGÐG×NÒNÑPÔPÐPr!   c                óB   —  | j         |fi |¤Ž                     ¦   «         S r   )rè  r£  )rí   rH   rú  s      r   Úrun_audio_remuxzWanGPSession.run_audio_remuxq  s)   € Ø&ˆtÔ& |Ð>Ð>°vÐ>Ð>×EÒEÑGÔGÐGr!   c                óB   —  | j         |fi |¤Ž                     ¦   «         S r   )rë  r£  )rí   rß  rú  s      r   Úrun_audio_postprocessingz%WanGPSession.run_audio_postprocessingt  rý  r!   c                ó
  — | j         rd S |                      ¦   «         }t          5  t          |j        ¦  «        5  |j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S r   )rï  rø  Ú_GENERATION_LOCKr"  r…  r„  Úrelease_model)rí   r'  s     r   rM  zWanGPSession.closew  s  € ØÔ ð 	ØˆFØ×&Ò&Ñ(Ô(ˆÝð 	+ð 	+�v g¤lÑ3Ô3ð 	+ð 	+ØŒN×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s4   ¥A8ºA ÁA8Á A$	Á$A8Á'A$	Á(A8Á8A<Á?A<c                ó‚   — | j         5  | j        }d d d ¦  «         n# 1 swxY w Y   |�|                     ¦   «          d S d S r   )rõ  ró  rÀ  )rí   Újobs     r   rÀ  zWanGPSession.cancel~  s„   € ØŒ^ð 	#ð 	#ØÔ"ˆCð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#àˆ?Ø�JŠJ‰LŒLˆLˆLˆLð ˆ?s   ˆœ £ c                óZ   — | j         r|                      ¦   «         j        j        n| j        S r   )rï  rø  r„  Úlockrõ  rì   s    r   Ú_queue_lockzWanGPSession._queue_lock„  s+   € Ø59Ô5JÐ^ˆt×#Ò#Ñ%Ô%Ô,Ô1Ð1ÐPTÔP^Ð^r!   c                óà   — ddl m} ddlm} | j        d         }t          | dd ¦  «        } ||¦  «        }|r6|�4|j        |k    r) ||j                             |¦  «        |j	        ¦  «        S |S )Nr   )Úhost_for_gen)Úload_galleryr5  Ú_workspace_id)
Úshared.utils.workspace_storager  Úshared.utils.workspacesr  rò  rq  Úworkspace_idÚ
workspacesr2   Ú_workspace_settings)rí   r  r  r5  r  Úhosts         r   Ú_workspace_galleryzWanGPSession._workspace_gallery‡  s—   € Ø?Ð?Ð?Ð?Ð?Ð?Ø8Ð8Ð8Ð8Ð8Ð8ØŒk˜%Ô ˆÝ˜t _°dÑ;Ô;ˆØˆ|˜CÑ Ô ˆØð 	]˜DÐ,°Ô1BÀlÒ1RÐ1RØ�< ¤× 3Ò 3°LÑ AÔ AÀ4ÔC[Ñ\Ô\Ð\Øˆ
r!   c                óÂ  ‡	— | j         d         }|                      ¦   «         5  g }t          |                     dg ¦  «        ¦  «        D �]@\  }Š	‰	                     dt          j        ¦   «         j        ¦  «        }|                      ‰	¦  «        }|                     d¦  «        ‰	u }|o"t          |                     dd¦  «        ¦  «        }| 
                    ||dz   ‰	                     d¦  «        d	œˆ	fd
„dD ¦   «         ¥t          |                     dd¦  «        pd¦  «        t          |                     dd¦  «        pd¦  «        t          |                     dd¦  «        pd¦  «        dd…         |rdn|rdnddœ¥¦  «         �ŒBt          d„ |D ¦   «         ¦  «        }|t          |¦  «        t          |¦  «        |z
  |dœcddd¦  «         S # 1 swxY w Y   dS )zVList all pending/running tasks in this session's generation queue, including UI tasks.r5  r>  Ú_api_queue_idÚapi_active_queue_taskÚabortFr.   rZ  )Úqueue_idÚpositionr·   c                ó*   •— i | ]}|‰v ¯|‰|         “ŒS r-   r-   )r   rC  rË  s     €r   rD  z+WanGPSession.list_queue.<locals>.<dictcomp>�  s+   ø€ ÐaÐaÐa¨#ÐUXÐ\`ÐU`ÐU`�s˜D œIÐU`ÐU`ÐU`r!   )r  Úmcp_agent_idrÌ   r/   rh   ÚpromptNi@  Ú
cancellingÚrunningÚqueued)rÌ   rh   r  r°   c              3  ó.   K  — | ]}|d          dk    V — ŒdS )r°   r   Nr-   ri  s     r   r    z*WanGPSession.list_queue.<locals>.<genexpr>£  s+   è è € ÐQÐQÀ  h¤°8Ò ;ÐQÐQÐQÐQÐQÐQr!   )rÅ  Útotal_countÚqueued_countÚrunning_count)rò  r	  rñ  r2   r8  ÚuuidÚuuid4ÚhexÚ_get_task_settingsr   r4   r#   Úsumr3   )
rí   r5  r~  r€  r  rm  r  r  r$  rË  s
            @r   Ú
list_queuezWanGPSession.list_queue‘  s]  ø€ àŒk˜%Ô ˆØ×ÒÑÔð 	Qð 	QØˆGÝ(¨¯ª°¸"Ñ)=Ô)=Ñ>Ô>ð ñ ‘��tØŸ?š?¨?½D¼J¹L¼LÔ<LÑMÔM�Ø×0Ò0°Ñ6Ô6�ØŸ'š'Ð"9Ñ:Ô:¸dÐB�Ø$ÐF­¨c¯gªg°g¸uÑ.EÔ.EÑ)FÔ)F�
Ø—’Ø (°e¸a±iÈDÏHÊHÐUYÉNÌNð ð  àaÐaÐaÐaÐ1QÐaÑaÔað õ "% V§Z¢Z°¸RÑ%@Ô%@Ð%FÀBÑ!GÔ!GÝ"% f§j¢j°¸rÑ&BÔ&BÐ&HÀbÑ"IÔ"IÝ! &§*¢*¨X°rÑ":Ô":Ð"@¸bÑAÔAÀ$À3À$ÔGØ.8Ð`˜l˜lÈ7Ð>`¸i¸iÐX`ð ð  ð  ñ ô ð ñ õ  ÐQÐQÈÐQÑQÔQÑQÔQˆMØ$µS¸±\´\ÕSVÐW^ÑS_ÔS_ÐboÑSoð  CPð  Qð  Qð!	Qð 	Qð 	Qð 	Qñ 	Qô 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qøøøð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qs   £F$GÇGÇGr  c                ó*  ‡— t          ‰t          ¦  «        r‰                     ¦   «         st          d¦  «        ‚| j        d         }|                      ¦   «         5  |                     dg ¦  «        }t          ˆfd„t          |¦  «        D ¦   «         d¦  «        }|€t          d‰› �¦  «        ‚||         }d|d<   |                     d	¦  «        |u }|r-|  
                    |                      ¦   «         j        ¦  «         nq||= | j        rg|                      ¦   «         j        }|                     | j        |gd
d¬¦  «         d|v rt          d|d         dz
  ¦  «        |d<   |dd…         |_        ‰|rdnddœcddd¦  «         S # 1 swxY w Y   dS )zQCancel one task identified by list_queue(), leaving the rest of its batch queued.z9queue_id must be a non-empty ID returned by list_queue().r5  r>  c              3  óT   •K  — | ]"\  }}|                      d ¦  «        ‰k    ¯|V — Œ#dS )r  N©r2   )r   ÚirË  r  s      €r   r    z1WanGPSession.cancel_queue_task.<locals>.<genexpr>­  s>   øè è € ÐeÐe¡  4¸t¿xºxÈÑ?XÔ?XÐ\dÒ?dÐ?d˜!Ð?dÐ?dÐ?dÐ?dÐeÐer!   NzUnknown or finished queue_id: TÚ_api_queue_cancel_requestedr  zGeneration was cancelled)r  Úprompts_maxr   r.   r  ré   )r  r°   )r"   r#   r$   r‡   rò  r	  r2   r^   rñ  ÚKeyErrorÚ_request_cancel_unlockedrø  r„  rï  Úrecord_queue_errorr%  Úglobal_queue_ref)rí   r  r5  r>  r€  rË  r  Úwgps    `      r   Úcancel_queue_taskzWanGPSession.cancel_queue_task¦  s  ø€ å˜(¥CÑ(Ô(ð 	Z°·²Ñ0@Ô0@ð 	ZÝÐXÑYÔYÐYØŒk˜%Ô ˆØ×ÒÑÔð 	^ð 	^Ø—G’G˜G RÑ(Ô(ˆEÝÐeÐeÐeÐe­9°UÑ+;Ô+;ÐeÑeÔeÐgkÑlÔlˆEØˆ}ÝÐJÀÐJÐJÑKÔKÐKØ˜”<ˆDØ26ˆDÐ.Ñ/Ø—g’gÐ5Ñ6Ô6¸$Ð>ˆGØð 
4Ø×-Ò-¨d×.BÒ.BÑ.DÔ.DÔ.KÑLÔLÐLÐLà˜%�LØÔ(ð 4Ø×.Ò.Ñ0Ô0Ô7�CØ×*Ò*¨4¬;¸¸Ð@ZÐbfÐ*ÑgÔgÐgØ$¨Ð+Ð+Ý-0°°C¸Ô4FÈÑ4JÑ-KÔ-K˜˜MÑ*à+0°°°¬8�CÔ(Ø (ÀGÐ4\°L°LÐQ\Ð]Ð]ð'	^ð 	^ð 	^ð 	^ñ 	^ô 	^ð 	^ð 	^ð 	^ð 	^ð 	^ð 	^øøøð 	^ð 	^ð 	^ð 	^ð 	^ð 	^s   ÁD FÆFÆFúSessionJob | Nonec                óR   — | j         5  | j        cd d d ¦  «         S # 1 swxY w Y   d S r   )rõ  ró  rì   s    r   Ú
active_jobzWanGPSession.active_jobÀ  st   € àŒ^ð 	$ð 	$ØÔ#ð	$ð 	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   ˆœ £ c                 óL   — ddg ddœt          d¦  «        ¥ddddddddi dœ	¥g dœS )	Nr/   F)r>  Úin_progressr   r.   úprocess:main)	Ú	prompt_nor0  Ú	repeat_noÚtotal_generationÚ	window_noÚtotal_windowsÚprogress_statusÚprocess_statusr7  )rh   Úedit_model_typer5  r˜  )r   r-   r!   r   rñ  z#WanGPSession._create_headless_stateÅ  sl   € ð Ø!àØ$ðð õ )¨Ñ+Ô+ðð Ø ØØ$%ØØ!"Ø#%Ø"0Ø(*ðð ð ð ð#
ð 
ð 	
r!   rÅ  c                ó¢  — | j         5  | j        s"| j        �| j        j        st	          d¦  «        ‚t          | ¦  «        }|                      ||¦  «         t          j        |¦  «        }ddl	m
} |D ]I}t          | dd ¦  «        r
| j        |d<   t          | dd ¦  «        r
| j        |d<    ||| j        ¦  «         ŒJ| j        �(t!          d„ |D ¦   «         ¦  «        rt#          d	¦  «        ‚|                      || j        o| j         ¬
¦  «        }| j        r1|                      |¦  «        \  }}}	|                     |||	¬¦  «         t-          j        | j        ||fdd¬¦  «        }
|                     |
¦  «         || _        | j        s|d d …         | j        d         d<   |
                     ¦   «          |cd d d ¦  «         S # 1 swxY w Y   d S )Nz2WanGP session already has a generation in progressr   )Úcapture_taskr  r  Ú_agent_contextr  c              3  ó@   K  — | ]}|                      d ¦  «        V — ŒdS )r  Nr-  )r   rË  s     r   r    z-WanGPSession._submit_tasks.<locals>.<genexpr>é  s/   è è € Ð3hÐ3hÐQU°D·H²H¸^Ñ4LÔ4LÐ3hÐ3hÐ3hÐ3hÐ3hÐ3hr!   ziAn explicit output_dir cannot be combined with a workspace-bound queue. Use its original Workspaces Root.©Úpriority)r¦  r¨  rª  Tzwangp-session-job)ÚtargetÚargsÚdaemonrÿ  r5  r>  )rõ  rð  ró  rÊ  ÚRuntimeErrorrŠ  Ú_bind_callbacks_to_jobr®  r¯  r  rF  rq  r  rG  rò  rì  r'   r‡   Ú_ensure_task_client_idsrï  Ú_prepare_webui_bridger°  rA  ÚThreadÚ_run_jobrž  Ústart)rí   rÅ  rŸ  r  Úprepared_tasksrF  rË  r¨  r¦  rª  r›  s              r   rÄ  zWanGPSession._submit_tasksÛ  sy  € ØŒ^ð 	ð 	ØÔ%ð Y¨$Ô*:Ð*FÈtÔO_ÔOdÐ*FÝ"Ð#WÑXÔXÐXÝ˜TÑ"Ô"ˆCØ×'Ò'¨¨YÑ7Ô7Ð7Ý!œ]¨5Ñ1Ô1ˆNØCÐCÐCÐCÐCÐCØ&ð 0ð 0�Ý˜4 °$Ñ7Ô7ð >Ø+/Ô+=�D˜Ñ(Ý˜4Ð!1°4Ñ8Ô8ð ?Ø+/Ô+>�D˜Ñ(Ø�˜T 4¤;Ñ/Ô/Ð/Ð/ØÔÐ+µÐ3hÐ3hÐYgÐ3hÑ3hÔ3hÑ0hÔ0hÐ+Ý ð  "Mñ  Nô  Nð  NØ×5Ò5°nÈtÔOdÐOÐmqÔmÐiÐ5ñ  Aô  AˆJØÔ$ð sØ=A×=WÒ=WÐXfÑ=gÔ=gÑ:� Ð*:Ø×%Ò%¨xÀJÐaqÐ%ÑrÔrÐrÝÔ%Ø”}Ø˜>Ð*ØØ(ð	ñ ô ˆFð ×Ò˜VÑ$Ô$Ð$Ø"ˆDÔØÔ(ð @Ø.<¸Q¸Q¸QÔ.?�”˜EÔ" 7Ñ+Ø�LŠL‰NŒNˆNØð=	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆF/GÇGÇGr  c                óæ   — |€| j         n|}|                     |¦  «         |€d S t          |dd ¦  «        }t          |¦  «        sd S 	  || |¬¦  «         d S # t          $ r  ||¦  «         Y d S w xY w)NÚbind_job)r‹  r  )r�  r¢  rq  r½  rˆ  )rí   r  rŸ  ÚcallbackÚbinders        r   rO  z#WanGPSession._bind_callbacks_to_jobü  s¥   € Ø&/Ð&7�4”?�?¸YˆØ×Ò˜HÑ%Ô%Ð%ØÐØˆFÝ˜ :¨tÑ4Ô4ˆÝ˜ÑÔð 	ØˆFð	ØˆF˜4 SÐ)Ñ)Ô)Ð)Ð)Ð)øÝð 	ð 	ð 	ØˆF�3‰KŒKˆKˆKˆKˆKð	øøøs   ÁA ÁA0Á/A0rI  rJ  r‡  c               ó   — t          j        ¦   «         j        d d…         }g }t          | d¬¦  «        D �]\  }}t	          j        t                               |¦  «        ¦  «        }t          | 	                    dd¦  «        pd¦  «         
                    ¦   «         }t          |¦  «        dk    rd|› d|› �}||d<   |rd	|d
<   n"d
|v r|d
         s|                     d
d ¦  «         ||d<   |                     di ¦  «                             di ¦  «                             dd	¦  «         |                     |¦  «         �Œt          |¦  «        S )Nr   r.   ©rT  rÌ   r/   r   Úapi_rK  TrJ  rm  rø   rû   Úreturn_side_files)r%  r&  r'  rñ  r®  r¯  rÝ  r(  r#   r2   r$   r3   r}  r8  r4   r&   )rÅ  rJ  Úclient_seedr¨  r€  rË  rm  rÌ   s           r   rP  z$WanGPSession._ensure_task_client_ids	  sY  € å”j‘l”lÔ& s¨ sÔ+ˆØ "ˆ
Ý$ U°!Ð4Ñ4Ô4ð 	)ñ 	)‰KˆE�4Ý”]¥<×#BÒ#BÀ4Ñ#HÔ#HÑIÔIˆFÝ˜FŸJšJ {°BÑ7Ô7Ð=¸2Ñ>Ô>×DÒDÑFÔFˆIÝ�9‰~Œ~ Ò"Ð"Ø8 ;Ð8Ð8°Ð8Ð8�	Ø"+ˆF�;ÑØð -Ø%)��zÑ"Ð"Ø˜vÐ%Ð%¨f°ZÔ.@Ð%Ø—
’
˜: tÑ,Ô,Ð,Ø#ˆD�‰NØ�OŠO˜M¨2Ñ.Ô.×9Ò9¸%ÀÑDÔD×OÒOÐPcÐeiÑjÔjÐjØ×Ò˜iÑ(Ô(Ð(Ñ(Ý�ZÑ Ô Ð r!   ú6tuple[list[dict[str, Any]], list[dict[str, Any]], str]c                ó<  — g }t          |d¬¦  «        D ]æ\  }}t          j        |                      |¦  «        ¦  «        }| j         |d<   ||d<   |                     d|                     d|¦  «        i|                     d¦  «        r
d|d         ini ¥|                     d¦  «        r
d|d         ini ¥t          j        |¦  «        t          j        |                     di ¦  «        ¦  «        d	œ¥¦  «         Œç||t          t          j	        ¦   «         ¦  «        fS )
Nr.   r[  rJ  rm  rZ  r  r  rø   )rm  rø   )
rñ  r®  r¯  r(  rð  r4   r2   r#   rÇ   Útime_ns)rí   rÅ  r¦  r€  rË  rm  s         r   rQ  z"WanGPSession._prepare_webui_bridge  s;  € ØˆÝ$ U°!Ð4Ñ4Ô4ð 
	ð 
	‰KˆE�4Ý”] 4×#:Ò#:¸4Ñ#@Ô#@ÑAÔAˆFØ%)Ô%7Ð!7ˆF�:ÑØ#ˆD�‰NØ�OŠOØ�d—h’h˜t UÑ+Ô+ðà=A¿XºXÀnÑ=UÔ=UÐ]�N D¨Ô$8Ð9Ð9Ð[]ðð >B¿XºXÀnÑ=UÔ=UÐ]�N D¨Ô$8Ð9Ð9Ð[]ðõ œ-¨Ñ/Ô/Ý#œ}¨T¯XªX°mÀRÑ-HÔ-HÑIÔIðð ð ñ ô ð ð ð �h¥¥D¤L¡N¤NÑ 3Ô 3Ð3Ð3r!   c                ój   — | j         r|                      ||¦  «         d S ddlm}  || ||¦  «         d S )Nr   )Úrun_cli_job)rï  Ú_run_webui_jobÚshared.api_clirc  )rí   r  rÅ  rc  s       r   rS  zWanGPSession._run_job+  sT   € ØÔ ð 	Ø×Ò  UÑ+Ô+Ð+ØˆFØ.Ð.Ð.Ð.Ð.Ð.àˆ�D˜#˜uÑ%Ô%Ð%Ð%Ð%r!   c                ó,   — ddl m}  || ||¦  «         d S )Nr   )Úrun_webui_job)Úshared.api_webuirg  )rí   r  rÅ  rg  s       r   rd  zWanGPSession._run_webui_job3  s.   € Ø2Ð2Ð2Ð2Ð2Ð2àˆ�d˜C Ñ'Ô'Ð'Ð'Ð'r!   )Úinclude_state_fallbackr·   r¸   r¹   rÃ   ri  r·   r¸   r¹   r®   c               ó,  — d }d }d}d }	t          |t          ¦  «        rÚ|rØ|d         }
t          |
t          ¦  «        r�t          |
¦  «        dk    r}t	          |
d         ¦  «        }t	          |
d         ¦  «        }t          t          |¦  «        dk    r|d         nd¦  «        }t          |¦  «        dk    rt          |d         ¦  «        }	n<t          t          |¦  «        dk    r|d         n|
¦  «        }nt          |pd¦  «        }d }|�rF| j        d                              d¦  «        }t          |t          ¦  «        rÌ|rÊt          |d         ¦  «        }|€³t          |¦  «        dk    r d| 	                    ¦   «         v rŠ	 t	          |d         ¦  «        }n# t          t          f$ r d	}Y nw xY w	 t	          | j        d                              d
¦  «        pd¦  «        }n# t          t          f$ r d}Y nw xY w|dk    r
|dk    r|}|}t          |¦  «        dk    r2t          | j        d                              dd¦  «        p|pd¦  «        }t          |¦  «        }t          |¦  «        dk    rht          t          |pd¦  «                             ¦   «         ¦  «        dk    r4|€2|                      |¦  «        }|                      |¦  «        }||k    rd }|p|}|                      |p|¦  «        }|                      |¦  «        sd }d }|                      |||¦  «        }t!          ||||||pd |	||||dk    r"| j        d                              d¦  «        pd nd |dk    r"| j        d                              d¦  «        pd nd ¬¦  «        S )Nr/   r   é   r.   é   r5  Úprogress_phaseÚ	denoisingr  Únum_inference_stepsrB  Úloading_modelr@  rA  )r¯   r°   r±   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   )r"   r%   r&   r3   ri   r#   rò  r2   r£   rƒ   rˆ  r‡   r$   Ú_normalize_phaseÚ_phase_supports_progressÚ_estimate_progressr®   )rí   rÃ   ri  r·   r¸   r¹   r³   r´   r°   r¶   Úheadrµ   rm  Úprogress_stepÚinference_stepsÚstatus_phase_labelÚnormalized_status_phaseÚnormalized_raw_phaseÚdisplay_phaser¯   r±   s                        r   Ú_build_progress_updatez#WanGPSession._build_progress_update8  sã  € Ø#'ˆØ"&ˆØˆØˆå�d�DÑ!Ô!ð 	% dð 	%Ø˜”7ˆDÝ˜$¥Ñ&Ô&ð A­3¨t©9¬9¸ª>¨>Ý" 4¨¤7™|œ|�Ý! $ q¤'™lœl�Ý­¨D©	¬	°Aª¨˜T !œW˜W¸2Ñ>Ô>�Ý�t‘9”9˜q’=�=Ý˜t Aœw™<œ<�Døå­¨D©	¬	°Aª¨˜T !œW˜W¸4Ñ@Ô@��å˜˜ ‘_”_ˆFàˆ	Ø!ñ 	_Ø!œ[¨Ô/×3Ò3Ð4DÑEÔEˆNÝ˜.­%Ñ0Ô0ð 6°^ð 6Ý6°~ÀaÔ7HÑIÔI�	ØÐ'­C°Ñ,?Ô,?À!Ò,CÐ,CÈÐW`×WfÒWfÑWhÔWhÐHhÐHhð+Ý(+¨N¸1Ô,=Ñ(>Ô(>˜˜øÝ%¥zÐ2ð +ð +ð +Ø(*˜˜˜ð+øøøð,Ý*-¨d¬k¸%Ô.@×.DÒ.DÐEZÑ.[Ô.[Ð.`Ð_`Ñ*aÔ*a˜˜øÝ%¥zÐ2ð ,ð ,ð ,Ø*+˜˜˜ð,øøøà$¨Ò)Ð)¨oÀÒ.AÐ.AØ'4˜Ø&5˜Ý�6‰{Œ{˜aÒÐÝ˜Tœ[¨Ô/×3Ò3Ð4EÀrÑJÔJÐ]ÈiÐ]Ð[]Ñ^Ô^�Ý7¸Ñ?Ô?ÐÝÐ!Ñ"Ô" QÒ&Ð&­3­s°9°?ÀÑ/CÔ/C×/IÒ/IÑ/KÔ/KÑ+LÔ+LÈqÒ+PÐ+PÐUaÐUiØ&*×&;Ò&;Ð<NÑ&OÔ&OÐ#Ø#'×#8Ò#8¸Ñ#CÔ#CÐ Ø&Ð*>Ò>Ð>Ø �	Ø!Ð7Ð%7ˆØ×%Ò% mÐ&=°vÑ>Ô>ˆØ×,Ò,¨UÑ3Ô3ð 	ØˆLØˆKØ×*Ò*¨5°,ÀÑLÔLˆÝØØØØ%Ø#Ø#Ð+ tØØØ!Ø!ØJOÐSbÒJbÐJb˜$œ+ eÔ,×0Ò0°Ñ=Ô=ÐEÀøÐhlØNSÐWfÒNfÐNf˜$œ+ eÔ,×0Ò0°ÑAÔAÐIÀTøÐlpð
ñ 
ô 
ð 	
s$   ÆF ÆF2Æ1F2Æ6/G& Ç&G<Ç;G<r×   úPreviewUpdate | Nonec           	     ó4  — |                       d| j        d                              dd¦  «        g¦  «        }d}| j        d                              d¦  «        p|}|r<t          |                      |d         ¦  «                             dd¦  «        ¦  «        }|r|                     ||¦  «        nd }t          t          |t          ¦  «        r|j	        n|t          |t          ¦  «        r|j
        nd |j        |j        |j        |j        |j        ¬¦  «        S )Nr   r5  rB  r/   r>  rh   )r¾   r¿   r¯   r°   r±   r³   r´   )r{  rò  r2   r#   r(  Úgenerate_previewr½   r"   r   r¾   r¿   r¯   r°   r±   r³   r´   )rí   r5  rÅ  r×   r±   rh   Úqueue_tasksr¾   s           r   Ú_build_preview_updatez"WanGPSession._build_preview_updatey  s  € Ø×.Ò.°°4´;¸uÔ3E×3IÒ3IÐJ[Ð]_Ñ3`Ô3`Ð/aÑbÔbˆØˆ
Ø”k %Ô(×,Ò,¨WÑ5Ô5Ð>¸ˆØð 	\Ý˜T×4Ò4°[À´^ÑDÔD×HÒHÈÐWYÑZÔZÑ[Ô[ˆJØ=GÐQ�×$Ò$ Z°Ñ9Ô9Ð9ÈTˆÝÝ!+¨Eµ<Ñ!@Ô!@ÐK�%”+�+ÀeÝ!+¨Eµ<Ñ!@Ô!@ÐJ�%”+�+ÀdØ”.Ø”?ØÔ&Ø!Ô.Ø Ô,ð
ñ 
ô 
ð 	
r!   ra  r�  c                óŽ   — t          ||¬¦  «        }|j                             d|¦  «         |                      d||¬¦  «         d S )N)r§   r‘   r§   Ú	on_stream©r  )r¦   r�  rJ  Ú_emit_callback)rí   r  ra  r�  rò   s        r   Ú_emit_streamzWanGPSession._emit_streamŠ  sK   € Ý {¸Ð>Ñ>Ô>ˆØŒ
�Š�x Ñ)Ô)Ð)Ø×Ò˜K¨°cÐÑ:Ô:Ð:Ð:Ð:r!   rƒ  Úmethod_namec               ó0  — |�|j         €| j         n|j         }|€d S t          ||d ¦  «        }t          |¦  «        r ||¦  «         t          |dd ¦  «        }t          |¦  «        r/ |t          |                     d¦  «        |¬¦  «        ¦  «         d S d S )NÚon_eventÚon_rH  )r�  rq  r½  rÁ   Úremoveprefix)rí   r†  r×   r  rX  Úmethodrˆ  s          r   r„  zWanGPSession._emit_callback�  s´   € Ø&) k°S´^Ð5K�4”?�?ÐQTÔQ_ˆØÐØˆFÝ˜ ;°Ñ5Ô5ˆÝ�FÑÔð 	ØˆF�7‰OŒOˆOÝ˜8 Z°Ñ6Ô6ˆÝ�HÑÔð 	WØˆH•\ {×'?Ò'?ÀÑ'FÔ'FÈWÐUÑUÔUÑVÔVÐVÐVÐVð	Wð 	Wr!   r'  rƒ  c                ó  — d|j         j        d<   | j        ��| j                             dd¬¦  «         t	          | j        ¦  «        |j         j        d<   t	          | j        ¦  «        |j         j        d<   t	          | j        ¦  «        |j         j        d<   t	          | j        ¦  «        |j         j        d<   t	          | j        ¦  «        |j         _        t	          | j        ¦  «        |j         _        t	          | j        ¦  «        |j         _        t	          | j        ¦  «        |j         _        |j         j        |j         j        |j         j        |j         j        fD ]&}t          |¦  «                             dd¬¦  «         Œ'd S )	Nr   Únotification_sound_enabledT©ré  Úexist_okÚ	save_pathÚimage_save_pathÚaudio_save_pathÚmesh_save_path)
r„  Úserver_configrì  Úmkdirr#   r�  r‘  r’  r“  r   )rí   r'  r3  s      r   Ú_configure_runtimezWanGPSession._configure_runtimeš  s[  € ØEFˆŒÔ$Ð%AÑBØÔÑ'ØÔ×"Ò"¨4¸$Ð"Ñ?Ô?Ð?Ý8;¸DÔ<LÑ8MÔ8MˆGŒNÔ(¨Ñ5Ý>AÀ$ÔBRÑ>SÔ>SˆGŒNÔ(Ð):Ñ;Ý>AÀ$ÔBRÑ>SÔ>SˆGŒNÔ(Ð):Ñ;Ý=@ÀÔAQÑ=RÔ=RˆGŒNÔ(Ð)9Ñ:Ý'*¨4Ô+;Ñ'<Ô'<ˆGŒNÔ$Ý-0°Ô1AÑ-BÔ-BˆGŒNÔ*Ý-0°Ô1AÑ-BÔ-BˆGŒNÔ*Ý,/°Ô0@Ñ,AÔ,AˆGŒNÔ)àŒNÔ$ØŒNÔ*ØŒNÔ*ØŒNÔ)ð	
ð 	Að 	AˆKõ �ÑÔ×#Ò#¨D¸4Ð#Ñ@Ô@Ð@Ð@ð	Að 	Ar!   c                ó  — | j         d         }t          | j         d¦  «         d|d<   d|d<   d|d<   d	|d
<   d	|d<   d	|d<   d |d<   d|d<   d|d<   |                     di ¦  «         d|                      ¦   «         j        _        d S )Nr5  Tr<  rC  r/   rB  ©r/   r  rm  Fr  Ú
early_stopÚearly_stop_forwardedÚpreviewzGenerating...r°   r;  r7  )rò  r   r8  rø  r„  Úgen_in_progress)rí   rÅ  r5  s      r   Ú_prepare_state_for_runz#WanGPSession._prepare_state_for_run®  s­   € ØŒk˜%Ô ˆÝ# D¤K°Ñ6Ô6Ð6Ø .ˆÐÑØ!#ˆÐÑØ (ˆÐÑØˆˆG‰Ø!ˆˆLÑØ&+ˆÐ"Ñ#ØˆˆI‰Ø'ˆˆH‰Ø!ˆˆMÑØ�ŠÐ-¨rÑ2Ô2Ð2Ø8<ˆ×ÒÑÔÔ%Ô5Ð5Ð5r!   c                ób  — | j         d         }| j        5  g |d<   |                     dd ¦  «         d d d ¦  «         n# 1 swxY w Y   t          | j         d¦  «         d|d<   d|d<   d	|d
<   d|d<   d|d<   d|d<   |                     dd ¦  «         d|                      ¦   «         j        _        d S )Nr5  r>  r  Fr<  rC  r/   rB  r˜  rm  r  r™  rš  r;  )rò  rõ  r}  r   rø  r„  rœ  ©rí   r5  s     r   Ú_reset_state_after_runz#WanGPSession._reset_state_after_run½  s  € ØŒk˜%Ô ˆØŒ^ð 	3ð 	3ØˆC�‰LØ�GŠGÐ+¨TÑ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3õ 	$ D¤K°Ñ7Ô7Ð7Ø .ˆÐÑØ!#ˆÐÑØ (ˆÐÑØˆˆG‰Ø!ˆˆLÑØ&+ˆÐ"Ñ#Ø�Š�˜tÑ$Ô$Ð$Ø8=ˆ×ÒÑÔÔ%Ô5Ð5Ð5s   •=½AÁAúdict[str, int]c                óD   ‡— | j         d         Šˆfd„t          D ¦   «         S )Nr5  c                óP   •— i | ]"}|j         t          ‰|j                 ¦  «        “Œ#S r-   )rZ  r3   Ú	files_key)r   r½  r5  s     €r   rD  z0WanGPSession._gallery_counts.<locals>.<dictcomp>Î  s-   ø€ ÐTÐTÐT¸&�”	�3˜s 6Ô#3Ô4Ñ5Ô5ÐTÐTÐTr!   ©rò  r   rŸ  s    @r   Ú_gallery_countszWanGPSession._gallery_countsÌ  s)   ø€ ØŒk˜%Ô ˆØTÐTÐTÐTÅOÐTÑTÔTÐTr!   Úbase_countsr*   c                óH   ‡‡— | j         d         Šˆˆfd„t          D ¦   «         S )Nr5  c                ó²   •— g | ]S}‰|j                  ‰|j                 d …         D ]0}t          t          |¦  «                             ¦   «         ¦  «        ‘Œ1ŒTS r   )r¤  rZ  r#   r   rè  )r   r½  rÊ   r§  r5  s      €€r   r–   z1WanGPSession._collect_outputs.<locals>.<listcomp>Ò  sŠ   ø€ ð  Dð  Dð  D¨fÐTWÐX^ÔXhÔTiÐjuÐv|Ôvô  kAð  kBð  kBô  UCð  Dð  DÈD••D˜‘J”J×&Ò&Ñ(Ô(Ñ)Ô)ð  Dð  Dð  Dð  Dr!   r¥  )rí   r§  r5  s    `@r   Ú_collect_outputszWanGPSession._collect_outputsÐ  sH   øø€ ØŒk˜%Ô ˆð Dð  Dð  Dð  Dð  D½ð  Dñ  Dô  Dð  	Dr!   rÌ   úGeneratedArtifact | Nonec                ó\  — | j         d         }|                     d¦  «        }t          |t          ¦  «        sd S |                     t          |pd¦  «                             ¦   «         d ¦  «        }t                               |t          |pd¦  «                             ¦   «         ¬¦  «        S ©Nr5  r7  r/   rÕ   )	rò  r2   r"   r1   r}  r#   r$   rÉ   rÛ   ©rí   rÌ   r5  ræ   r×   s        r   Ú_consume_output_artifactz%WanGPSession._consume_output_artifactÔ  ó”   € ØŒk˜%Ô ˆØ—G’GÐ2Ñ3Ô3ˆ	Ý˜)¥TÑ*Ô*ð 	Ø�4Ø—-’-¥ I O°Ñ 4Ô 4× :Ò :Ñ <Ô <¸dÑCÔCˆÝ ×-Ò-¨gÍÈYÈ_ÐZ\ÑI]ÔI]×IcÒIcÑIeÔIeÐ-ÑfÔfÐfr!   c                ó\  — | j         d         }|                     d¦  «        }t          |t          ¦  «        sd S |                     t	          |pd¦  «                             ¦   «         d ¦  «        }t                               |t	          |pd¦  «                             ¦   «         ¬¦  «        S r­  )rò  r2   r"   r1   r#   r$   rÉ   rÛ   r®  s        r   Ú_peek_output_artifactz"WanGPSession._peek_output_artifactÜ  r°  r!   r§  rå   c                óB  — g }|D ]Œ}t          |                      |¦  «                             dd¦  «        pd¦  «                             ¦   «         }t	          |¦  «        dk    rŒ`|                      |¦  «        }|�|                     |¦  «         Œ�t          |¦  «        S )NrÌ   r/   r   )r#   r(  r2   r$   r3   r¯  r4   r&   )rí   rÅ  ræ   rË  rÌ   Úartifacts         r   Ú_consume_output_artifactsz&WanGPSession._consume_output_artifactsä  s£   € Ø-/ˆ	Øð 	+ð 	+ˆDÝ˜D×3Ò3°DÑ9Ô9×=Ò=¸kÈ2ÑNÔNÐTÐRTÑUÔU×[Ò[Ñ]Ô]ˆIÝ�9‰~Œ~ Ò"Ð"ØØ×4Ò4°YÑ?Ô?ˆHØÐ#Ø× Ò  Ñ*Ô*Ð*øÝ�YÑÔÐr!   c                ó^   — | j         d         }d|d<   d|d<   |j        �d|j        _        d S d S )Nr5  TÚresumer  )rò  Ú	wan_modelÚ
_interrupt)rí   r5  r5  s      r   r2  z%WanGPSession._request_cancel_unlockedï  s@   € ØŒk˜%Ô ˆØˆˆH‰ØˆˆG‰ØŒ=Ð$Ø'+ˆCŒMÔ$Ð$Ð$ð %Ð$r!   rÀ  r   c               óP  ‡ ‡— t          |t          t          j        f¦  «        r7‰                      ‰                      t          |¦  «        ‰¦  «        ‰¦  «        S t          |t          ¦  «        rˆˆ fd„t          |¦  «        D ¦   «         S t          |t          ¦  «        rxt          | 
                    d¦  «        t          ¦  «        r$|d         }ˆˆ fd„t          |¦  «        D ¦   «         S ‰                      ‰                      |d¬¦  «        ‰¦  «        gS t          d¦  «        ‚)Nc           	     ór   •— g | ]3\  }}‰                      ‰                     ||d z   ¬¦  «        ‰¦  «        ‘Œ4S rï  rð  ©r   r€  rË  rÀ  rí   s      €€r   r–   z2WanGPSession._normalize_source.<locals>.<listcomp>ÿ  sX   ø€ ð ð ð á�E˜4ð ×+Ò+¨D×,@Ò,@ÀÐRWÐZ[ÑR[Ð,@Ñ,\Ô,\Ð^nÑoÔoðð ð r!   rÅ  c           	     ór   •— g | ]3\  }}‰                      ‰                     ||d z   ¬¦  «        ‰¦  «        ‘Œ4S rï  rð  r¼  s      €€r   r–   z2WanGPSession._normalize_source.<locals>.<listcomp>  sX   ø€ ð ð ð á#˜˜tð ×/Ò/°×0DÒ0DÀTÐV[Ð^_ÑV_Ð0DÑ0`Ô0`ÐbrÑsÔsðð ð r!   r.   rÈ  zHWanGP session source must be a path, a settings dict, or a manifest list)r"   r#   ÚosÚPathLikeÚ_load_tasks_from_pathÚ_resolve_source_pathr   r%   rñ  r1   r2   rÊ  rÉ  rˆ  )rí   r½  rÀ  rÅ  s   ` ` r   rÂ  zWanGPSession._normalize_sourceö  sK  øø€ õ �f�s¥B¤KÐ0Ñ1Ô1ð 	{Ø×-Ò-¨d×.GÒ.GÍÈVÉÌÐVfÑ.gÔ.gÐiyÑzÔzÐzÝ�f�dÑ#Ô#ð 	ðð ð ð ð å#,¨VÑ#4Ô#4ðñ ô ð õ �f�dÑ#Ô#ð 	oÝ˜&Ÿ*š* WÑ-Ô-­tÑ4Ô4ð Ø˜wœ�ðð ð ð ð å'0°Ñ'7Ô'7ðñ ô ð ð ×/Ò/°×0DÒ0DÀVÐXYÐ0DÑ0ZÔ0ZÐ\lÑmÔmÐnÐnÝÐbÑcÔcÐcr!   rË  c          
     óþ  — t          |t          ¦  «        st          d|› d�¦  «        ‚t          j        |¦  «        }d|v rd|vr|                     d¦  «        |d<   d|vr||i dœ}|                     d|¦  «         |                     di ¦  «         |                     di ¦  «         t          |d         t          ¦  «        si |d<   |d         }t          |t          ¦  «        �r|                     dd ¦  «        }t          |t          ¦  «        rt          j        |¦  «        |d         d	<   |                      ¦   «         }t          |j	        d
d ¦  «        }|�|                     d
|¦  «         t          |                     dd¦  «        pd¦  «                             ¦   «         }|r|j	                             |¦  «        nd }	t          |	t          ¦  «        rgt          ||	¦  «        }
|
�.t          d|
d         ›d|
d         › d|
d         d›d|› �¦  «         t!          ||	¦  «        }|rt          d|› d|› �¦  «         |                      |¦  «         |                     d|                     dd¦  «        ¦  «         |                     d|                     d¦  «        ¦  «         |                     d|                     d¦  «        ¦  «         |                     d|                     dd¦  «        ¦  «         |S )NzTask z must be a dictionaryr?   rm  )rZ  rm  rø   rZ  rø   Ú_apirû   r‡  rh   r/   z!WanGP API converted video_length=r€   z to r‚   z frames at r~   Úgz	 fps for z#WanGP API inferred media flags for rl  r  Úlengthr{   Ústepsro  Úrepeatsrâ  r.   )r"   r1   rˆ  r®  r¯  r}  r8  rø  rq  r„  r#   r2   r$   r8  r�   Úprintrf   Ú_normalize_settings_values)rí   rË  r¸   Ú
normalizedr?   r   r'  Úruntime_settings_versionrh   rA   Úduration_conversionÚinferred_flagss               r   rÉ  zWanGPSession._normalize_task  s[  € Ý˜$¥Ñ%Ô%ð 	GÝÐE JÐEÐEÐEÑFÔFÐFÝ”] 4Ñ(Ô(ˆ
Ø˜Ð#Ð#¨¸
Ð(BÐ(BØ#-§>¢>°*Ñ#=Ô#=ˆJ�xÑ Ø˜:Ð%Ð%Ø *°jÐQSÐTÐTˆJØ×Ò˜d JÑ/Ô/Ð/Ø×Ò˜m¨RÑ0Ô0Ð0Ø×Ò˜h¨Ñ+Ô+Ð+Ý˜* ]Ô3µTÑ:Ô:ð 	+Ø(*ˆJ�}Ñ%Ø˜hÔ'ˆÝ�h¥Ñ%Ô%ñ 	SØ"Ÿ,š, v¨tÑ4Ô4ˆKÝ˜+¥tÑ,Ô,ð NÝ37´=ÀÑ3MÔ3M�
˜=Ô)¨%Ñ0Ø×*Ò*Ñ,Ô,ˆGÝ'.¨w¬~Ð?QÐSWÑ'XÔ'XÐ$Ø'Ð3Ø×#Ò#Ð$6Ð8PÑQÔQÐQÝ˜XŸ\š\¨,¸Ñ;Ô;ÐA¸rÑBÔB×HÒHÑJÔJˆJØDNÐX˜œ×4Ò4°ZÑ@Ô@Ð@ÐTXˆIÝ˜)¥TÑ*Ô*ð `Ý&AÀ(ÈIÑ&VÔ&VÐ#Ø&Ð2Ýð  @Ð>QÐRYÔ>Zð  @ð  @ÐbuÐv~Ôbð  @ð  @ð  M`ð  afô  Mgð  @ð  @ð  @ð  t~ð  @ð  @ñ  Aô  Að  AÝ!:¸8ÀYÑ!OÔ!O�Ø!ð `ÝÐ^À
Ð^Ð^ÈnÐ^Ð^Ñ_Ô_Ð_Ø×+Ò+¨HÑ5Ô5Ð5Ø×!Ò! (¨H¯LªL¸À2Ñ,FÔ,FÑGÔGÐGØ×!Ò! (¨H¯LªL¸Ñ,HÔ,HÑIÔIÐIØ×!Ò! '¨8¯<ª<Ð8MÑ+NÔ+NÑOÔOÐOØ×!Ò! )¨X¯\ª\Ð:MÈqÑ-QÔ-QÑRÔRÐRØÐr!   c                ó6  — |                       d¦  «        }t          |t          ¦  «        rH	 t          |                     ¦   «         ¦  «        | d<   n"# t
          $ r}t          d¦  «        |‚d }~ww xY w|                       d¦  «        }t          |t          t          f¦  «        rst          |t          ¦  «        s`t          |t          ¦  «        r(|                     ¦   «         st          |¦  «        | d<   d S t          t          |¦  «        ¦  «        | d<   d S d S d S )Nr{   zGvideo_length must be an integer frame count or a duration such as '10s'r}   )	r2   r"   r#   ri   r$   r‡   rˆ   r   Ú
is_integer)r?   r{   Úexcr}   s       r   rÉ  z'WanGPSession._normalize_settings_values3  s'  € à—|’| NÑ3Ô3ˆÝ�l¥CÑ(Ô(ð 	uðuÝ+.¨|×/AÒ/AÑ/CÔ/CÑ+DÔ+D�˜Ñ(Ð(øÝð uð uð uÝ Ð!jÑkÔkÐqtÐtøøøøðuøøøà—L’L Ñ-Ô-ˆ	Ý�i¥#¥u Ñ.Ô.ð 	<µzÀ)ÍTÑ7RÔ7Rð 	<Ý˜)¥UÑ+Ô+ð <°I×4HÒ4HÑ4JÔ4Jð <Ý(+¨I©¬�˜Ñ%Ð%Ð%å(+­C°	©N¬NÑ(;Ô(;�˜Ñ%Ð%Ð%ð		<ð 	<ð 	<ð 	<s   ¬$A Á
A0ÁA+Á+A0c                ó¶   — |                       d¦  «        }t          |t          ¦  «        r|S |                       d¦  «        }t          |t          ¦  «        r|S i S )Nrm  r?   )r2   r"   r1   )rË  r?   s     r   r(  zWanGPSession._get_task_settingsB  sW   € à—8’8˜HÑ%Ô%ˆÝ�h¥Ñ%Ô%ð 	ØˆOØ—8’8˜JÑ'Ô'ˆÝ�h¥Ñ%Ô%ð 	ØˆOØˆ	r!   rÊ   c                óè  ‡ — ‰                       ¦   «         }|                     ¦   «         st          |¦  «        ‚|j                             ¦   «         dk    r‰                      ||¦  «        S t          |j        ¦  «        5  |j         	                    t          |¦  «        ‰ j        ¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   |rt          |¦  «        ‚ˆ fd„t          |¦  «        D ¦   «         S )Nz.jsonc                óJ   •— g | ]\  }}‰                      ||d z   ¬¦  «        ‘Œ S rï  ©rÉ  ©r   r€  rË  rí   s      €r   r–   z6WanGPSession._load_tasks_from_path.<locals>.<listcomp>V  s4   ø€ ÐeÐeÐeÁ[ÀUÈD�×$Ò$ T°e¸a±iÐ$Ñ@Ô@ÐeÐeÐer!   )rø  ÚexistsÚFileNotFoundErrorru  rƒ   Ú_load_settings_jsonr"  r…  r„  Ú_parse_queue_zipr#   rò  rN  rñ  )rí   rÊ   rÀ  r'  rÅ  rê   s   `     r   rÀ  z"WanGPSession._load_tasks_from_pathL  s5  ø€ Ø×&Ò&Ñ(Ô(ˆØ�{Š{‰}Œ}ð 	*Ý# DÑ)Ô)Ð)ØŒ;×ÒÑÔ 'Ò)Ð)Ø×+Ò+¨DÐ2BÑCÔCÐCÝ�G”LÑ!Ô!ð 	Sð 	SØ"œ>×:Ò:½3¸t¹9¼9ÀdÄkÑRÔR‰LˆE�5ð	Sð 	Sð 	Sñ 	Sô 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Søøøð 	Sð 	Sð 	Sð 	Sàð 	&Ý˜uÑ%Ô%Ð%ØeÐeÐeÐeÕT]Ð^cÑTdÔTdÐeÑeÔeÐes   Â 1B=Â=CÃCc                óì  ‡ ‡— |                      dd¬¦  «        5 }t          j        |¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |t          ¦  «        r|}nnt          |t
          ¦  «        r1t          |                     d¦  «        t          ¦  «        r	|d         }n(t          |t
          ¦  «        r|g}nt          d¦  «        ‚ˆ fd„t          |¦  «        D ¦   «         }ˆˆ fd„|D ¦   «         S )NÚrrp  rn  rÅ  z;Settings file must contain a JSON object or a list of tasksc                óJ   •— g | ]\  }}‰                      ||d z   ¬¦  «        ‘Œ S rï  rÔ  rÕ  s      €r   r–   z4WanGPSession._load_settings_json.<locals>.<listcomp>e  s4   ø€ ÐjÐjÐjÁkÀeÈT�×%Ò% d°u¸q±yÐ%ÑAÔAÐjÐjÐjr!   c                ó<   •— g | ]}‰                      |‰¦  «        ‘ŒS r-   )rÊ  )r   rË  rÀ  rí   s     €€r   r–   z4WanGPSession._load_settings_json.<locals>.<listcomp>f  s*   ø€ ÐVÐVÐVÈ�×+Ò+¨DÐ2BÑCÔCÐVÐVÐVr!   )	Úopenrx  Úloadr"   r%   r1   r2   rN  rñ  )rí   rÊ   rÀ  Úhandler×   Ú	raw_tasksrÅ  s   ` `    r   rØ  z WanGPSession._load_settings_jsonX  s@  øø€ Ø�YŠY�s WˆYÑ-Ô-ð 	(°Ý”i Ñ'Ô'ˆGð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(õ �g�tÑ$Ô$ð 	^ØˆIˆIÝ˜¥Ñ&Ô&ð 	^­:°g·k²kÀ'Ñ6JÔ6JÍDÑ+QÔ+Qð 	^Ø Ô(ˆIˆIÝ˜¥Ñ&Ô&ð 	^Ø ˜	ˆIˆIåÐ\Ñ]Ô]Ð]àjÐjÐjÐjÕU^Ð_hÑUiÔUiÐjÑjÔjˆØVÐVÐVÐVÐVÐPUÐVÑVÔVÐVs   š;»?Á?c                 óL   — t          j        ¦   «                              ¦   «         S r   )r   Úcwdrè  r-   r!   r   rÃ  z"WanGPSession._get_caller_base_pathh  s   € åŒx‰zŒz×!Ò!Ñ#Ô#Ð#r!   c                ó€   — |                       ¦   «         r|                      ¦   «         S || z                       ¦   «         S r   )Úis_absoluterè  )rÊ   rÀ  s     r   rÁ  z!WanGPSession._resolve_source_pathl  s;   € à×ÒÑÔð 	"Ø—<’<‘>”>Ð!Ø  4Ñ'×0Ò0Ñ2Ô2Ð2r!   c                óü   — t          j        |¦  «        }|                     d¦  «        }t          |t          ¦  «        s|S |                      ¦   «         D ]&}||vrŒ|                      ||         |¦  «        ||<   Œ'|S )Nrm  )r®  r¯  r2   r"   r1   Ú_get_attachment_keysÚ_absolutize_setting_path)rí   rË  rÀ  rÊ  r?   rC  s         r   rÊ  z#WanGPSession._absolutize_task_pathsr  s‹   € Ý”] 4Ñ(Ô(ˆ
Ø—>’> (Ñ+Ô+ˆÝ˜(¥DÑ)Ô)ð 	ØÐØ×,Ò,Ñ.Ô.ð 	[ð 	[ˆCØ˜(Ð"Ð"ØØ ×9Ò9¸(À3¼-ÐIYÑZÔZˆH�S‰MˆMØÐr!   c                ó®   — | j         €H|                      ¦   «         }t          |j        dd¦  «        }t	          d„ |D ¦   «         ¦  «        | _         | j         S )NÚATTACHMENT_KEYSr-   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   r<   )r   rC  s     r   r    z4WanGPSession._get_attachment_keys.<locals>.<genexpr>�  s(   è è € Ð)CÐ)C°s­#¨c©(¬(Ð)CÐ)CÐ)CÐ)CÐ)CÐ)Cr!   )rö  rø  rq  r„  r&   )rí   r'  Úkeyss      r   rç  z!WanGPSession._get_attachment_keys}  sX   € ØÔ Ð(Ø×*Ò*Ñ,Ô,ˆGÝ˜7œ>Ð+<¸bÑAÔAˆDÝ$)Ð)CÐ)C¸dÐ)CÑ)CÔ)CÑ$CÔ$CˆDÔ!ØÔ$Ð$r!   r   c                óP  ‡ ‡— t          |t          ¦  «        rˆˆ fd„|D ¦   «         S t          |t          j        ¦  «        rt          j        |¦  «        }t          |t
          ¦  «        r|                     ¦   «         s|S t          |¦  «        }|�t          |¦  «        �|S t          |�|j
        n|¦  «        }|                     ¦   «         r"t          |                     ¦   «         ¦  «        }n$t          ‰|z                       ¦   «         ¦  «        }|�t          ||¦  «        n|S )Nc                ó<   •— g | ]}‰                      |‰¦  «        ‘ŒS r-   )rè  )r   r   rÀ  rí   s     €€r   r–   z9WanGPSession._absolutize_setting_path.<locals>.<listcomp>†  s*   ø€ Ð\Ð\Ð\Èd�D×1Ò1°$Ð8HÑIÔIÐ\Ð\Ð\r!   )r"   r%   r¾  r¿  Úfspathr#   r$   r   r   r   Úsource_pathrå  rè  r   )rí   r   rÀ  ÚspecrÊ   Úresolveds   ` `   r   rè  z%WanGPSession._absolutize_setting_path„  s%  øø€ Ý�e�TÑ"Ô"ð 	]Ø\Ð\Ð\Ð\Ð\ÐV[Ð\Ñ\Ô\Ð\Ý�e�Rœ[Ñ)Ô)ð 	%Ý”I˜eÑ$Ô$ˆEÝ˜%¥Ñ%Ô%ð 	¨U¯[ª[©]¬]ð 	ØˆLÝ'¨Ñ.Ô.ˆØÐÕ 9¸$Ñ ?Ô ?Ð KØˆLÝ¨Ð(8�DÔ$Ð$¸eÑDÔDˆØ×ÒÑÔð 	@Ý˜4Ÿ<š<™>œ>Ñ*Ô*ˆHˆHåÐ,¨tÑ3×<Ò<Ñ>Ô>Ñ?Ô?ˆHØ@DÐ@PÕ+¨E°8Ñ<Ô<Ð<ÐV^Ð^r!   )r¸   r·   ró   rê   ró   rñ   c               óÖ   — t          | t          ¦  «        r| S t          | t          ¦  «        rt          | ¦  «        p| j        j        }nt          | ¦  «        }t          ||||¬¦  «        S )N)rò   r¸   r·   ró   )r"   rñ   ÚBaseExceptionr#   Ú	__class__r©   )rê   r¸   r·   ró   rò   s        r   Ú_make_generation_errorz#WanGPSession._make_generation_error•  sg   € õ �e�_Ñ-Ô-ð 	ØˆLÝ�e�]Ñ+Ô+ð 	!Ý˜%‘j”jÐ< E¤OÔ$<ˆGˆGå˜%‘j”jˆGÝ w¸:ÈwÐ^cÐdÑdÔdÐdr!   c           	     ót  — t           5  t          �at          j        | j        k    s*t          j        | j        k    st          j        | j        k    rt          d¦  «        ‚t          cd d d ¦  «         S dg| j        ¢}| j        dz   	                    ¦   «         }| j        j
        dk    rt          d¦  «        ‚| j        |k    rS| j        j                             dd¬¦  «         d|vr.|                     dt          | j        j        ¦  «        g¦  «         t          | j        ¦  «        t           j        vr2t           j                             dt          | j        ¦  «        ¦  «         t'          | j        ¦  «        5  t)          |¦  «        5  t+          j        d	¦  «        }t/          |j        ¦  «         	                    ¦   «         j        }|| j        k    rt          d
|› d| j        › �¦  «        ‚t3          |d¦  «        s|                     ¦   «         |_        |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t;          || j        | j        | j        ¬¦  «        at=          || j         o| j         ¬¦  «         t          cd d d ¦  «         S # 1 swxY w Y   d S )Nz@WanGP runtime already loaded with different root/config/cli argszwgp.pyrä  z8config_path must point to a file named 'wgp_config.json'TrŽ  z--configr   r5  z!WanGP module already loaded from z, expected Úapp)r„  r…  r†  rˆ  ©Úenabled)!Ú_RUNTIME_LOCKr   r…  rê  r†  rë  rˆ  rí  rN  rè  rÿ  r‡   Úparentr•  Úextendr#   ÚsysrÊ   Úinsertr"  Ú_temporary_argvÚ	importlibÚimport_moduler   rç  ÚhasattrÚWAN2GPApplicationrø  Údownload_ffmpegrƒ  Ú_print_banner_oncerï  rî  )rí   ÚargvÚdefault_config_pathr„  Úmodule_roots        r   rø  zWanGPSession._ensure_runtime¥  sr  € åð "	ð "	ÝÐ#Ý”= D¤JÒ.Ð.µ(Ô2FÈ$ÔJ[Ò2[Ð2[Õ_gÔ_pÐtxô  uCò  `Cð  `CÝ&Ð'iÑjÔjÐjÝð	"	ð "	ð "	ð "	ñ "	ô "	ð "	ð "	ð Ð.˜tœ~Ð.ˆDØ#'¤:Ð0AÑ#A×"JÒ"JÑ"LÔ"LÐØÔ Ô%Ð):Ò:Ð:Ý Ð![Ñ\Ô\Ð\ØÔ Ð$7Ò7Ð7ØÔ!Ô(×.Ò.°tÀdÐ.ÑKÔKÐKØ TÐ)Ð)Ø—K’K ­S°Ô1BÔ1IÑ-JÔ-JÐ KÑLÔLÐLå�4”:‰Œ¥c¤hÐ.Ð.Ý”—’ ¥3 t¤z¡?¤?Ñ3Ô3Ð3å˜œ
Ñ#Ô#ð )ð )¥_°TÑ%:Ô%:ð )ð )Ý"Ô0°Ñ7Ô7�Ý" 6¤?Ñ3Ô3×;Ò;Ñ=Ô=ÔD�Ø $¤*Ò,Ð,Ý&Ð'oÈ;Ð'oÐ'oÐcgÔcmÐ'oÐ'oÑpÔpÐpÝ˜v uÑ-Ô-ð <Ø!'×!9Ò!9Ñ!;Ô!;�F”JØ×&Ò&Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ %ØØ”ZØ Ô-Øœð	ñ ô ˆHõ ˜v°4Ô3HÐ/HÐ/aÈTÔMaÐbÑbÔbÐbÝðE"	ð "	ð "	ð "	ñ "	ô "	ð "	ð "	ð "	ð "	ð "	ð "	øøøð "	ð "	ð "	ð "	ð "	ð "	sc   ˆAJ-Á1D	J-Å:IÆ
B"H8È,IÈ8H<È<IÈ?H<É IÉJ-ÉI	ÉJ-ÉI	ÉA	J-Ê-J1Ê4J1r‘   c                ó  — t          | ¦  «                             ¦   «         }d|v sd|v rdS d|v sd|v rdS d|v sd|v rd	S d
|v s|                     d¦  «        rdS d|v sd|v sd|v rdS d|v sd|v rdS d|v sd|v sd|v rdS d|v sd|v rdS dS )Nzdenoising first passzdenoising 1st passÚinference_stage_1zdenoising second passzdenoising 2nd passÚinference_stage_2zdenoising third passzdenoising 3rd passÚinference_stage_3zloading modelÚloadingrp  zenhancing promptzencoding promptro  Úencoding_textzvae decodingÚdecodingÚsavedÚ	completedÚoutputÚdownloading_outputrÀ  r  ré   Ú	inference)r£   rƒ   Ú
startswith)r‘   Úlowereds     r   rq  zWanGPSession._normalize_phaseË  s  € å,¨TÑ2Ô2×8Ò8Ñ:Ô:ˆØ! WÐ,Ð,Ð0DÈÐ0OÐ0OØ&Ð&Ø" gÐ-Ð-Ð1EÈÐ1PÐ1PØ&Ð&Ø! WÐ,Ð,Ð0DÈÐ0OÐ0OØ&Ð&Ø˜gÐ%Ð%¨×);Ò);¸IÑ)FÔ)FÐ%Ø"�?Ø Ð(Ð(Ð,=ÀÐ,HÐ,HÈJÐZaÐLaÐLaØ"�?Ø˜WÐ$Ð$¨
°gÐ(=Ð(=Ø�:Ø�gÐÐ °Ð!7Ð!7¸8ÀwÐ;NÐ;NØ'Ð'Ø�wÐÐ '¨WÐ"4Ð"4Ø�;Øˆ{r!   r¯   c                ó(   — t          | pd¦  «        dv S )Nr/   >   r  r  r  r  r  r  r<   )r¯   s    r   rr  z%WanGPSession._phase_supports_progressà  s#   € å�5�;˜BÑÔð  $Mð  Mð  	Mr!   r³   r´   c                óp  — |�|dk    s|€B| dk    rdS | dk    rdS | dk    rdS | dk    rd	S | d
k    rdS | dk    rdS | dk    rdS | dk    rdS dS t          dt          d||z  ¦  «        ¦  «        }| dk    r#t          ddt          |dz  ¦  «        z   ¦  «        S | dk    r#t          ddt          |dz  ¦  «        z   ¦  «        S | dk    r#t          ddt          |dz  ¦  «        z   ¦  «        S | dk    r#t          ddt          |dz  ¦  «        z   ¦  «        S | d
k    r#t          ddt          |dz  ¦  «        z   ¦  «        S | dk    r#t          ddt          |dz  ¦  «        z   ¦  «        S | dk    r#t          ddt          |d z  ¦  «        z   ¦  «        S | dk    rdS t          ddt          |d!z  ¦  «        z   ¦  «        S )"Nr   rp  é
   r  é   r  é   r  éF   r  éP   r  éZ   r  é_   ré   é   g        r  rq   é   é   éD   é   é0   éX   éY   é	   éU   éb   rW  é   éA   )r%  r&  ri   )r¯   r³   r´   Úratios       r   rs  zWanGPSession._estimate_progressä  s  € àÐ +°Ò"2Ð"2°lÐ6JØ˜Ò'Ð'Ø�rØ˜Ò'Ð'Ø�rØÐ+Ò+Ð+Ø�rØÐ+Ò+Ð+Ø�rØÐ+Ò+Ð+Ø�rØ˜
Ò"Ð"Ø�rØÐ,Ò,Ð,Ø�rØ˜Ò#Ð#Ø�qØ�2Ý�C�˜S ,°Ñ"<Ñ=Ô=Ñ>Ô>ˆØ�OÒ#Ð#Ý�r˜1�s 5¨2¡:™œÑ.Ñ/Ô/Ð/Ø�OÒ#Ð#Ý�r˜2¥ E¨B¡J¡¤Ñ/Ñ0Ô0Ð0ØÐ'Ò'Ð'Ý�r˜2¥ E¨B¡J¡¤Ñ/Ñ0Ô0Ð0ØÐ'Ò'Ð'Ý�r˜2¥ E¨B¡J¡¤Ñ/Ñ0Ô0Ð0ØÐ'Ò'Ð'Ý�r˜2¥ E¨A¡I¡¤Ñ.Ñ/Ô/Ð/Ø�JÒÐÝ�r˜2¥ E¨B¡J¡¤Ñ/Ñ0Ô0Ð0ØÐ(Ò(Ð(Ý�r˜2¥ E¨A¡I¡¤Ñ.Ñ/Ô/Ð/Ø�KÒÐØ�1Ý�2�r�C ¨¡
™OœOÑ+Ñ,Ô,Ð,r!   )r…  râ  r†  râ  rÞ  râ  rŸ  r   rˆ  r©  rß  r   r`  r   rà  ry   rá  r   r   r<  )r   rŒ  )rú  r  rû  r  rü  r  rh   r  rý  r  rþ  r  rÿ  r  r   r’   r  r’   r  r   r  r²   r  ri   r   rÍ  )r+  r   r   rÍ  rü   )r/  r   r0  r   r+  r   r   rÍ  )rh   r#   r   ry   )F)rh   r#   r/  r   r   ry   )rh   r#   r   r@   r   )rh   r#   rP  r’   r0  r   r   r@   )r?   r@   r   r@   )rh   r#   r   r#   )rh   r#   rÿ  r  r   r@   )r¢  r©  r   rÍ  )r5  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Ò   rÔ  rˆ   rÕ  rˆ   rÖ  ri   r   ry   rþ   r   rŸ  r   rÚ  r   r   rŠ  )rH   rØ  rå  r#   rß  râ  rà  r#   rá  r#   rÖ  ri   râ  ri   rã  râ  rä  râ  r   ry   rþ   r   rŸ  r   rÚ  r   r   rŠ  )rß  rØ  rå  r#   rã  râ  rä  râ  r   ry   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Ÿ  r   r   rÞ   )r×  rØ  rú  r   r   rÞ   )rH   rØ  rú  r   r   rÞ   )rß  rØ  rú  r   r   rÞ   r]  )r   r@   )r  r#   r   r@   )r   r7  )rÅ  rÍ  rŸ  r   r   rŠ  )r  rŠ  rŸ  r   r   r<  )rÅ  rÍ  rJ  r   r   r‡  )rÅ  rÍ  r   r_  )r  rŠ  rÅ  rÍ  r   r<  )rÃ   r   ri  r   r·   r’   r¸   r²   r¹   r²   r   r®   )rÅ  rÍ  r×   r   r   r|  )r  rŠ  ra  r#   r�  r#   r   r<  )r†  r#   r×   r   r  r7  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   rÍ  )rË  r@   r¸   ri   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   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¯   r#   r³   r²   r´   r²   r   ri   )Pr©   rª   r«   rF  rù  r$  r.  r6  r8  r<  r@  r3  rƒ  r‹  r�  r“  rq  rŸ  r;  r¡  r®  r4  r¼  rÆ  rÌ  rÞ  rè  rë  rò  rõ  r÷  rù  rü  rÿ  r  rM  rÀ  r	  r  r*  r6  rï   r9  Ústaticmethodrñ  rÄ  rO  rP  rQ  rS  rd  r{  r€  r…  r„  r–  r�  r   r¦  rª  r¯  r²  rµ  r2  rÂ  rÉ  rÉ  r(  rÀ  rØ  rÃ  rÁ  rÊ  rç  rè  rö  rø  rq  rr  rs  r-   r!   r   rÝ  rÝ  B  sí  € € € € € ð /3Ø59Ø48Ø#'Ø"$Ø#Ø#Ø-1Ø"ð=ð =ð =ð =ð =ð =ð8ð ð ð ð GKÐz~ð  _cð  NRð  ~Bð  imð  RVð  lpð  KOð  tyð  OSð  cdð $.ð $.ð $.ð $.ð $.ð $.ðL/ð /ð /ð /ð ð  ð  ð  ð  ð5ð 5ð 5ð 5ð	ð 	ð 	ð 	ð 	ðð ð ð ðð ð ð ð qÐnsð  qð  qð  qð  qð  qð  qðDð ð ð ð$Xð Xð Xð XðWð Wð Wð Wð@ð @ð @ð @ðmð mð mð mð mðEð Eð Eð Eð
ð ð ð ð~ð ~ð ~ð ~ðPð Pð Pð Pð&ð &ð &ð &ð,>ð >ð >ð >ð >ðnð nð nð nð nð
 oqð  MOð  qsð  lpð  Z^ð  IMð  mnð  ORð  `bð  IMð  dið  FJð ?ð ?ð ?ð ?ð ?ð ?ð QUð  wyð  _að  oqð  LMð  EIð  BFð  mqð  HMð  jnð ?ð ?ð ?ð ?ð ?ð ?ð bfð  _cð  JNð  ejð  GKð ?ð ?ð ?ð ?ð ?ð ?ð>ð >ð >ð >ð >ðAð Að Að Að AðHð Hð Hð Hð HðQð Qð Qð Qð QðQð Qð Qð QðHð Hð Hð HðQð Qð Qð Qð+ð +ð +ð +ðð ð ð ð_ð _ð _ðð ð ðQð Qð Qð Qð*^ð ^ð ^ð ^ð4 ð$ð $ð $ñ „Xð$ð ð
ð 
ð 
ñ „\ð
ð*ð ð ð ð ðBð ð ð ð ð ØQVð !ð !ð !ð !ð !ñ „\ð!ð$4ð 4ð 4ð 4ð&ð &ð &ð &ð(ð (ð (ð (ð
 SWÐnrð  NRð  mqð ?
ð ?
ð ?
ð ?
ð ?
ð ?
ðB
ð 
ð 
ð 
ð";ð ;ð ;ð ;ð
 Z^ð 	Wð 	Wð 	Wð 	Wð 	Wð 	WðAð Að Að Að(=ð =ð =ð =ð>ð >ð >ð >ðUð Uð Uð UðDð Dð Dð Dñgð gð gð gñgð gð gð gñ	 ð 	 ð 	 ð 	 ð,ð ,ð ,ð ,ñdð dð dð dñ.$ð $ð $ð $ðL ñ<ð <ð <ñ „\ð<ð ñð ð ñ „\ðñ
fð 
fð 
fð 
fñWð Wð Wð Wð  ñ$ð $ð $ñ „\ð$ð ñ3ð 3ð 3ñ „\ð3ñ
	ð 	ð 	ð 	ñ%ð %ð %ð %ñ_ð _ð _ð _ð" ð "&ØØ ðeð eñ eð eð eñ „\ðeñ$ð $ð $ð $ðL ñð ð ñ „\ðð( ñMð Mð Mñ „\ðMð ñ$-ð $-ð $-ñ „\ð$-ð $-ð $-r!   rÝ  r/   rÍ  r  rÜ  r×  rØ  rÎ  rÏ  rÐ  rÑ  rÙ  rÒ  rÒ   rÓ  rÔ  rˆ   rÕ  rÖ  r   rþ   rÚ  c               óò   — i dd“dd“dd“dt          j        | ¦  «        “d|pd	“d
|pd	“d|“dt          |pg ¦  «        “d|“d|“d|“d|“dd	“dd“dd“dt          |	¦  «        “}t	          |||
|¦  «         |S )NÚmodeÚedit_postprocessingr  zMedia postprocessingÚ
image_moder   rH   rÎ  r/   rÏ  rÐ  rÑ  rÒ  rÓ  rÔ  rÕ  rå  râ  r.   Ú
batch_sizerÖ  )r¾  rï  r%   ri   Ú_apply_edit_settings_overrides)r×  rÎ  rÏ  rÐ  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  r   rþ   rÚ  r?   s                 r   rÝ  rÝ    s  € ðØÐ%ðàÐ(ðð 	�aðð 	�œ	 ,Ñ/Ô/ð	ð
 	Ð2Ð8°bðð 	Ð0Ð6°Bðð 	#Ð$<ðð 	-­dÐ3UÐ3[ÐY[Ñ.\Ô.\ðð 	"Ð#:ðð 	#Ð$<ðð 	Ð 4ðð 	 Ð!6ðð 	˜Rðð 	˜Qðð 	�aðð  	•�D‘	”	ð!€Hõ$ # 8Ð-?ÀÈlÑ[Ô[Ð[Ø€Or!   r.   )	rß  rà  rá  rÖ  râ  rã  rä  r   rþ   rH   rå  rß  râ  rà  rá  râ  rã  rä  c       
        ó|  — i dd“dd“dd“dt          j        | ¦  «        “d|pd	“d
|pd	“d|pd	“dt          |¦  «        “dt          |¦  «        “d|€d nt          j        |¦  «        “d|€d nt          j        |¦  «        “d|€d nt          j        |¦  «        “dd	“dd	“dd“dd“dd“}t          |||	|
¦  «         |S )Nr2  Ú
edit_remuxr  zAudio remuxingr4  r   rH   rå  r/   rà  rá  rÖ  râ  rß  rã  rä  rÎ  rÏ  rÔ  rÕ  rÍ  r5  r.   )r¾  rï  ri   r6  )rH   rå  rß  rà  rá  rÖ  râ  rã  rä  r   rþ   rÚ  r?   s                r   rç  rç  #  sV  € ðØ�ðàÐ"ðð 	�aðð 	�œ	 ,Ñ/Ô/ð	ð
 	Ð.Ð4°"ðð 	#Ð$<Ð$BÀðð 	'Ð(DÐ(JÈðð 	•�D‘	”	ðð 	�SÐ!2Ñ3Ô3ðð 	 Ð 4˜˜½"¼)ÀLÑ:QÔ:Qðð 	Ð(<Ð(D  Í"Ì)ÐThÑJiÔJiðð 	 Ð)>Ð)F  ÍBÌIÐVkÑLlÔLlðð 	˜rðð 	˜bðð 	 ðð  	  ð!ð" 	�að#€Hõ& # 8Ð-?ÀÈlÑ[Ô[Ð[Ø€Or!   )rã  rä  r   rþ   c          
     óÂ   — dddt          j        | ¦  «        |pd|€d nt          j        |¦  «        |€d nt          j        |¦  «        dddœ	}t          ||||¦  «         |S )NÚ
edit_audiozAudio postprocessingr   r/   r.   )	r2  r  r4  rß  rå  rã  rä  râ  r5  )r¾  rï  r6  )rß  rå  rã  rä  r   rþ   rÚ  r?   s           r   rê  rê  ;  s|   € àØ(ØÝœ	 ,Ñ/Ô/Ø.Ð4°"Ø(<Ð(D  Í"Ì)ÐThÑJiÔJiØ)>Ð)F  ÍBÌIÐVkÑLlÔLlØØð
ð 
€Hõ # 8Ð-?ÀÈlÑ[Ô[Ð[Ø€Or!   r<  c                ó2  — |                      dd ¦  «        }|                      |¦  «         |                       dd ¦  «         |                       dd ¦  «         t          j        |�|n|¦  «        }t	          |t
          ¦  «        si }|rd|d<   |r|| d<   d S d S )NrÃ  rh   rû  Trþ   )r}  r2  r®  r¯  r"   r1   )r?   rÚ  r   rþ   Úoverride_api_optionsÚoptionss         r   r6  r6  K  s¸   € Ø-×1Ò1°&¸$Ñ?Ô?ÐØ‡O‚OÐ&Ñ'Ô'Ð'Ø‡L‚L�˜tÑ$Ô$Ð$Ø‡L‚LÐ" DÑ)Ô)Ð)ÝŒm¨;Ð+B˜K˜KÐH\Ñ]Ô]€GÝ�g�tÑ$Ô$ð ØˆØð 'Ø"&ˆ�ÑØð #Ø"ˆ�ÑÐÐð#ð #r!   c                óÞ   — t          | ¦  «        rd S t          | t          ¦  «        rd„ |                      ¦   «         D ¦   «         S t          | t          t
          f¦  «        rd„ | D ¦   «         S | S )Nc                óR   — i | ]$\  }}t          |¦  «        °|t          |¦  «        “Œ%S r-   ©r½  r#  )r   rC  r   s      r   rD  z._strip_model_def_callables.<locals>.<dictcomp>]  s6   € ÐkÐkÐk¹)¸#¸tÕ\dÐeiÑ\jÔ\jÐk�Õ/°Ñ5Ô5ÐkÐkÐkr!   c                óJ   — g | ] }t          |¦  «        °t          |¦  «        ‘Œ!S r-   r@  r   s     r   r–   z._strip_model_def_callables.<locals>.<listcomp>_  s-   € ÐYÐYÐY°TÍ(ÐSWÉ.Ì.ÐYÕ*¨4Ñ0Ô0ÐYÐYÐYr!   )r½  r"   r1   rh  r%   r&   r(   s    r   r#  r#  Y  st   € Ý��„ð ØˆtÝ�%�ÑÔð lØkÐkÀuÇ{Â{Á}Ä}ÐkÑkÔkÐkÝ�%�$¥˜Ñ'Ô'ð ZØYÐY¸UÐYÑYÔYÐYØ€Lr!   r°   c                ó¨   — ddl m} ||j        k    rd\  }}n||j        k    rd\  }}nd\  }}t	          | ¦  «        |t          |¦  «        ||dk    dœS )Nr   )r¦  )Ú	availableÚblue_square)ÚpartialÚyellow_square)ÚmissingÚblack_squarerk  )rh   r°   Ústatus_codeÚ	indicatorrC  )Úsharedr¦  ÚMODEL_FILE_STATUS_EXPECTEDÚMODEL_FILE_STATUS_PARTIALr#   ri   )rh   r°   r¦  ÚlabelrJ  s        r   r¥  r¥  c  s€   € Ø&Ð&Ð&Ð&Ð&Ð&à�Ô;Ò;Ð;Ø5ÑˆˆyˆyØ	�?Ô<Ò	<Ð	<Ø5Ñˆˆyˆyà4Ñˆˆyå˜*‘o”oØÝ˜6‘{”{ØØ˜q’[ðð ð r!   r-   ©r…  r†  rÞ  rŸ  rˆ  rß  r`  rà  r…  r†  rÞ  rŸ  r   rˆ  r©  rß  r`  rà  c           
     óT   — t          | |||||||¬¦  «                             ¦   «         S )z7Create and eagerly initialize a reusable WanGP session.rO  )rÝ  rù  rO  s           r   ÚinitrQ  u  s>   € õ ØØØØØØ%Ø%Øð	ñ 	ô 	÷ ‚l�n„nð	r!   c                ó2   — ddl m}  || t          ¬¦  «        S )Nr   )Úcreate_gradio_webui_session)Úinit_fn)rh  rS  rQ  )ÚpluginÚ_create_gradio_webui_sessions     r   rS  rS  �  s*   € Ø\Ð\Ð\Ð\Ð\Ð\à'Ð'¨½Ð=Ñ=Ô=Ð=r!   c                ó$   — ddl m}  || ¦  «        S )Nr   )Ú create_gradio_progress_callbacks)rh  rX  )r±   Ú!_create_gradio_progress_callbackss     r   rX  rX  “  s%   € ØfÐfÐfÐfÐfÐfà,Ð,¨XÑ6Ô6Ð6r!   rÊ   r   úIterator[None]c              #  ó¼   K  — t          j        ¦   «         }t          j        | ¦  «         	 d V — t          j        |¦  «         d S # t          j        |¦  «         w xY wr   )r   rã  r¾  Úchdir)rÊ   Úpreviouss     r   r"  r"  ™  sX   è è € åŒx‰zŒz€HÝ„HˆT�N„N€NðØˆˆˆå
Œ�ÑÔÐÐÐø�Œ�ÑÔÐÐøøøs   «A ÁAr  c              #  ó²   K  — t          t          j        ¦  «        }t          | ¦  «        t          _        	 d V — |t          _        d S # |t          _        w xY wr   )r%   rþ  r  )r  r]  s     r   r   r   £  sL   è è € å•C”H‰~Œ~€HÝ�D‰zŒz…C„HðØˆˆˆà�Œˆˆø�8�ŒÐÐÐÐs   ¶A ÁArù  rú  c               óÜ   — |sd S t           rd S da d| j        › d�}t          j        �t          j        nt          j        }|�+|                     |¦  «         |                     ¦   «          d S d S )NTzPowered by WanGP vz - a DeepBeepMeep Production
)Ú_BANNER_PRINTEDÚWanGP_versionrþ  Ú
__stdout__Ústdoutru  rx  )r„  rú  Úbannerrb  s       r   r  r  ­  sy   € àð ØˆÝð ØˆØ€OØV &Ô"6ÐVÐVÐV€FÝ #¤Ð :�cŒnˆnÅÄ
€GØÐØ�Š�fÑÔÐØ�Š‰Œˆˆˆð Ðr!   )r   r   r   r   )r)   r   r   r*   )r8   r   r9   r#   r   r#   )r?   r@   rA   r@   r   rB   )rg   r   rh   r#   rA   r@   r   ri   )r?   r@   rA   r@   r   ry   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   r0  r   rÏ   r   rÓ   r   rÔ   r1  r   ry   )r5  r@   rÌ   r#   r.  r   rË   r#   r  r   r'  r   r/  r   r0  r   rÏ   r   rÓ   r   rÔ   r1  r   r   )r×  rØ  rÎ  r#   rÏ  r#   rÐ  r#   rÑ  rÙ  rÒ  rÒ   rÓ  rÒ   rÔ  rˆ   rÕ  rˆ   rÖ  ri   r   ry   rþ   r   rÚ  r   r   r@   )rH   rØ  rå  r#   rß  râ  rà  r#   rá  r#   rÖ  ri   râ  ri   rã  râ  rä  râ  r   ry   rþ   r   rÚ  r   r   r@   )rß  rØ  rå  r#   rã  râ  rä  râ  r   ry   rþ   r   rÚ  r   r   r@   )
r?   r@   rÚ  r@   r   ry   rþ   r   r   r<  )r   r   r   r   )rh   r#   r°   ri   r   r@   )r…  râ  r†  râ  rÞ  râ  rŸ  r   rˆ  r©  rß  r   r`  r   rà  ry   r   rÝ  )r   r   )rÊ   r   r   rZ  )r  r©  r   rZ  )rú  r   r   r<  )`Ú__doc__Ú
__future__r   Ú
contextlibr®  r  r  Úiorx  rŠ   Únumpyr)  r¾  r>  Úrerþ  rA  rÇ   r%  rv  Údataclassesr   r   Úpathlibr   Útypingr   r   r	   ÚPILr
   Úshared.tinyvae.mediar   Úshared.utils.frame_schedulerr   r   Úshared.utils.gallery_sourcesr   r   Úshared.utils.process_locksr   Úshared.utils.virtual_mediar   r   r   ÚRLockrû  r  r   r¬   r`  ÚcompileÚ
IGNORECASEr›   r™   r�   r…   r   r7   r>   rf   rx   r�   r£   r¦   r®   r½   rÁ   rÉ   rÞ   rñ   r  r  r&  r,  r4  r9  r;  Ú
TextIOBaser_  rƒ  rŠ  rÝ  rÝ  rç  rê  r6  r#  r¥  rQ  rS  rX  Úcontextmanagerr"  r   r  r-   r!   r   ú<module>ry     sg  ðà AÐ AÐ Aà "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -à WÐ WÐ WÐ WÐ WÐ WÐ WÐ WØ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ BÐ BÐ BÐ BÐ BÐ BØ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xà�	”Ñ!Ô!€Ø"�9”?Ñ$Ô$Ð Ø#'€Ð 'Ð 'Ð 'Ñ 'Ø€Ø#˜œð  %Gð  IKô  IVñ  Wô  WÐ Ø�2”:Ð<Ñ=Ô=Ð Ø!�r”zÐ"7¸¼ÑGÔGÐ Ø$˜"œ*Ð%IÈ2Ì=ÑYÔYÐ ðð ð ð ðð ð ð ð ð ð ð ð"ð "ð "ð "ðJ	Uð 	Uð 	Uð 	UðRð Rð Rð Rð:0ð 0ð 0ð 0ð* €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð
 €�$ÐÑÔð$ð $ð $ð $ð $ñ $ô $ñ Ôð$ð €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð €�$ÐÑÔð8ð 8ð 8ð 8ð 8ñ 8ô 8ñ Ôð8ð €�$ÐÑÔð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ Ôð
ð@ €�$ÐÑÔðVð Vð Vð Vð Vñ Vô Vñ ÔðVð €�$ÐÑÔðUð Uð Uð Uð Uñ Uô Uñ ÔðUð"dð dð dð dðð ð ð ð(ð ð ð ð bð bð bð bð LQð  rvð  ^bð ð ð ð ð ð ð( Y^ð  Cð  koð ð ð ð ð ð ð.%ð .%ð .%ð .%ð .%ñ .%ô .%ð .%ðb6ð 6ð 6ð 6ð 6�R”]ñ 6ô 6ð 6ðr €�$ÐÑÔðð ð ð ð ñ ô ñ Ôððg)ð g)ð g)ð g)ð g)ñ g)ô g)ð g)ðTG-ð G-ð G-ð G-ð G-ñ G-ô G-ð G-ðT moð  KMð  oqð  jnð  X\ð  GKð  klð  MPð  ^`ð  GKð  bgð ð ð ð ð ð ð. OSð  uwð  ]_ð  moð  JKð  CGð  @Dð  koð  FKð ð ð ð ð ð ð0 `dð  ]að  HLð  chð ð ð ð ð ð ð #ð #ð #ð #ðð ð ð ðð ð ð ð( +/Ø15Ø04Ø#Ø ØØØ)-ðð ð ð ð ð ð0>ð >ð >ð >ð7ð 7ð 7ð 7ð Ôðð ð ñ Ôðð Ôðð ð ñ Ôðð 37ð ð ð ð ð ð ð ð r!   