§
     ’ÞjZ9  ã                  óÚ  — d dl mZ d dlZd dlZd dlmZ d dlmZ d dlZ	d dl
Z
d dlmZ d dlmZ d dlmZ dZd	Zd
ZdZd
ZdZdZeez   ZdZdZdNd„ZdOd„ZdPd„ZdQd„ZdRd „ZdRd!„ZdSd)„Z  ed*¬+¦  «         G d,„ d-¦  «        ¦   «         Z!dTd.„Z"d/„ Z#dUd1„Z$edVdWd7„¦   «         Z% G d8„ d9¦  «        Z& e&¦   «         Z' e
j(        ¦   «         d dd ddd:dddddd dd;œdXdI„¦   «         Z)dYdZdK„Z*dZdL„Z+g dM¢Z,dS )[é    )ÚannotationsN)Úcontextmanager)Ú	dataclass)Útqdm)Úoffload_registry)Úslice_audio_windowzH3 Face RefinerÚminimax_h3_ref2va_prunedij  é   é   é   i }  Úgguf_q4_k_mc                óB   — t          | ¦  «        r | |||¦  «         d S d S ©N)Úcallable)Úprogress_callbackÚphaseÚcurrentÚtotals       úNC:\Users\johnn\OneDrive\Documents\AI\postprocessing\h3_face_refiner\runtime.pyÚ_reportr      s8   € ÝÐ!Ñ"Ô"ð 1ØÐ˜% ¨%Ñ0Ô0Ð0Ð0Ð0ð1ð 1ó    Úframe_countÚintÚwindow_sizeÚwindow_overlapÚreturnútuple[int, ...]c                óN  — |t           k    s|t          z
  t          z  rt          dt           › �¦  «        ‚||k    rt          d¦  «        ‚| |k    rdS ||z
  }| |z
  |z   dz
  |z  }t	          d„ t          j        d| |z
  |¦  «                             ¦   «         D ¦   «         ¦  «        S )Nz?H3 Face Refiner window size must be 5 + 17n and no larger than zCH3 Face Refiner window overlap must be smaller than its window size)r   é   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   )r   )Ú.0Ústarts     r   ú	<genexpr>z window_starts.<locals>.<genexpr>*   s(   è è € ÐiÐi •�U‘”ÐiÐiÐiÐiÐiÐir   r   )ÚMAX_WINDOW_FRAMESÚFRAME_OFFSETÚTEMPORAL_STRIDEÚ
ValueErrorÚtupleÚnpÚlinspaceÚround)r   r   r   ÚstepÚwindow_counts        r   Úwindow_startsr.   !   s¿   € ØÕ&Ò&Ð&¨;½Ñ+EÍÑ*XÐ&ÝÐnÕ[lÐnÐnÑoÔoÐoØ˜Ò$Ð$ÝÐ^Ñ_Ô_Ð_Ø�kÒ!Ð!ØˆtØ˜Ñ'€DØ .Ñ0°4Ñ7¸!Ñ;ÀÑD€LÝÐiÐi­¬°Q¸ÀkÑ8QÐS_Ñ)`Ô)`×)fÒ)fÑ)hÔ)hÐiÑiÔiÑiÔiÐir   Úvideoútorch.TensorÚ	strengthsú!tuple[torch.Tensor, torch.Tensor]c           	     ó¬  — t          | j        d         ¦  «        }t          t          |t          z
  t
          z   dz
  t
          z  t
          z  t          z   ¦  «        }||k    r| |fS t          j        | | d d …dd …f                              d||z
  dd¦  «        fd¬¦  «        t          j        ||dd …                              ||z
  ¦  «        f¦  «        fS )Nr   éÿÿÿÿ)Údim)	r   ÚshapeÚmaxÚMIN_WINDOW_FRAMESr%   r&   ÚtorchÚcatÚexpand)r/   r1   r   Úpadded_counts       r   Ú
pad_windowr=   -   sí   € Ý�e”k !”nÑ%Ô%€KÝÕ(¨K½,Ñ,FÍÑ,XÐ[\Ñ,\ÕapÑ+põ  uDñ  +Dõ  GSñ  +Sñ  Tô  T€LØ�{Ò"Ð"Ø�iÐÐÝŒI�u˜e A A A r s s Fœm×2Ò2°2°|ÀkÑ7QÐSUÐWYÑZÔZÐ[ÐabÐcÑcÔcÝŒI�y )¨B¨C¨C¤.×"7Ò"7¸À{Ñ8RÑ"SÔ"SÐTÑUÔUðWð Wr   Úpreviousr   c                ó¼  — t          j        dt           j        | j        d         | j        t           j        ¬¦  «                             ¦   «                              d¦  «                             d¦  «         	                    dddd¦  «        }|  
                    ¦   «                              | 
                    ¦   «         |¦  «                             | j        ¦  «        S )Ng        r   )ÚdeviceÚdtypeg      à¿g      à?r4   )r9   r*   Úpir6   r@   Úfloat32Úcos_Úmul_Úadd_ÚviewÚfloatÚlerp_ÚtorA   )r>   r   Úweightss      r   Úcrossfade_framesrL   6   sÑ   € ÝŒn˜S¥%¤(¨H¬N¸1Ô,=ÀhÄoÕ]bÔ]jÐkÑkÔk×pÒpÑrÔr×wÒwÐx|Ñ}Ô}÷  Cò  Cð  DGñ  Hô  H÷  Mò  Mð  NOð  QSð  UVð  XYñ  Zô  Z€GØ�>Š>ÑÔ×!Ò! '§-¢-¡/¤/°7Ñ;Ô;×>Ò>¸x¼~ÑNÔNÐNr   c                óN  — t          j        | j        t           j        d¬¦  «        }t	          | j        d         ¦  «        D ]c}|d d …|f                              | d d …|f                              ¦   «                              d¦  «                             d¦  «        ¦  «         Œd|S )NÚcpu©rA   r@   r   ç     à_@ç      ð?)	r9   Úemptyr6   rC   ÚrangeÚcopy_rH   Údiv_Úsub_)r/   ÚoutputÚindexs      r   Ú_uint8_to_signedrY   ;   s˜   € ÝŒ[˜œ­E¬MÀ%ÐHÑHÔH€FÝ�u”{ 1”~Ñ&Ô&ð Nð NˆØˆqˆqˆq�%ˆxÔ×Ò˜u Q Q Q¨ Xœ×4Ò4Ñ6Ô6×;Ò;¸EÑBÔB×GÒGÈÑLÔLÑMÔMÐMÐMØ€Mr   c                óÞ  — t          j        | j        t           j        d¬¦  «        }t	          | j        d         ¦  «        D ]«}| d d …|f                              t           j        dd¬¦  «                             dd¦  «                             d¦  «         	                    d¦  «         
                    ¦   «                              ¦   «         }|d d …|f                              |¦  «         Œ¬|S )	NrN   rO   r   T)rA   r@   Úcopyg      ð¿rQ   rP   )r9   rR   r6   Úuint8rS   rJ   rC   Úclamp_rF   rE   Úround_ÚbyterT   )r/   rW   rX   Úframes       r   Ú_signed_to_uint8ra   B   sä   € ÝŒ[˜œ­E¬KÀÐFÑFÔF€FÝ�u”{ 1”~Ñ&Ô&ð &ð &ˆØ�a�a�a˜�h”×"Ò"­¬¸uÈ4Ð"ÑPÔP×WÒWÐX\Ð^aÑbÔb×gÒgÐhkÑlÔl×qÒqÐrwÑxÔx×Òñ  Bô  B÷  Gò  Gñ  Iô  IˆØˆqˆqˆq�%ˆxÔ×Ò˜uÑ%Ô%Ð%Ð%Ø€Mr   Úaudio_sample_rateÚsource_audio_pathú
str | Noner"   r<   ÚfpsrH   c                ó„  — |rt          ||||¦  «        \  }}�n$t          |pt          ¦  «        }| €Dt          j        t          t          ||z  |z  ¦  «        ¦  «        dft          j        ¬¦  «        |fS t          j        | ¦  «        r8|  	                    ¦   «          
                    ¦   «                              ¦   «         nt          j        | ¦  «        }|j        dk    r|d d …d f         }t          t          ||z  |z  ¦  «        ¦  «        }	|	t          t          ||z  |z  ¦  «        ¦  «        z   }
||	|
…         }t          t          ||z  |z  ¦  «        ¦  «        }|j        d         |k     r't          j        |d||j        d         z
  fdf¦  «        }t          j        |d |…         t          j        ¬¦  «        |fS )Nr   )rA   r   )r   r   )r   r   ÚDEFAULT_AUDIO_SAMPLE_RATEr)   Úzerosr+   rC   r9   Ú	is_tensorÚdetachrN   ÚnumpyÚasarrayÚndimr6   Úpad)Úaudio_waveformrb   rc   r"   r   r<   re   ÚaudioÚsample_rateÚstart_sampleÚstop_sampleÚtarget_sampless               r   Úslice_audio_for_windowru   J   s±  € Øð 0Ý/Ð0AÀ5È+ÐWZÑ[Ô[Ñˆˆ{‰{åÐ+ÐHÕ/HÑIÔIˆØÐ!Ý”8�S¥ |°kÑ'AÀCÑ'GÑ!HÔ!HÑIÔIÈ1ÐMÕUWÔU_Ð`Ñ`Ô`ÐbmÐmÐmÝ9>¼ÈÑ9XÔ9XÐx�×%Ò%Ñ'Ô'×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5Ð5Õ^`Ô^hÐiwÑ^xÔ^xˆØŒ:˜Š?ˆ?Ø˜!˜!˜!˜T˜'”NˆEÝ�5 ¨Ñ!4°sÑ!:Ñ;Ô;Ñ<Ô<ˆØ"¥S­¨{¸[Ñ/HÈ3Ñ/NÑ)OÔ)OÑ%PÔ%PÑPˆØ�l ;Ð.Ô/ˆÝ�˜|¨kÑ9¸CÑ?Ñ@Ô@ÑAÔA€NØ„{�1„~˜Ò&Ð&Ý”�u  >°E´KÀ´NÑ#BÐCÀVÐLÑMÔMˆÝŒ:�e˜O˜^˜OÔ,µB´JÐ?Ñ?Ô?ÀÐLÐLr   T)Úfrozenc                  ó8   — e Zd ZU ded<   ded<   ded<   ded<   dS )	ÚLoraSnapshotztuple[str, ...]ÚpathsÚactiveztuple[object, ...]Úmultipliersr   r,   N)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r   r   rx   rx   ]   s=   € € € € € € àÐÐÑØÐÐÑØ#Ð#Ð#Ñ#Ø€I€I�I€I€Ir   rx   c                ó`  ‡— t          | dd ¦  «        }t          t          | dd ¦  «        pd¦  «        }t          | dd ¦  «        pi Št          |r!t          |                     ¦   «         ¦  «        nd|t          ˆfd„|D ¦   «         ¦  «        t	          t          | dd¦  «        ¦  «        ¦  «        S )NÚ_loras_adaptersÚ_loras_active_adaptersr€   Ú_loras_scalingc              3  óL   •K  — | ]}t          j        ‰|         ¦  «        V — Œd S r   )r[   Údeepcopy)r!   ÚadapterÚscalings     €r   r#   z"_snapshot_loras.<locals>.<genexpr>j   s2   øè è € ÐTÐTÀ'�dœm¨G°GÔ,<Ñ=Ô=ÐTÐTÐTÐTÐTÐTr   Ú_lora_step_nor   )Úgetattrr(   rx   Úvaluesr   )ÚtransformerÚadaptersrz   rˆ   s      @r   Ú_snapshot_lorasrŽ   e   sÏ   ø€ Ý�{Ð$5°tÑ<Ô<€HÝ•7˜;Ð(@À$ÑGÔGÐMÈ2ÑNÔN€FÝ�kÐ#3°TÑ:Ô:Ð@¸b€GÝ°HÐD�˜hŸošoÑ/Ô/Ñ0Ô0Ð0À"ÀfÝÐTÐTÐTÐTÈVÐTÑTÔTÑTÔTÕVYÕZaÐbmÐo~ð  ABñ  [Cô  [Cñ  WDô  WDñEô Eð Er   c                óv  — ddl m} dd l}|                     | t	          |¦  «        t	          |¦  «        d|                     | |¦  «        d|j                             dd¦  «        t          | dd ¦  «        ¬¦  «         | j	        r4t          d	d
                     d„ | j	        D ¦   «         ¦  «        z   ¦  «        ‚d S )Nr   ©ÚoffloadTFÚmax_reserved_lorasr4   Úsplit_linear_modules_map)Úactivate_all_lorasÚpreprocess_sdÚ
pinnedLoraÚmaxReservedLorasr“   z%Unable to load H3 Face Refiner LoRA: z, c              3  ó    K  — | ]	\  }}|V — Œ
d S r   r€   )r!   Ú_Úmessages      r   r#   z_load_loras.<locals>.<genexpr>v   sI   è è € ð  ODð  ODÑ[eÐ[\Ð^eÈwð  ODð  ODð  ODð  ODð  ODð  ODr   )Úmmgpr‘   ÚwgpÚload_loras_into_modelÚlistÚget_loras_preprocessorÚserver_configÚgetrŠ   Ú_loras_errorsÚRuntimeErrorÚjoin)rŒ   ry   r{   Ú
model_typer‘   rœ   s         r   Ú_load_lorasr¦   m   s  € ØÐÐÐÐÐØ€J€J€Jà×!Ò! +­t°E©{¬{½DÀÑ<MÔ<MÐbfØ03×0JÒ0JÈ;ÐXbÑ0cÔ0cÐpuØ36Ô3D×3HÒ3HÐI]Ð_aÑ3bÔ3bÝ;BÀ;ÐPjÐlpÑ;qÔ;qð "ñ sô sð sð Ô ð EÝÐBÀTÇYÂYð  ODð  ODÐitô  jCð  ODñ  ODô  ODñ  FDô  FDñ  Dñ  Eô  Eð  	EðEð Er   Úsnapshotc                óŠ  — ddl m} |j        s2|                     | ¦  «         |                     | |j        ¦  «         d S t          | |j        dgt          |j        ¦  «        z  |¦  «         |                     | t          |j
        ¦  «        t          |j        ¦  «        ¦  «         |                     | |j        ¦  «         d S )Nr   r�   rQ   )r›   r‘   ry   Úunload_loras_from_modelÚset_step_no_for_lorar,   r¦   ÚlenÚactivate_lorasrž   rz   r{   )rŒ   r§   r¥   r‘   s       r   Ú_restore_lorasr­   y   sÁ   € ØÐÐÐÐÐàŒ>ð Ø×'Ò'¨Ñ4Ô4Ð4Ø×$Ò$ [°(´-Ñ@Ô@Ð@ØˆÝ�˜Xœ^¨c¨UµS¸¼Ñ5HÔ5HÑ-HÈ*ÑUÔUÐUØ×Ò˜;­¨X¬_Ñ(=Ô(=½tÀHÔDXÑ?YÔ?YÑZÔZÐZØ× Ò  ¨h¬mÑ<Ô<Ð<Ð<Ð<r   ç      è?Ú
turbo_pathr¥   ÚstrÚ
multiplierc              #  ó8  K  — |€d V — d S |                       ¦   «         \  }}t          |¦  «        }|j        }	 t          ||gt	          |¦  «        g|¦  «         d |_        d V — ||_        t          |||¦  «         d S # ||_        t          |||¦  «         w xY wr   )Úget_trans_lorarŽ   Úcacher¦   rH   r­   )Úpipeliner¯   r¥   r±   rŒ   r™   r§   r´   s           r   Ú
turbo_lorar¶   …   s¾   è è € àÐØˆˆˆØˆØ×,Ò,Ñ.Ô.�N€K�Ý˜{Ñ+Ô+€HØÔ€Eð:Ý�K * µ°jÑ0AÔ0AÐ/BÀJÑOÔOÐOØ ˆÔØˆˆˆà!ˆÔÝ�{ H¨jÑ9Ô9Ð9Ð9Ð9øð "ˆÔÝ�{ H¨jÑ9Ô9Ð9Ð9øøøs   ¹,A? Á?Bc                  ó.   — e Zd Zd„ Zdd	d„Zd	d„Zd	d„ZdS )
ÚH3FaceRefinerRuntimec                ó>   — d | _         d | _        d | _        d | _        d S r   )ÚmodelÚ
offloadobjÚshared_offloadobjÚprofile©Úselfs    r   Ú__init__zH3FaceRefinerRuntime.__init__—   s#   € ØˆŒ
ØˆŒØ!%ˆÔØˆŒˆˆr   Nr   ÚNonec           	     óä  — dd l }d}|€d n|j        }| j        �| j        |k    r| j        |u rd S |                      ¦   «          t          j                             ¦   «         st          d¦  «        ‚	 ddi}|�!| 
                    |j        |j        ¬¦  «         t          j        d|› d�¦  «          |j        t          f|dt          d	dd
œ|¤Ž\  | _        | _        || _        |�=| j                             |j        | j        ¦  «         t#          d|j        › d�¦  «         || _        t'          j        t*          | j        | j        ¦  «         d S # t,          $ r |                      ¦   «          ‚ w xY w)Nr   zH3 Face Refiner requires CUDAÚdisable_pinningT)Úshared_h3_pipelineÚshared_h3_offloadobjzL[H3FaceRefine] Loading private H3 runtime with postprocessor memory profile z0; GGUF Q4_K_M text encoder; RAM pinning disabledr/   F)Úoverride_profileÚoutput_typeÚ	config_idÚtrack_as_mainÚ	extensionze[H3FaceRefine] Reusing text encoder, video VAE, audio VAE, and latent upscaler from loaded H3 model 'z&'; loading only pruned Ref2VA denoiser)rœ   r»   rº   r½   r¼   Úreleaser9   ÚcudaÚis_availabler£   Úupdater   ÚwriteÚload_modelsÚDEFAULT_MODEL_TYPEÚTEXT_ENCODER_CONFIGÚset_offload_handoffÚprintr¥   r   Úregister_offloadobjÚRUNTIME_NAMEÚ	Exception)r¿   Úshared_contextrœ   r½   r¼   Úmodel_kwargss         r   ÚloadzH3FaceRefinerRuntime.load�   sñ  € Øˆ
ˆ
ˆ
àˆØ$2Ð$:˜D˜DÀÔ@YÐØŒ:Ð! d¤l°gÒ&=Ð&=À$ÔBXÐ\mÐBmÐBmØˆFØ�Š‰ŒˆÝŒz×&Ò&Ñ(Ô(ð 	@ÝÐ>Ñ?Ô?Ð?ð	Ø-¨tÐ4ˆLØÐ)Ø×#Ò#°~Ô7KÐbpÔb{Ð#Ñ|Ô|Ð|ÝŒJð  `Ðfmð  `ð  `ð  `ñ  aô  að  aØ*9¨#¬/Õ:Lð  +QÐ_fÐt{õ  H[ð  kpð  |@ð  +Qð  +Qð  DPð  +Qð  +QÑ'ˆDŒJ˜œØ%6ˆDÔ"ØÐ)Ø”
×.Ò.¨~Ô/HÈ$Ì/ÑZÔZÐZÝð  @ð  Mô  Xð  @ð  @ð  @ñ  Aô  Að  AØ"ˆDŒLÝÔ0µ¸t¼ÐPTÔP\Ñ]Ô]Ð]Ð]Ð]øÝð 	ð 	ð 	Ø�LŠL‰NŒNˆNØð	øøøs   Á1CE Å E/c                ób  — | j         �| j                              ¦   «          | j        �Xt          j        t
          | j        ¦  «         | j         �| j                             ¦   «          | j                             ¦   «          d x| _        x| _        x| _         | _	        t          j        ¦   «          d S r   )r¼   Ú
unload_allr»   r   Úunregister_offloadobjrÖ   rº   Údetach_shared_componentsrË   r½   ÚgcÚcollectr¾   s    r   rË   zH3FaceRefinerRuntime.release¸   sš   € ØÔ!Ð-ØÔ"×-Ò-Ñ/Ô/Ð/ØŒ?Ð&ÝÔ2µ<ÀÄÑQÔQÐQØÔ%Ð1Ø”
×3Ò3Ñ5Ô5Ð5ØŒO×#Ò#Ñ%Ô%Ð%ØOSÐSˆŒ
ÐS�T”_ÐS tÔ'=ÀÄÝ
Œ
‰Œˆˆˆr   c                óŠ   — | j         �| j                              ¦   «          | j        �| j                             ¦   «          d S d S r   )r»   rÜ   r¼   r¾   s    r   rÜ   zH3FaceRefinerRuntime.unload_allÃ   sJ   € ØŒ?Ð&ØŒO×&Ò&Ñ(Ô(Ð(ØÔ!Ð-ØÔ"×-Ò-Ñ/Ô/Ð/Ð/Ð/ð .Ð-r   r   ©r   rÁ   )r|   r}   r~   rÀ   rÚ   rË   rÜ   r€   r   r   r¸   r¸   –   sd   € € € € € ðð ð ðð ð ð ð ð6	ð 	ð 	ð 	ð0ð 0ð 0ð 0ð 0ð 0r   r¸   g      Y@)Úframe_offsetro   rb   rc   Úreference_imagesÚimage_refs_relative_sizeÚvae_tile_sizeÚabort_callbackr   r   Úvideo_window_loaderÚwindow_index_offsetÚwindow_count_totalútorch.Tensor | NoneÚturbo_multiplierÚpromptÚdenoising_strengthÚsampling_stepsÚshiftÚsample_solverÚseedrã   rå   ré   rê   ú
int | Nonec               óÜ  ‡‡‡‡‡+‡,— |€t          | j        d         ¦  «        nt          |¦  «        }t          |||¦  «        }d }d}t          ‰|||¦  «        5  t	          t          |dd¬¦  «        d¬¦  «        D �]G\  }} t          ‰¦  «        r ‰¦   «         r d d d ¦  «         d S t          | |z   |¦  «        }!|€| d d …| |!…f         n || |!¦  «        }"|"j        t          j
        k    rt          |"¦  «        }"t          |"|| |!…         ¦  «        \  }"}#t          ||||| z   |!| z
  t          |"j        d         ¦  «        |¦  «        \  }$}%|€t          |¦  «        nt          |¦  «        }&|&dk    rdt          |¦  «        |z   › d|&› �nd	Š+ˆ+ˆfd
„}'dˆˆ+ˆˆˆfd„	Š,ˆ,fd„‰,_        t!          ‰d¦  «        rd‰_        	 ‰                     |"||#|‰|	|
t          |¦  «        t          |¦  «        z   | z   |||||$|%‰,|'¬¦  «        }(t!          ‰d¦  «        rd‰_        n# t!          ‰d¦  «        rd‰_        w xY wd x}"x}#}$|(€ d d d ¦  «         d S |(d d …d |!| z
  …f                              ¦   «         }(|€mt          j        |(j        d         |g|(j        dd …         ¢R t          j
        d¬¦  «        }|d d …d |!…f                              t-          |(¦  «        ¦  «         nÓt          || z
  t          |(j        d         ¦  «        ¦  «        })|)rit          |d d …| | |)z   …f         ¦  «        }*|d d …| | |)z   …f                              t-          t/          |*|(d d …d |)…f         ¦  «        ¦  «        ¦  «         |d d …| |)z   |!…f                              t-          |(d d …|)d …f         ¦  «        ¦  «         t1          ||!¦  «        }�ŒI	 d d d ¦  «         n# 1 swxY w Y   t3          ‰d¦  «         |S )Nr   r   zH3 face refinement windowsÚwindow)ÚdescÚunit)r"   zWindow ú/Ú c                ó:   •— t          ‰‰r‰› d| › �n| ¦  «         d S )Nú - )r   )r   Úlabelr   s    €€r   Ústatus_callbackz%refine_video.<locals>.status_callbackæ   s2   ø€ ÝÐ)À5Ð+S¨eÐ+?Ð+?¸Ð+?Ð+?Ð+?ÈeÑTÔTÐTÐTÐTr   r4   Fc                ó  •— t          ‰¦  «        r ‰¦   «         r	d‰_        d S |rd S |                     dd¦  «        }‰r‰› d|› �n|}t          ‰	|t	          | ¦  «        dz   |                     dt	          ‰
¦  «        ¦  «        ¦  «         d S )NTÚprogress_titlezH3 Face Refinementrû   r   Úoverride_num_inference_steps)r   Ú
_interruptr¡   r   r   )Ústep_idxÚ_latentÚ_force_refreshÚ
read_stateÚkwargsr   rç   rü   rµ   r   rï   s         €€€€€r   Ústep_callbackz#refine_video.<locals>.step_callbacké   sÐ   ø€ Ý˜NÑ+Ô+ð °°Ñ0@Ô0@ð Ø*.�HÔ'Ø�FØð Ø�FØŸ
š
Ð#3Ð5IÑJÔJ�Ø05Ð@˜5Ð,Ð, UÐ,Ð,Ð,¸5�ÝÐ)¨5µ#°h±-´-À!Ñ2CÀVÇZÂZÐPnÕpsð  uCñ  qDô  qDñ  FEô  FEñ  Fô  Fð  Fð  Fð  Fr   c                 ó   •—  ‰ d¬¦  «        S )NT)r  r€   )r  s   €r   ú<lambda>zrefine_video.<locals>.<lambda>ó   s   ø€ ¨}¨}ÈÐ/MÑ/MÔ/M€ r   r  )rí   r1   rî   rï   rð   rñ   rò   re   rä   rå   ÚVAE_tile_sizero   rb   ÚcallbackÚset_progress_statusé   rN   rO   zH3 face refinement complete)r4   NFF)r   r6   r.   r¶   Ú	enumerater   r   ÚminrA   r9   r\   rY   r=   ru   r«   Ú
checkpointÚhasattrr  Úrefine_videorN   rR   rT   ra   rL   r7   r   )-r/   r1   rµ   r¥   r¯   rì   rí   rî   rï   rð   rñ   rò   re   r   r   rã   ro   rb   rc   rä   rå   ræ   rç   r   r   rè   ré   rê   ÚstartsrW   Úfilled_stopÚwindow_indexr"   ÚstopÚinput_windowÚstrength_windowÚaudio_windowÚwindow_audio_rateÚtotal_windowsrý   Úwindow_outputÚoverlapr>   rü   r  s-     `     `             ``                   @@r   r  r  Í   s   øøøøøø€ ð *=Ð)D•#�e”k !”nÑ%Ô%Ð%Í#ÈkÑJZÔJZ€KÝ˜;¨°^ÑDÔD€FØ€FØ€KÝ	�H˜j¨*Ð6FÑ	GÔ	Gð 81ð 81Ý#,­T°&Ð?[ÐbjÐ-kÑ-kÔ-kÐstÐ#uÑ#uÔ#uð 7	1ñ 7	1ÑˆL˜%Ý˜Ñ'Ô'ð ¨N¨NÑ,<Ô,<ð Øð81ð 81ð 81ñ 81ô 81ð 81ð 81ð 81õ �u˜{Ñ*¨KÑ8Ô8ˆDØ3FÐ3N˜5    E¨$ J Ô/Ð/ÐTgÐTgÐhmÐosÑTtÔTtˆLØÔ!¥U¤[Ò0Ð0Ý/°Ñ=Ô=�Ý,6°|ÀYÈuÐUYÈzÔEZÑ,[Ô,[Ñ)ˆL˜/Ý.DÀ^ÐUfÐhyð  |Hð  KPñ  |Pð  RVð  Y^ñ  R^õ  `cð  dpô  dvð  wxô  dyñ  `zô  `zð  |ñ  /@ô  /@Ñ+ˆLÐ+Ø+=Ð+E�C ™KœK˜KÍ3ÐOaÑKbÔKbˆMØ[hÐklÒ[lÐ[lÐW�cÐ"5Ñ6Ô6¸ÑEÐWÐWÈÐWÐWÐWÐrtˆEðUð Uð Uð Uð Uð UðFð Fð Fð Fð Fð Fð Fð Fð Fð Fð (NÐ'MÐ'MÐ'MˆMÔ$å�x Ñ.Ô.ð ,Ø&+�Ô#ð0Ø (× 5Ò 5°lÈ6Ð]lØI[ÐlzØ<AÐQ^Ý;>¸t¹9¼9ÅsÈ<ÑGXÔGXÑ;XÐ[`Ñ;`ÐfiØGWØOgØDQÐbnØHYÐdqØJYð !6ñ ![ô ![�õ ˜8 \Ñ2Ô2ð 0Ø*/�HÔ'øøõ ˜8 \Ñ2Ô2ð 0Ø*/�HÔ'Ð/Ð/Ð/Ð/Ø<@Ð@ˆLÐ@˜?¨\ØÐ$Øð[81ð 81ð 81ñ 81ô 81ð 81ð 81ð 81ð\ *¨!¨!¨!¨]¨d°U©l¨]Ð*:Ô;×?Ò?ÑAÔAˆMØˆ~Ýœ mÔ&9¸!Ô&<¸kÐ%dÈMÔL_Ð`aÐ`bÐ`bÔLcÐ%dÐ%dÕlqÔlwð  AFð  Gñ  Gô  G�Ø�q�q�q˜%˜4˜%�xÔ ×&Ò&Õ'7¸Ñ'FÔ'FÑGÔGÐGÐGå˜k¨EÑ1µ3°}Ô7JÈ1Ô7MÑ3NÔ3NÑOÔO�Øð EÝ/°°q°q°q¸%ÀÈÁÐ:OÐ7OÔ0PÑQÔQ�HØ˜1˜1˜1˜e E¨G¡OÐ3Ð3Ô4×:Ò:Õ;KÕL\Ð]eÐgtÐuvÐuvÐuvð  yAð  zAð  yAð  vAô  hBñ  MCô  MCñ  <Dô  <Dñ  Eô  Eð  EØ�q�q�q˜% '™/¨$Ð.Ð.Ô/×5Ò5Õ6FÀ}ÐUVÐUVÐUVÐX_ÐX`ÐX`ÐU`ÔGaÑ6bÔ6bÑcÔcÐcÝ˜k¨4Ñ0Ô0ˆK‰Kðo7	1ð81ð 81ð 81ñ 81ô 81ð 81ð 81ð 81ð 81ð 81ð 81øøøð 81ð 81ð 81ð 81õr ÐÐ<Ñ=Ô=Ð=Ø€Ms:   ÁAOÂ(DOÆ>AHÈOÈH4È4OÉE7OÏOÏOrÁ   c                ó:   — t                                | ¦  «         d S r   )ÚRUNTIMErÚ   )rØ   s    r   Ú
load_modelr     s   € Ý‡L‚L�Ñ Ô Ð Ð Ð r   c                 ó8   — t                                ¦   «          d S r   )r  rË   r€   r   r   Úrelease_modelr"    s   € Ý‡O‚OÑÔÐÐÐr   )rÑ   ÚDEFAULT_WINDOW_FRAMESÚDEFAULT_WINDOW_OVERLAPr$   r  rÖ   r&   r   r  r"  r.   )NN)r   r   r   r   r   r   r   r   )r/   r0   r1   r0   r   r2   )r>   r0   r   r0   r   r0   )r/   r0   r   r0   )rb   r   rc   rd   r"   r   r   r   r<   r   re   rH   )r   rx   )r§   rx   )r®   )r¯   rd   r¥   r°   r±   rH   )(r/   rë   r1   r0   r¥   r°   r¯   rd   rì   rH   rí   r°   rî   rH   rï   r   rð   rH   rñ   r°   rò   r   re   rH   r   r   r   r   rã   r   rb   r   rc   rd   rå   rH   ré   r   rê   ró   r   râ   )-Ú
__future__r   r[   rß   Ú
contextlibr   Údataclassesr   rk   r)   r9   r   Úshared.utilsr   Úshared.utils.audio_videor   rÖ   rÑ   r#  r$  r$   r&   r%   r8   rg   rÒ   r   r.   r=   rL   rY   ra   ru   rx   rŽ   r¦   r­   r¶   r¸   r  Úinference_moder  r   r"  Ú__all__r€   r   r   ú<module>r,     sû  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð !€Ø/Ð ØÐ ØÐ ØÐ Ø€Ø€Ø  ?Ñ2Ð Ø!Ð Ø#Ð ð1ð 1ð 1ð 1ð
	jð 	jð 	jð 	jðWð Wð Wð WðOð Oð Oð Oð
ð ð ð ðð ð ð ðMð Mð Mð Mð& €�$ÐÑÔðð ð ð ð ñ ô ñ ÔððEð Eð Eð Eð	Eð 	Eð 	Eð	=ð 	=ð 	=ð 	=ð ð:ð :ð :ð :ñ „ð:ð 10ð 10ð 10ð 10ð 10ñ 10ô 10ð 10ðh Ð
Ñ
 Ô
 €ð €ÔÑÔð deØ $¸qÐbfØ"&È%Ø#°DÈDÐ^bÐx|Ø,-ÐPTðEð Eð Eð Eð Eñ ÔðEðP!ð !ð !ð !ð !ðð ð ð ð^ð ^ð ^€€€r   