§
    ÎÐj   ã                  ó  — d Z ddlmZ ddlZddl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  ed¬	¦  «         G d
„ d¦  «        ¦   «         Z ed¬	¦  «         G d„ d¦  «        ¦   «         Z G d„ d¦  «        Z G d„ d¦  «        ZdS )zIBrowser-independent state and generation execution shared by CLI and web.é    )ÚannotationsN)Ú	dataclassÚfield)ÚAnyÚCallable)Úgallery_state_defaults)ÚAsyncStreamÚasync_run_inT)Úslotsc                  óJ   — e Zd ZU  ee¬¦  «        Zded<   dd„Zdd
„Zdd„Z	dS )ÚRuntimeCallbacks©Údefault_factoryúdict[str, Any]ÚhandlersÚnameÚstrÚreturnútuple[Callable[..., Any], ...]c                ó  — | j                              t          |pd¦  «                             ¦   «         d¦  «        }t	          |¦  «        r|fS t          |t          t          f¦  «        rt          d„ |D ¦   «         ¦  «        S dS )NÚ © c              3  ó8   K  — | ]}t          |¦  «        ¯|V — Œd S ©N)Úcallable)Ú.0Úhandlers     ú<C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\runtime.pyú	<genexpr>z2RuntimeCallbacks._iter_handlers.<locals>.<genexpr>   s/   è è € ÐPÐP W½hÀwÑ>OÔ>OÐP˜ÐPÐPÐPÐPÐPÐPó    )r   Úgetr   Ústripr   Ú
isinstanceÚlistÚtuple)Úselfr   Ú
registereds      r   Ú_iter_handlerszRuntimeCallbacks._iter_handlers   s€   € Ø”]×&Ò&¥s¨4¨:°2¡¤×'<Ò'<Ñ'>Ô'>ÀÑCÔCˆ
Ý�JÑÔð 	!Ø�=Ð Ý�j¥4­ -Ñ0Ô0ð 	QÝÐPÐP°
ÐPÑPÔPÑPÔPÐPØˆrr    ú	list[Any]c                óJ   ‡‡— ˆˆfd„|                       |¦  «        D ¦   «         S )Nc                ó    •— g | ]
} |‰i ‰¤Ž‘ŒS r   r   )r   r   ÚargsÚkwargss     €€r   ú
<listcomp>z)RuntimeCallbacks.emit.<locals>.<listcomp>   s(   ø€ ÐRÐRÐR¨W��˜Ð( Ð(Ð(ÐRÐRÐRr    ©r(   )r&   r   r,   r-   s     ``r   ÚemitzRuntimeCallbacks.emit   s/   øø€ ØRÐRÐRÐRÐR¸×8KÒ8KÈDÑ8QÔ8QÐRÑRÔRÐRr    r   c                óH   — |                       |¦  «        D ]} ||i |¤Žc S d S r   r/   )r&   r   r,   r-   r   s        r   Ú
emit_firstzRuntimeCallbacks.emit_first   s?   € Ø×*Ò*¨4Ñ0Ô0ð 	,ð 	,ˆGØ�7˜DÐ+ FÐ+Ð+Ð+Ð+Ð+Øˆtr    N)r   r   r   r   )r   r   r   r)   )r   r   r   r   )
Ú__name__Ú
__module__Ú__qualname__r   Údictr   Ú__annotations__r(   r0   r2   r   r    r   r   r      st   € € € € € € à$˜u°TÐ:Ñ:Ô:€HÐ:Ð:Ð:Ñ:ðð ð ð ðSð Sð Sð Sðð ð ð ð ð r    r   c                  ó‚   — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<    ee¬¦  «        Zded<   dS )ÚRuntimeDepsr   Ú
controllerzCallable[[], dict[str, Any]]Úget_server_configz*Callable[[dict[str, Any]], dict[str, Any]]Úget_gen_infozICallable[[dict[str, Any], str, bool, bool, bool], tuple[Any, bool, bool]]Úget_settings_from_filez)Callable[[Any, dict[str, Any], Any], Any]Úload_queue_actionzMCallable[[dict[str, Any], dict[str, Any]], tuple[dict[str, Any] | None, str]]Úvalidate_taskzCallable[..., Any]Úgenerate_mediar   Údefault_model_typer   r   Ú	callbacksN)r3   r4   r5   r7   r   r   rB   r   r    r   r9   r9   #   sŽ   € € € € € € à€O€O�OØ3Ð3Ð3Ñ3Ø<Ð<Ð<Ñ<ØeÐeÐeÑeØ@Ð@Ð@Ñ@Ø`Ð`Ð`Ñ`Ø&Ð&Ð&Ñ&ØÐÐÑØ"' %Ð8HÐ"IÑ"IÔ"I€IÐIÐIÐIÑIÐIÐIr    r9   c                  ó   — e Zd ZdZdS )Ú	_CliEventé   N)r3   r4   r5   Útargetr   r    r   rD   rD   0   s   € € € € € Ø€F€F€Fr    rD   c                  ó6   — e Zd Zd„ Zdd„Zdd
„Zdd„Zddd„ZdS )ÚGenerationRuntimec                ó   — dS )zCOptional publication hook; execution never depends on a subscriber.Nr   )r&   ÚcmdÚdatas      r   Ú_generation_eventz#GenerationRuntime._generation_event5   s   € € € r    r   r   c                ój  — | j                              ¦   «         }d| j         j        g i ddœt          d¦  «        ¥d ddddddddœ¥g t	          |                     d	i ¦  «        pi ¦  «        t	          |                     d
i ¦  «        pi ¦  «        t	          |                     di ¦  «        pi ¦  «        dœS )NÚaddF)ÚqueueÚqueue_errorsÚin_progresséÿÿÿÿr   rE   r   )Úselected_video_timeÚ	prompt_noÚprompts_maxÚ	repeat_noÚtotal_generationÚ	window_noÚtotal_windowsÚprogress_statusÚlast_model_per_familyÚlast_model_per_typeÚlast_resolution_per_group)Úactive_formÚ
model_typeÚgenÚlorasr[   r\   r]   )Ú_depsr;   rA   r   r6   r!   )r&   Úserver_configs     r   Ú_build_statezGenerationRuntime._build_state8   së   € Øœ
×4Ò4Ñ6Ô6ˆà Øœ*Ô7àØ "Ø$ðð õ )¨Ñ,Ô,ð	ð
 (,ØØ ØØ$%ØØ!"Ø#%ðð ð ð Ý%)¨-×*;Ò*;Ð<SÐUWÑ*XÔ*XÐ*^Ð\^Ñ%_Ô%_Ý#'¨×(9Ò(9Ð:OÐQSÑ(TÔ(TÐ(ZÐXZÑ#[Ô#[Ý)-¨m×.?Ò.?Ð@[Ð]_Ñ.`Ô.`Ð.fÐdfÑ)gÔ)gð)
ð 
ð 	
r    rO   úlist[dict[str, Any]]Ú
error_textr   ÚNonec                óˆ  — | j         d                              di ¦  «        }t          |pg ¦  «        D ]Ž}t          |t          ¦  «        r|                     di ¦  «        ni }t          |                     dd¦  «        pd¦  «                             ¦   «         }t          |¦  «        dk    rt          |¦  «        ddf||<   Œ�d S )Nr`   rP   ÚparamsÚ	client_idr   r   F)	Ú_stateÚ
setdefaultr$   r#   r6   r!   r   r"   Úlen)r&   rO   rf   rP   Útaskri   rj   s          r   Ú_record_queue_errorz%GenerationRuntime._record_queue_errorQ   sÃ   € Ø”{ 5Ô)×4Ò4°^ÀRÑHÔHˆÝ˜˜ "Ñ%Ô%ð 	Jð 	JˆDÝ/9¸$ÅÑ/EÔ/EÐM�T—X’X˜h¨Ñ+Ô+Ð+È2ˆFÝ˜FŸJšJ {°BÑ7Ô7Ð=¸2Ñ>Ô>×DÒDÑFÔFˆIÝ�9‰~Œ~ Ò!Ð!Ý+.¨z©?¬?¸EÀ5Ð*I�˜YÑ'øð		Jð 	Jr    útuple[bool, str]c                óN  ‡ ‡‡‡— t          |pg ¦  «        D �]Š‰ j                             ‰‰ j        ¦  «        \  }}|€d|pdfc S t	          |pi ¦  «        Št          ¦   «         Šd}ˆˆ ˆˆfd„}‰                      dd¦  «         t          d|¦  «         d}d}	 ‰j         	                    ¦   «         \  }}	‰                      ||	¦  «         |d
k    r|r‰  
                    ¦   «          �n |dk    r,t          |	pd¦  «        }‰  
                    d|› �¦  «         d}Œƒ|dk    rÿt          |	t           ¦  «        rêt          |	¦  «        dk    r×t          |	d         t          ¦  «        r)|	d         \  }
}t          |	¦  «        dk    r|	d         nd}n5d\  }
}t          |	¦  «        dk    r|	d         nt          |	d         ¦  «        }d|
› d|› d|› �}t          |                     t#          |t          |¦  «        ¦  «        ¦  «        dd	¬¦  «         t          |¦  «        }d	}�Œˆ|dk    r�t          |	pd¦  «        }d|v r0|r‰  
                    ¦   «          d}d}‰  
                    |¦  «         nVd|› �}t          |                     t#          |t          |¦  «        ¦  «        ¦  «        dd	¬¦  «         t          |¦  «        }d	}�Œ+|dk    r>|r‰  
                    ¦   «          d}d}‰  
                    t          |	pd¦  «        ¦  «         �Œpt          |¦  «        dk    rd|fc S �ŒdS )NFzTask failed validation.r   c                 ó²  •‡— 	 t          t          j        ‰j        j        ¦  «        j                             ¦   «         ¦  «        Šˆfd„‰                     ¦   «         D ¦   «         } |                      dd¦  «         t          ‰t          ¦  «        r‰                     di ¦  «        ni } ‰j        j        ‰‰j        j        fd|i| ¤Ž nR# t          $ rE}t          j        ¦   «          ‰j                             dt#          |¦  «        ¦  «         Y d }~nd }~ww xY w‰j                             dd ¦  «         d S # ‰j                             dd ¦  «         w xY w)Nc                ó$   •— i | ]\  }}|‰v ¯	||“ŒS r   r   )r   ÚkeyÚvalueÚexpected_argss      €r   ú
<dictcomp>zGGenerationRuntime._run_loaded_queue.<locals>.worker.<locals>.<dictcomp>e   s+   ø€ Ð&kÐ&kÐ&k±j°c¸5ÐVYÐ]jÐVjÐVj s¨EÐVjÐVjÐVjr    rj   r   Úplugin_dataÚerrorÚexit)ÚsetÚinspectÚ	signaturerb   r@   Ú
parametersÚkeysÚitemsrl   r#   r6   r!   Úoutput_queueÚpushÚ	ExceptionÚ	tracebackÚ	print_excr   )Úfiltered_paramsrx   Úexcrv   ri   r&   rn   Útask_streams      @€€€€r   Úworkerz3GenerationRuntime._run_loaded_queue.<locals>.workerb   se  øø€ ð
@Ý$'­Ô(9¸$¼*Ô:SÑ(TÔ(TÔ(_×(dÒ(dÑ(fÔ(fÑ$gÔ$g�MØ&kÐ&kÐ&kÐ&kÀFÇLÂLÁNÄNÐ&kÑ&kÔ&k�OØ#×.Ò.¨{¸BÑ?Ô?Ð?ÝAKÈDÕRVÑAWÔAWÐ"_ $§(¢(¨=¸"Ñ"=Ô"=Ð"=Ð]_�KØ-�D”JÔ-¨d°KÔ4LÔ4QÐ~Ð~Ð_jÐ~Ðn}Ð~Ð~Ð~Ð~øÝ ð Eð Eð EÝÔ'Ñ)Ô)Ð)ØÔ,×1Ò1°'½3¸s¹8¼8ÑDÔDÐDÐDÐDÐDÐDÐDøøøøðEøøøð  Ô,×1Ò1°&¸$Ñ?Ô?Ð?Ð?Ð?ø�KÔ,×1Ò1°&¸$Ñ?Ô?Ð?Ð?øøøs0   „CC
 Ã	D9 Ã

DÃ;DÄD9 ÄDÄD9 Ä9EÚstatusu   Preparing generationâ€¦Ú
generationr   Trz   ry   zGeneration failed.z[ERROR] Úprogressé   rE   )r   rE   z[ú/z] )ÚendÚflushÚLoadingúÚinfo)Tr   )r$   rb   r?   rk   r6   r	   rL   r
   r�   ÚnextÚ_printr   r#   rm   r%   ÚprintÚljustÚmax)r&   rO   Úvalidated_paramsÚvalidation_errorÚ
task_errorr‰   Úlast_msg_lenÚin_status_linerJ   rK   ÚstepÚtotalÚmsgÚstatus_lineÚtextri   rn   rˆ   s   `              @@@r   Ú_run_loaded_queuez#GenerationRuntime._run_loaded_queueY   s¢  øøøø€ Ý˜˜ "Ñ%Ô%ð F	)ñ F	)ˆDØ15´×1IÒ1IÈ$ÐPTÔP[Ñ1\Ô1\Ñ.ÐÐ.ØÐ'ØÐ.ÐKÐ2KÐKÐKÐKÐKÝÐ*Ð0¨bÑ1Ô1ˆFÝ%™-œ-ˆKØˆJð@ð @ð @ð @ð @ð @ð @ð @ð ×"Ò" 8Ð-FÑGÔGÐGÝ˜ vÑ.Ô.Ð.ØˆLØ"ˆNð+1Ø'Ô4×9Ò9Ñ;Ô;‘	��TØ×&Ò& s¨DÑ1Ô1Ð1Ø˜&’=�=Ø%ð &ØŸš™œ˜ÙØ˜'’>�>Ý!$ TÐ%AÐ-AÑ!BÔ!B�JØ—K’KÐ 7¨:Ð 7Ð 7Ñ8Ô8Ð8Ø%*�NØØ˜*Ò$Ð$­°D½$Ñ)?Ô)?Ð$ÅCÈÁIÄIÐQRÂNÀNÝ! $ q¤'­5Ñ1Ô1ð IØ&*¨1¤g™˜˜eÝ),¨T©¬°Qª¨˜d 1œg˜g¸B˜˜à&*™˜˜eÝ),¨T©¬°Qª¨˜d 1œg˜g½CÀÀQÄ¹L¼L˜Ø"=¨Ð"=Ð"=¨uÐ"=Ð"=¸Ð"=Ð"=�KÝ˜+×+Ò+­C°½cÀ+Ñ>NÔ>NÑ,OÔ,OÑPÔPÐVXÐ`dÐeÑeÔeÐeÝ#& {Ñ#3Ô#3�LØ%)�NÙØ˜(’?�?Ý˜t˜z r™?œ?�DØ  DÐ(Ð(Ø)ð -Ø ŸKšK™MœM˜MØ-2˜NØ+,˜LØŸš DÑ)Ô)Ð)Ð)à&1¨4 k k˜Ý˜k×/Ò/µ°LÅ#ÀkÑBRÔBRÑ0SÔ0SÑTÔTÐZ\ÐdhÐiÑiÔiÐiÝ'*¨;Ñ'7Ô'7˜Ø)-˜ÙØ˜&’=�=Ø%ð )ØŸš™œ˜Ø).˜Ø'(˜Ø—K’K¥ D J¨B¡¤Ñ0Ô0Ð0ñW+1õX �:‰Œ Ò"Ð"Ø˜jÐ(Ð(Ð(Ð(ñ #àˆxr    NÚpayloadr   c                ó  — | j                              ¦   «         }| j                             d | j        t          ¦   «         ¦  «         t          | j        d                              dg ¦  «        pg ¦  «        }t          |¦  «        dk    rd S d}t          |t          ¦  «        r7t          |                     dd¦  «        pd¦  «                             ¦   «         }|pPt          |d                              di ¦  «                             dd¦  «        pd¦  «                             ¦   «         | _        	 |                      |¦  «        \  }}|s)t          |¦  «        dk    r|                      ||¦  «         d| _        | j        d         d                              ¦   «          | j                              |¦  «         d S # d| _        | j        d         d                              ¦   «          | j                              |¦  «         w xY w)Nr`   rO   r   r   rj   ri   )Ú_galleryÚcountsrb   r>   rk   rD   r$   r!   rm   r#   r6   r   r"   Ú_active_generation_client_idr£   ro   ÚclearÚsync_latest_generated)r&   r¤   Úbefore_countsrO   Úrequested_client_idÚsuccessrf   s          r   Ú_process_inline_queuez'GenerationRuntime._process_inline_queue£   sê  € Øœ×,Ò,Ñ.Ô.ˆØŒ
×$Ò$ T¨4¬;½	¹¼ÑDÔDÐDÝ�T”[ Ô'×+Ò+¨G°RÑ8Ô8Ð>¸BÑ?Ô?ˆÝˆu‰:Œ:˜Š?ˆ?ØˆFØ ÐÝ�g�tÑ$Ô$ð 	RÝ"% g§k¢k°+¸rÑ&BÔ&BÐ&HÀbÑ"IÔ"I×"OÒ"OÑ"QÔ"QÐØ,?ð  -FÅ3ÀuÈQÄxÇ|Â|ÐT\Ð^`ÑGaÔGa×GeÒGeÐfqÐsuÑGvÔGvÐG|Ðz|ÑC}ÔC}÷  DDò  DDñ  DFô  DFˆÔ)ð	?Ø"&×"8Ò"8¸Ñ"?Ô"?ÑˆG�ZØð <�s :™œ°Ò2Ð2Ø×(Ò(¨°
Ñ;Ô;Ð;à02ˆDÔ-ØŒK˜Ô˜wÔ'×-Ò-Ñ/Ô/Ð/ØŒM×/Ò/°Ñ>Ô>Ð>Ð>Ð>øð 13ˆDÔ-ØŒK˜Ô˜wÔ'×-Ò-Ñ/Ô/Ð/ØŒM×/Ò/°Ñ>Ô>Ð>Ð>øøøs   Ä3AF> Æ>AH)r   r   )rO   re   rf   r   r   rg   )rO   re   r   rp   r   )r¤   r   r   rg   )r3   r4   r5   rL   rd   ro   r£   r®   r   r    r   rH   rH   4   s„   € € € € € ðRð Rð Rð
ð 
ð 
ð 
ð2Jð Jð Jð JðHð Hð Hð HðT?ð ?ð ?ð ?ð ?ð ?ð ?r    rH   )Ú__doc__Ú
__future__r   r|   r„   Údataclassesr   r   Útypingr   r   Úshared.utils.gallery_sourcesr   Úshared.utils.thread_utilsr	   r
   r   r9   rD   rH   r   r    r   ú<module>rµ      s|  ðà OÐ OØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ð €�ÐÑÔðð ð ð ð ñ ô ñ Ôðð( €�ÐÑÔð	Jð 	Jð 	Jð 	Jð 	Jñ 	Jô 	Jñ Ôð	Jðð ð ð ð ñ ô ð ð@?ð @?ð @?ð @?ð @?ñ @?ô @?ð @?ð @?ð @?r    