§
     ’Þjy€  ã                  ó$  — 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mZ d dlmZ d dlmZ d dlZd dlZd dlZd dlmZ d dlmZ d dlmZmZmZ  ee¦  «                              ¦   «         j!        d	         d
z  Z"e"dz  Z#e"dz  Z$e"dz  Z%dZ&da'e#dz  Z(e#dz  Z)e&re)ne(Z*ej        dk    Z+e+o"d ej,        ¦   «          -                    ¦   «         v Z.e%e+rdndz  Z/e#dz  e#dz  e#dz  e$dz  e*fZ0e%e+rdndz  e/fZ1ddddd d!œZ2d"d	d#d$œZ3d%Z4d&Z5i Z6i Z7i Z8i a9d'„ Z:d(„ Z;edvd+„¦   «         Z<d,„ Z=edvd-„¦   «         Z>dwd2„Z? ed"¬3¦  «        dxd5„¦   «         Z@ ed"¬3¦  «        dyd7„¦   «         ZAdzd9„ZB ed"¬3¦  «        d{d;„¦   «         ZCd|d>„ZDd}d@„ZEd~dC„ZFdd€dI„ZG G dJ„ dK¦  «        ZH G dL„ dM¦  «        ZI G dN„ dO¦  «        ZJd�dS„ZKd‚dV„ZLdƒdZ„ZMd„d…d]„ZNd†db„ZO G dc„ ddeH¦  «        ZPdedddfœd‡dl„ZQ G dm„ dneH¦  «        ZRd„dˆdq„ZSdddrœd‰du„ZTdS )Šé    )ÚannotationsN)ÚFraction)Ú	lru_cache)ÚPath)Úoffload)Úoffload_registry)Úcontrolled_model_loadingÚloading_callbackÚcheckpoint_modulesé   Údlss5ÚhostÚdlssÚdlssgTÚvitlz	nvngx.dllznr-depth-worker.exeÚlinuxÚ	microsoftzdlssg-workerzdlssg-worker.exezdxgi.dllzrenodx-dlss5.addon64znvngx_dlssnr.dllznvngx_dlss.dllzlibnvidia-ngx-dlssg.so.310.9.16znvngx_dlssg.dll)ÚDLAAé   )ÚQualityr   )ÚBalancedé   )ÚPerformancer   )zUltra Performanceé   )ç      ð?g      ø?g/Ý$�•û?ç       @g      @r   é   )ÚfullÚhalfÚquarter)ÚoriginalÚrafté   c                ó6   — |                       dd¦  «        a| ad S )NÚdepth_anything_v2_variantr   )ÚgetÚDEPTH_MODEL_VARIANTÚ_POSTPROCESSOR_CONFIG)Úserver_configs    úDC:\Users\johnn\OneDrive\Documents\AI\postprocessing\dlss5\runtime.pyÚconfigure_depth_estimatorr+   A   s%   € à'×+Ò+Ð,GÈÑPÔPÐØ)ÐÐÐó    c           
     óÐ   — ddl m} i } ||t          ¦  «        }t          j        d|ift          ¦   «         |dd dddœ|¤Ž}|t          | <   t          j        | |t          ¦  «         d S )Nr   )Ú	configureÚmodelFéÿÿÿÿ)r
   Ú
profile_noÚquantizeTransformerÚconvertWeightsFloatToÚpinnedMemoryÚverboseLevel)
Úpostprocessing.memoryr.   r(   r   Úprofiler
   Ú_GUIDE_OFFLOADSr   Úregister_offloadobjÚrelease_flow_model)Únamer/   r.   Úkwargsr7   Ú
offloadobjs         r*   Ú_offload_guide_modelr>   G   s¬   € Ø/Ð/Ð/Ð/Ð/Ð/à€FØˆi˜Õ 5Ñ6Ô6€GÝ” '¨5Ð!1ð  RÕDTÑDVÔDVÐcjð  AFð  ^bð  qvð  EGð  Rð  Rð  KQð  Rð  R€JØ&…O�DÑÝÔ(¨¨zÕ;MÑNÔNÐNÐNÐNr,   Údeviceútorch.devicec                óÈ  — t          | ¦  «        }|t          vr¾ddlm} ddlm}  |t          j        ddd¬¦  «        ¦  «        }t          j	        | 
                    d¦  «        dd¬	¦  «        }|                     d
„ |                     ¦   «         D ¦   «         ¦  «         |                     ¦   «         t          |<   | j        dk    rt          d|¦  «         t          |         S )Nr   )ÚRAFT©Úfiles_locatorF)ÚsmallÚmixed_precisionÚalternate_corrzflow/raft-things.pthÚcpuT)Úmap_locationÚweights_onlyc                ó@   — i | ]\  }}|                      d ¦  «        |“ŒS )zmodule.)Úremoveprefix)Ú.0r;   Úvalues      r*   ú
<dictcomp>z_raft_model.<locals>.<dictcomp>Z   s,   € ÐfÐfÐfÁ{ÀtÈU˜t×0Ò0°Ñ;Ô;¸UÐfÐfÐfr,   ÚcudazDLSS Motion Vectors)ÚstrÚ_RAFT_MODELSÚpreprocessing.raft.raftrB   Úshared.utilsrD   ÚargparseÚ	NamespaceÚtorchÚloadÚlocate_fileÚload_state_dictÚitemsÚevalÚtyper>   )r?   ÚkeyrB   Úflr/   Úweightss         r*   Ú_raft_modelra   Q   sî   € å
ˆf‰+Œ+€CØ
•,ÐÐØ0Ð0Ð0Ð0Ð0Ð0Ø4Ð4Ð4Ð4Ð4Ð4à�•XÔ'¨eÀUÐ[`ÐaÑaÔaÑbÔbˆÝ”*˜RŸ^š^Ð,BÑCÔCÐRWÐfjÐkÑkÔkˆØ×ÒÐfÐfÐV]×VcÒVcÑVeÔVeÐfÑfÔfÑgÔgÐgØ!ŸJšJ™LœL��SÑØŒ;˜&Ò Ð Ý Ð!6¸Ñ>Ô>Ð>Ý˜ÔÐr,   c                 óâ  — t                                ¦   «         D ].\  } }t          j        | |¦  «         |                     ¦   «          Œ/t                                ¦   «          t                               ¦   «         D ]A}t          |d¦  «        r| 	                    ¦   «          Œ'|j
                             d¦  «         ŒBt                               ¦   «          t                               ¦   «          d S )NÚcloserH   )r8   r[   r   Úunregister_offloadobjÚreleaseÚclearÚ_DEPTH_MODELSÚvaluesÚhasattrrc   r/   ÚtorR   )r;   r=   Ú	annotators      r*   r:   r:   a   sß   € Ý+×1Ò1Ñ3Ô3ð ð ÑˆˆjÝÔ.¨t°ZÑ@Ô@Ð@Ø×ÒÑÔÐÐÝ×ÒÑÔÐÝ"×)Ò)Ñ+Ô+ð &ð &ˆ	Ý�9˜gÑ&Ô&ð 	&Ø�OŠOÑÔÐÐàŒO×Ò˜uÑ%Ô%Ð%Ð%Ý×ÒÑÔÐÝ×ÒÑÔÐÐÐr,   c                óô  — t           }|t          | ¦  «        f}|t          vrËddlm} |dk    rGddlm}  ||                     d¦  «        ddddd	œt          j	        d
¦  «        ¬¦  «        t          |<   nIddl
m} d|› d�} ||                     |¦  «        |dœt          j	        d
¦  «        ¬¦  «        t          |<   | j        dk    r$t          d|› d�t          |         j        ¦  «         t          |         S )Nr   rC   Úda3_metric_large)ÚDepthV3VideoAnnotatorz5depth/depth_anything_v3_metric_large_bf16.safetensorszda3metric-larger   é   )ÚPRETRAINED_MODELÚ
MODEL_NAMEÚPROCESS_RESÚ
CHUNK_SIZEÚCHUNK_OVERLAPrH   ©r?   )ÚDepthV2Annotatorzdepth/depth_anything_v2_z.pth)rp   ÚMODEL_VARIANTrP   zDLSS Depth (ú))r'   rQ   rg   rT   rD   Ú%preprocessing.depth_anything_v3.depthrn   rY   rW   r?   Ú%preprocessing.depth_anything_v2.depthrv   r]   r>   r/   )r?   Úvariantr^   r_   rn   rv   Úfilenames          r*   Ú_depth_modelr}   o   s’  € å!€GØ•C˜‘K”KÐ
 €CØ
•-ÐÐØ4Ð4Ð4Ð4Ð4Ð4àÐ(Ò(Ð(ØSÐSÐSÐSÐSÐSà!6Ð!6ÈBÏNÊNð  \Sñ  MTô  MTð  duð  FGð  WXð  klð  8mð  8mõ  v{ô  vBð  CHñ  vIô  vIð  "Jñ  "Jô  "J�M˜#ÑÐàNÐNÐNÐNÐNÐNà?°'Ð?Ð?Ð?ˆHØ!1Ð!1ÀrÇ~Â~ÐV^ÑG_ÔG_ÐryÐ2zÐ2zõ  DIô  DPð  QVñ  DWô  DWð  "Xñ  "Xô  "X�M˜#ÑØŒ;˜&Ò Ð Ý Ð!:°Ð!:Ð!:Ð!:½MÈ#Ô<NÔ<TÑUÔUÐUÝ˜ÔÐr,   Úfilesútuple[Path, ...]Úreturnú
list[Path]c                ó   — d„ | D ¦   «         S )Nc                ó:   — g | ]}|                      ¦   «         °|‘ŒS © )Úis_file)rM   Úpaths     r*   ú
<listcomp>z_missing.<locals>.<listcomp>…   s%   € Ð9Ð9Ð9�T¨$¯,ª,©.¬.Ð9ˆDÐ9Ð9Ð9r,   r„   )r~   s    r*   Ú_missingrˆ   „   s   € Ø9Ð9˜UÐ9Ñ9Ô9Ð9r,   )ÚmaxsizeÚdictc                 óê  — t          t          ¦  «        st          j        dk    r	t          si S 	 t          j        t          t          ¦  «        dgt          t          ¦  «        ddddt          t
          dd¦  «        ¬¦  «        } t          j        | j                             ¦   «         ¦  «        }t          |t           ¦  «        rd	|v r|ni S # t"          t
          j        t          j        f$ r i cY S w xY w)
NÚntz--probeTé   FÚCREATE_NO_WINDOWr   )ÚcwdÚcapture_outputÚtextÚtimeoutÚcheckÚcreationflagsÚ	available)rˆ   ÚDLSSG_FILESÚosr;   ÚDLSSG_LINUXÚ
subprocessÚrunrQ   ÚDLSSG_WORKERÚ	DLSSG_DIRÚgetattrÚjsonÚloadsÚstdoutÚstripÚ
isinstancerŠ   ÚOSErrorÚTimeoutExpiredÚJSONDecodeError)ÚresultÚcapabilitiess     r*   Údlssg_capabilitiesr¨   ˆ   s  € å•ÑÔð ¥¤¨D¢ ½ Øˆ	ðÝ”¥¥\Ñ!2Ô!2°IÐ >ÅCÍ	ÁNÄNÐcgÐnrÐ|~ð  GLõ  \cõ  dnð  pBð  DEñ  \Fô  \Fð  Gñ  Gô  GˆÝ”z &¤-×"5Ò"5Ñ"7Ô"7Ñ8Ô8ˆÝ)¨,½Ñ=Ô=ÐeÀ+ÐQ]ÐB]ÐB]ˆ|ˆ|ÐceÐeøÝ•ZÔ.µÔ0DÐEð ð ð Øˆ	ˆ	ˆ	ðøøøs   ¯BC Ã#C2Ã1C2Úintc                 ó´  ‡— t           j        dk    r	t          sdS 	 t          j        t          rdndddgdddd	t          t          d
d¦  «        ¬¦  «        } n# t          t          j        f$ r Y dS w xY wd„ t          j	        d| j
        t          j        ¦  «        D ¦   «         }|s¤| j
                             ¦   «         Št          ˆfd„dD ¦   «         ¦  «        rdS d‰v sd‰v sd‰v rdS d‰v st          ˆfd„dD ¦   «         ¦  «        rdS d‰v rdS t          j        d‰¦  «        }|r"t          |                     d¦  «        ¦  «        S t#          |d¬¦  «        S )NrŒ   r   z/usr/lib/wsl/lib/nvidia-smiz
nvidia-smiz--query-gpu=namez--format=csv,noheaderTr   FrŽ   )r�   r‘   r’   r“   r”   c                óR   — g | ]$}t          |                     d ¦  «        ¦  «        ‘Œ%S )r   )r©   Úgroup)rM   Úmatchs     r*   r‡   z_gpu_series.<locals>.<listcomp>œ   s*   € ÐzÐzÐz e�c�%—+’+˜a‘.”.Ñ!Ô!ÐzÐzÐzr,   zGeForce\s+RTX\s+(\d{2})\d{2}c              3  ó    •K  — | ]}|‰v V — Œ	d S ©Nr„   ©rM   ÚkÚups     €r*   ú	<genexpr>z_gpu_series.<locals>.<genexpr>¤   s'   øè è € ÐnÐn˜1ˆq�BˆwÐnÐnÐnÐnÐnÐnr,   )zPRO 6000zPRO 5000zPRO 4000ÚB100ÚB200ÚGB100ÚH100ÚH200é2   ÚADAÚL40z L4é(   zRTX Ac              3  ó    •K  — | ]}|‰v V — Œ	d S r¯   r„   r°   s     €r*   r³   z_gpu_series.<locals>.<genexpr>¨   s'   øè è € ÐZÐZ¨A  R ÐZÐZÐZÐZÐZÐZr,   )z A40z A30z A16z A10z A80é   ÚQUADROr#   zRTX\D*?(\d{2})\d{2}r   )Údefault)r—   r;   ÚNR_WSLr™   rš   r�   r£   r¤   ÚreÚfinditerr    Ú
IGNORECASEÚupperÚanyÚsearchr©   r¬   Úmax)r¦   Úseriesr­   r²   s      @r*   Ú_gpu_seriesrÊ   ”   s×  ø€ å	„w�$‚€�v€ØˆqðÝ”Å&Ð!ZÐ!>Ð!>ÈlÐ\nð  qHð  !Ið  Z^ð  eið  stð  |Aõ  QXõ  Ycð  ewð  yzñ  Q{ô  Q{ð  |ñ  |ô  |ˆˆøÝ•ZÔ.Ð/ð ð ð ØˆqˆqðøøøàzÐz­r¬{Ð;ZÐ\bÔ\iÕkmÔkxÑ/yÔ/yÐzÑzÔz€FØð 'ð Œ]× Ò Ñ"Ô"ˆÝÐnÐnÐnÐnÐ mÐnÑnÔnÑnÔnð 	Ø�2Ø�Bˆ;ˆ;˜% 2˜+˜+¨°"¨¨Ø�2Ø�bˆ=ˆ=�CÐZÐZÐZÐZÐ1YÐZÑZÔZÑZÔZˆ=Ø�2Ø�rˆ>ˆ>Ø�2Ý”	Ð0°"Ñ5Ô5ˆØð 	'Ý�u—{’{ 1‘~”~Ñ&Ô&Ð&Ýˆv˜qÐ!Ñ!Ô!Ð!s   œ:A ÁA1Á0A1Úboolc                 ó&   — t          ¦   «         dk    S )Nr¹   )rÊ   r„   r,   r*   Úis_rtx_50_seriesrÍ   ²   s   € Ý‰=Œ=˜BÒÐr,   úbool | Nonec                 óB  — t           j        dk    rd S 	 dd l} |                      | j        d¦  «        5 }|                      |d¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   dddœ                     t          |¦  «        ¦  «        S # t          t          f$ r Y d S w xY w)NrŒ   r   z0SYSTEM\CurrentControlSet\Control\GraphicsDriversÚ	HwSchModeFT)r   r   )
r—   r;   ÚwinregÚOpenKeyÚHKEY_LOCAL_MACHINEÚQueryValueExr&   r©   r£   Ú
ValueError)rÑ   r^   rN   Ú_kinds       r*   Ú_hags_enabledr×   ¶   sý   € å	„w�$‚€ØˆtðØˆˆˆà�^Š^˜FÔ5Ð7jÑkÔkð 	AÐorØ!×.Ò.¨s°KÑ@Ô@‰LˆE�5ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Aà˜TÐ"Ð"×&Ò&¥s¨5¡z¤zÑ2Ô2Ð2øÝ•ZÐ ð ð ð Øˆtˆtðøøøs4   ”B	 ³AÁB	 ÁAÁB	 Á AÁ!'B	 Â	BÂBÚtemporalrQ   c                óJ  — t          | rt          nt          ¦  «        }|rd|d         j        › �S | r9t          r2t          ¦   «         }|sdS |d         rdn|                     dd¦  «        S | sTt          rMt          d¦  «        }| 	                    ¦   «         r'| 
                    ¦   «                              d	¦  «        sd
S nt          j        dk    rdS t          ¦   «         }| rdnd}||k     rd|› d�S | r.t          ¦   «         }|du rdS t          ¦   «         }|r
|d         sdS dS )Nzmissing r   zOLinux DLSS Frame Generation probe failed (run dlss5/dlssg/dlssg-worker --probe)r•   Ú Úreasonz*NVIDIA Vulkan Frame Generation unavailablez#/proc/sys/fs/binfmt_misc/WSLInteropzenabled
zAWSL Windows interoperability must be enabled for Neural RenderingrŒ   zWindows 11 requiredr¼   r¾   zRTX z
+ requiredFzHAGS disabledz@DLSS Frame Generation unavailable (check HAGS and NVIDIA driver))rˆ   r–   ÚNR_FILESr;   r˜   r¨   r&   rÁ   r   r…   Ú	read_textÚ
startswithr—   rÊ   r×   )rØ   Úmissingr§   ÚinteroprÉ   ÚminimumÚhags_enableds          r*   Úunavailable_reasonrã   Ä   st  € Ý hÐ<•{�{µHÑ=Ô=€GØð ,Ø+˜' !œ*œ/Ð+Ð+Ð+Øð }•Kð }Ý)Ñ+Ô+ˆØð 	eØdÐdØ! +Ô.Ð|ˆrˆr°L×4DÒ4DÀXÐO{Ñ4|Ô4|Ð|Øð %�ð %ÝÐ<Ñ=Ô=ˆØ�ŠÑ Ô ð 	W¨×(9Ò(9Ñ(;Ô(;×(FÒ(FÀ{Ñ(SÔ(Sð 	WØVÐVð	Wå	Œ�DŠˆØ$Ð$Ý‰]Œ]€FØÐ$ˆbˆb "€GØ�ÒÐØ)�gÐ)Ð)Ð)Ð)Øð VÝ$‘”ˆØ˜5Ð Ð Ø"�?Ý)Ñ+Ô+ˆØð 	V ¨[Ô 9ð 	VØUÐUØˆ2r,   ÚNonec                ó^   — t          | ¬¦  «        }|rt          d| rdnd› d|› d�¦  «        ‚d S )N©rØ   zDLSS zFrame GenerationzNeural Renderingz is unavailable: z. See docs/DLSS5.md.)rã   ÚRuntimeError)rØ   rÛ   s     r*   Úrequire_runtimerè   á   sq   € Ý¨Ð2Ñ2Ô2€FØð JÝð  I¸Ð#YÐ#5Ð#5ÐGYð  Ið  IÐlrð  Ið  Ið  Iñ  Jô  Jð  	JðJð Jr,   ÚsizeÚbytesc                óF  — t          ¦   «         }t          |¦  «        |k     rr|                      |t          |¦  «        z
  ¦  «        }|s#t          dt          |¦  «        › d|› d�¦  «        ‚|                     |¦  «         t          |¦  «        |k     °rt          |¦  «        S )NúDLSS worker closed after ú of ú output bytes)Ú	bytearrayÚlenÚreadrç   Úextendrê   )Ústreamré   ÚdataÚblocks       r*   Ú_read_exactrö   ç   sœ   € Ý‰;Œ;€DÝ
ˆd‰)Œ)�dÒ
Ð
Ø—’˜D¥3 t¡9¤9Ñ,Ñ-Ô-ˆØð 	_ÝÐ]½3¸t¹9¼9Ð]Ð]È$Ð]Ð]Ð]Ñ^Ô^Ð^Ø�Š�EÑÔÐõ	 ˆd‰)Œ)�dÒ
Ð
õ
 �‰;Œ;Ðr,   Úshapeútuple[int, ...]Úoutputúnp.ndarray | Noneú
np.ndarrayc                óp  — |€ t          j        |t           j        ¬¦  «        n|}t          |¦  «                             d¦  «        }d}|t          |¦  «        k     rZ|                      ||d …         ¦  «        }|s#t          d|› dt          |¦  «        › d�¦  «        ‚||z  }|t          |¦  «        k     °Z|S )N©ÚdtypeÚBr   rì   rí   rî   )ÚnpÚemptyÚuint8Ú
memoryviewÚcastrð   Úreadintorç   )ró   r÷   rù   ÚviewÚoffsetÚcounts         r*   Ú_read_arrayr	  ñ   s¿   € Ø06°�RŒX�e¥2¤8Ð,Ñ,Ô,Ð,ÀF€FÝ�fÑÔ×"Ò" 3Ñ'Ô'€DØ€FØ
•3�t‘9”9Ò
Ð
Ø—’  V W W¤Ñ.Ô.ˆØð 	aÝÐ_¸6Ð_Ð_ÅsÈ4ÁyÄyÐ_Ð_Ð_Ñ`Ô`Ð`Ø�%‰ˆð	 •3�t‘9”9Ò
Ð
ð
 €Mr,   c                  ó:   — e Zd Zdd„Zd„ Zdd	„Zdd„Zddœdd„ZdS )ÚWorkerÚcommandú	list[str]r�   r   c                ój  — t          j        d¬¦  «        | _        t          j        |t          |¦  «        t          j        t          j        t          j        dt          t          dd¦  «        ¬¦  «        | _        t          j
        | j        d¬¦  «        | _        | j                             ¦   «          d S )Néd   )Úmaxlenr   rŽ   )r�   Ústdinr    ÚstderrÚbufsizer”   T)ÚtargetÚdaemon)ÚcollectionsÚdequeÚlogsr™   ÚPopenrQ   ÚPIPEr�   ÚprocessÚ	threadingÚThreadÚ
_read_logsÚ_log_threadÚstart)Úselfr  r�   s      r*   Ú__init__zWorker.__init__þ   s·   € Ý,7Ô,=ÀSÐ,IÑ,IÔ,IˆŒ	Ý!Ô'¨µS¸±X´XÅZÄ_Õ]gÔ]lÕuô  vEð  OPõ  `gõ  hrð  tFð  HIñ  `Jô  `Jð  Kñ  Kô  KˆŒÝ$Ô+°4´?È4ÐPÑPÔPˆÔØÔ×ÒÑ Ô Ð Ð Ð r,   c                óæ   — | j         j        €J ‚t          | j         j        j        d¦  «        D ]B}| j                             |                     dd¦  «                             ¦   «         ¦  «         ŒCd S )Nr,   zutf-8Úreplace)r  r  ÚiterÚreadliner  ÚappendÚdecodeÚrstrip)r!  Úraws     r*   r  zWorker._read_logs  su   € ØŒ|Ô"Ð.Ð.Ð.Ý˜œÔ+Ô4°cÑ:Ô:ð 	Fð 	FˆCØŒI×Ò˜SŸZšZ¨°Ñ;Ô;×BÒBÑDÔDÑEÔEÐEÐEð	Fð 	Fr,   r€   rQ   c                ó6   — d                      | j        ¦  «        S )Nú
)Újoinr  )r!  s    r*   ÚerrorzWorker.error	  s   € Ø�yŠy˜œÑ#Ô#Ð#r,   ré   r©   Ú	operationrê   c           
     óÚ  — | j         j        €J ‚	 t          | j         j        |¦  «        S # t          t          f$ r¯}|                      d¬¦  «         | j         j        }|€dn|› d|dz  d›d�}|                      ¦   «         }|�!|dz  dk    rd	|› �                     ¦   «         }n|sd
}t	          |› dt          | j         j
        d         ¦  «        j        › d|› d|› �¦  «        |‚d }~ww xY w)NT©ÚabortÚunknownz (0xl   ÿÿ Ú08Xrx   l   5   zSWindows could not load a DLL dependency. Install the current DLSS 5 worker bundle.
zwThe worker produced no diagnostic output. Reinstall the current DLSS 5 worker bundle and verify dlss5/host/ReShade.log.z: r   z# exited before replying (exit code ú).
)r  r    rö   r£   rç   rc   Ú
returncoder.  r)  r   Úargsr;   )r!  ré   r/  r.  ÚcodeÚ	code_textÚdetailss          r*   Ú
read_exactzWorker.read_exact  sd  € ØŒ|Ô"Ð.Ð.Ð.ð	XÝ˜tœ|Ô2°DÑ9Ô9Ð9øÝ�Ð&ð 		Xð 		Xð 		XØ�JŠJ˜TˆJÑ"Ô"Ð"Ø”<Ô*ˆDØ%) \˜	˜	¸$Ð7\Ð7\ÀDÈ:ÑDUÐ7\Ð7\Ð7\Ð7\ˆIØ—j’j‘l”lˆGØÐ T¨JÑ%6¸:Ò$EÐ$EØzÐqxÐzÐz÷  Bò  Bñ  Dô  D��Øð Tð T�Ý )ð   Lð   L­t°D´LÔ4EÀaÔ4HÑ/IÔ/IÔ/Nð   Lð   LÐs|ð   Lð   Lð  CJð   Lð   Lñ  Mô  Mð  SXð  Xøøøøð		Xøøøs   �* ªC*»B*C%Ã%C*Fr1  r2  rË   c               ó"  — | j         }|                     ¦   «         €¡	 |r|                     ¦   «          n,|j        r%|j        j        s|j                             ¦   «          |                     d¬¦  «         nF# t          t          j	        f$ r- | 
                    ¦   «          |                     d¬¦  «         Y nw xY w| j                             d¬¦  «         |s3|j        r.t          d|j        › d|                      ¦   «         › �¦  «        ‚d S d S )Né
   )r’   r   r   zDLSS worker exited with code z.
)r  ÚpollÚ	terminater  Úclosedrc   Úwaitr£   r™   r¤   Úkillr  r-  r6  rç   r.  )r!  r2  r  s      r*   rc   zWorker.close  s;  € Ø”,ˆØ�<Š<‰>Œ>Ð!ð(Øð *Ø×%Ò%Ñ'Ô'Ð'Ð'Ø”]ð *¨7¬=Ô+?ð *Ø”M×'Ò'Ñ)Ô)Ð)Ø—’ R�Ñ(Ô(Ð(Ð(øÝ�ZÔ6Ð7ð (ð (ð (Ø—’‘”�Ø—’ Q�Ñ'Ô'Ð'Ð'Ð'ð(øøøð 	Ô×Ò aÐÑ(Ô(Ð(Øð 	f˜Ô+ð 	fÝÐd¸wÔ?QÐdÐdÐVZ×V`ÒV`ÑVbÔVbÐdÐdÑeÔeÐeð	fð 	fð 	fð 	fs   �AA7 Á7A B:Â9B:N)r  r  r�   r   )r€   rQ   )ré   r©   r/  rQ   r€   rê   )r2  rË   )Ú__name__Ú
__module__Ú__qualname__r"  r  r.  r;  rc   r„   r,   r*   r  r  ý   s‘   € € € € € ð!ð !ð !ð !ðFð Fð Fð
$ð $ð $ð $ðXð Xð Xð Xð &+ð fð fð fð fð fð fð fð fr,   r  c                  ó&   — e Zd Zdd„Zdd
„Zdd„ZdS )Ú
FlowGuidesÚwidthr©   ÚheightÚmotion_vectorrQ   c                óÎ  — ||c| _         | _        |dk    | _        t          dd|z  ¦  «        }t	          dt          ||z  dz  ¦  «        dz  ¦  «        | _        t	          dt          ||z  dz  ¦  «        dz  ¦  «        | _        d | _        t          j
        ||dft          j        ¬¦  «        | _        | j        rTt          j        t          j                             ¦   «         rdnd¦  «        | _        t#          | j        ¦  «        | _        d S t'          j        t&          j        ¦  «        | _        | j                             d	¦  «         | j                             d
¦  «         d S )Nr"   r   i€  é@   r   rý   rP   rH   Tr   )rH  rI  Úuse_raftÚminrÈ   ÚroundÚ
flow_widthÚflow_heightÚpreviousr   ÚzerosÚfloat16ÚzerorW   r?   rP   Úis_availablera   ÚflowÚcv2ÚDISOpticalFlow_createÚDISOPTICAL_FLOW_PRESET_MEDIUMÚsetUseSpatialPropagationÚsetFinestScale)r!  rH  rI  rJ  Úscales        r*   r"  zFlowGuides.__init__-  s5  € Ø"'¨ÐˆŒ
�D”KØ%¨Ò/ˆŒÝ�C˜˜u™Ñ%Ô%ˆÝ˜b¥%¨°©¸Ñ(9Ñ":Ô":¸QÑ">Ñ?Ô?ˆŒÝ˜r¥5¨°%©¸!Ñ);Ñ#<Ô#<¸qÑ#@ÑAÔAˆÔØˆŒÝ”H˜f e¨QÐ/µr´zÐBÑBÔBˆŒ	ØŒ=ð 	(Ýœ,µ´×1HÒ1HÑ1JÔ1JÐ'U v vÐPUÑVÔVˆDŒKÝ# D¤KÑ0Ô0ˆDŒIˆIˆIåÔ1µ#Ô2SÑTÔTˆDŒIØŒI×.Ò.¨tÑ4Ô4Ð4ØŒI×$Ò$ QÑ'Ô'Ð'Ð'Ð'r,   Úcurrentrû   r€   c                óú  — ddl m} t          j        |dd d…f         ¦  «                             ddd¦  «                             ¦   «                              d¦  «                             | j        ¦  «        }t          j        | j	        dd d…f         ¦  «                             ddd¦  «                             ¦   «                              d¦  «                             | j        ¦  «        } ||j
        ¦  «        }|                     ||¦  «        \  }}t          j        ¦   «         5  t          d„ | j                             ¦   «         D ¦   «         ¦  «        5  |                      ||t           d¬	¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     |¦  «        d                              ddd¦  «                             ¦   «                              ¦   «         S )
Nr   )ÚInputPadder.r   r   r   c              3  ó(   K  — | ]}|j         °	|V — Œd S r¯   ©Ú_modules©rM   Úmodules     r*   r³   z#FlowGuides._raft.<locals>.<genexpr>D  s+   è è € Ð7xÐ7xÀ6ÐhnÔhwÐ7x¸Ð7xÐ7xÐ7xÐ7xÐ7xÐ7xr,   T)ÚitersÚ	test_mode)Úpreprocessing.raft.utils.utilsr`  rW   Ú
from_numpyÚpermuteÚfloatÚ	unsqueezerj   r?   rR  r÷   ÚpadÚinference_moder   rW  ÚmodulesÚRAFT_ITERATIONSÚunpadrH   Únumpy)r!  r^  r`  Úcurrent_tensorÚprevious_tensorÚpadderÚ_lowÚmotions           r*   Ú_raftzFlowGuides._raft=  s^  € Ø>Ð>Ð>Ð>Ð>Ð>åÔ)¨'°#°r¸°r°'Ô*:Ñ;Ô;×CÒCÀAÀqÈ!ÑLÔL×RÒRÑTÔT×^Ò^Ð_`ÑaÔa×dÒdÐeiÔepÑqÔqˆÝÔ*¨4¬=¸¸b¸q¸b¸Ô+AÑBÔB×JÒJÈ1ÈaÐQRÑSÔS×YÒYÑ[Ô[×eÒeÐfgÑhÔh×kÒkÐlpÔlwÑxÔxˆØ�˜^Ô1Ñ2Ô2ˆØ*0¯*ª*°^À_Ñ*UÔ*UÑ'ˆ˜ÝÔ!Ñ#Ô#ð 	mð 	mÕ%7Ð7xÐ7xÈTÌY×M^ÒM^ÑM`ÔM`Ð7xÑ7xÔ7xÑ%xÔ%xð 	mð 	mØŸ9š9 ^°_ÍOÐgk˜9ÑlÔl‰LˆD�&ð	mð 	mð 	mñ 	mô 	mð 	mð 	mð 	mð 	mð 	mð 	møøøð 	mð 	mð 	mð 	mð 	mð 	mð 	mñ 	mô 	mð 	mð 	mð 	mð 	mð 	mð 	møøøð 	mð 	mð 	mð 	mà�|Š|˜FÑ#Ô# AÔ&×.Ò.¨q°!°QÑ7Ô7×;Ò;Ñ=Ô=×CÒCÑEÔEÐEs6   Ä(1FÅ"FÅ;FÆF	ÆFÆF	ÆFÆF"Æ%F"Úrgbaútuple[np.ndarray, bool]c                óÐ  — t          j        || j        | j        ft           j        ¬¦  «        }| j        r|nt          j        |t           j        ¦  «        }| j        €| j	        d}}�nut          t          j        t          j        || j        ¦  «        ¦  «        ¦  «        dz  }|dk     }|dk    }|s|r	| j	        }�n | j        r|                      |¦  «        n | j                             || j        d ¦  «        }t          j        || j        | j        ft           j        ¬¦  «        }|dxx         | j        | j        z  z  cc<   |dxx         | j        | j        z  z  cc<   t          j        |¦  «                             d¬	¦  «        }	d
||	 <   t          t          j        |	¦  «        ¦  «        dk     }|r| j	        }t          j        |t          j        ¬¦  «        }|| _        ||fS )N©ÚinterpolationTg     ào@gü©ñÒMb@?g¸…ëQ¸Î?).r   ).r   r   )Úaxisr   g\�Âõ(\ï?rý   )rX  ÚresizerP  rQ  Ú
INTER_AREArM  ÚcvtColorÚCOLOR_RGBA2GRAYrR  rU  rk  r   ÚmeanÚabsdiffrx  rW  ÚcalcrH  rI  ÚINTER_LINEARÚisfiniteÚallÚascontiguousarrayrT  )
r!  ry  Úresizedr^  rw  ÚresetÚscoreÚ	duplicateÚlow_resolution_motionÚfinites
             r*   r  zFlowGuides.processH  sÉ  € Ý”*˜T D¤O°TÔ5EÐ#FÕVYÔVdÐeÑeÔeˆØ!œ]ÐZ�'�'µ´¸WÅcÔFYÑ0ZÔ0ZˆØŒ=Ð Ø œI t�EˆF‰Få�"œ'¥#¤+¨g°t´}Ñ"EÔ"EÑFÔFÑGÔGÈ%ÑOˆEØ šˆIØ˜D’LˆEØð H˜	ð HØœ�‘à?C¼}Ð(~¨¯
ª
°7Ñ(;Ô(;Ð(;ÐRVÔR[×R`ÒR`ÐahÐjnÔjwÐy}ÑR~ÔR~Ð%ÝœÐ$9¸D¼JÈÌÐ;TÕdgÔdtÐuÑuÔu�Ø�v��” $¤*¨t¬Ñ">Ñ>��‘Ø�v��” $¤+°Ô0@Ñ"@Ñ@��‘Ýœ VÑ,Ô,×0Ò0°aÐ0Ñ8Ô8�Ø"#�˜�w‘Ý�bœg f™oœoÑ.Ô.°Ò5�Øð 'Ø!œY�FÝÔ-¨f½B¼JÐGÑGÔG�ØˆŒØ�uˆ}Ðr,   N)rH  r©   rI  r©   rJ  rQ   )r^  rû   r€   rû   )ry  rû   r€   rz  )rC  rD  rE  r"  rx  r  r„   r,   r*   rG  rG  ,  sT   € € € € € ð(ð (ð (ð (ð 	Fð 	Fð 	Fð 	Fðð ð ð ð ð r,   rG  c                  ó   — e Zd Zdd„Zdd„ZdS )ÚDepthGuidesrH  r©   rI  Údepth_resolutionrQ   c                ó>  — ||c| _         | _        t          |         }||z  | _        ||z  | _        t          j        t
          j                             ¦   «         rdnd¦  «        | _        t          | _
        t          | j        ¦  «        | _        d x| _        | _        d S )NrP   rH   )rH  rI  ÚDEPTH_RESOLUTION_DIVISORSÚinference_widthÚinference_heightrW   r?   rP   rV  r'   r{   r}   Ú	estimatorÚlowÚhigh)r!  rH  rI  r’  Údivisors        r*   r"  zDepthGuides.__init__c  s‰   € Ø"'¨ÐˆŒ
�D”KÝ+Ð,<Ô=ˆØ$¨Ñ/ˆÔØ &¨'Ñ 1ˆÔÝ”l­U¬Z×-DÒ-DÑ-FÔ-FÐ#Q 6 6ÈEÑRÔRˆŒÝ*ˆŒÝ% d¤kÑ2Ô2ˆŒØ#Ð#ˆŒ�4”9�9�9r,   ry  rû   r‹  rË   r€   c           	     óº  — | j         | j        f| j        | j        fk    r|n,t	          j        || j         | j        ft          j        ¬¦  «        }t          d„ | j        j	         
                    ¦   «         D ¦   «         ¦  «        5  | j        dk    rOddlm}  || j        j	        |d dd d…f         | j         d¬	¦  «        d         }d
t          j        |d¦  «        z  }~nYt	          j        |t          j        ¦  «        }| j        j	                             |t'          | j         | j        ¦  «        ¬¦  «        }~d d d ¦  «         n# 1 swxY w Y   ~d„ t          j        |d¦  «        D ¦   «         \  }}	|s| j        €||	c| _        | _        n*d| j        z  d|z  z   | _        d| j        z  d|	z  z   | _        || j        z  }|t/          | j        | j        z
  d¦  «        z  }t          j        |dd|¬¦  «         |}
|j        | j        | j        fk    r.t	          j        || j        | j        ft          j        ¬¦  «        }
~t          j        |
t          j        ¬¦  «        S )Nr|  c              3  ó(   K  — | ]}|j         °	|V — Œd S r¯   rb  rd  s     r*   r³   z&DepthGuides.process.<locals>.<genexpr>o  s+   è è € ÐkÐk¨6Ð[aÔ[jÐk ÐkÐkÐkÐkÐkÐkr,   rm   r   )Ú_run_da3_depth_prediction.r   r   )Ú
chunk_sizer   g�íµ ÷Æ°>)Ú
input_sizec              3  ó4   K  — | ]}t          |¦  «        V — Œd S r¯   )rk  )rM   rN   s     r*   r³   z&DepthGuides.process.<locals>.<genexpr>{  s(   è è € ÐTÐT e•U˜5‘\”\ÐTÐTÐTÐTÐTÐTr,   )r   éb   gffffffî?gš™™™™™©?)Úoutrý   )r•  r–  rH  rI  rX  r  r€  r   r—  r/   ro  r{   ry   r�  r   Úmaximumr�  ÚCOLOR_RGBA2BGRÚinfer_imagerN  Únanpercentiler˜  r™  rÈ   Úclipr÷   r†  r‰  Úfloat32)r!  ry  r‹  Úinference_framer�  Úmetric_depthÚ	disparityÚbgrr˜  r™  Údepths              r*   r  zDepthGuides.processm  sê  € Ø#'Ô#7¸Ô9NÐ"OÐTXÔT^Ð`dÔ`kÐSlÒ"lÐ"l˜$˜$ÕruÔr|ð  ~Bð  EIô  EYð  [_ô  [pð  Dqõ  ADô  AOð  sPñ  sPô  sPˆÝÐkÐk°T´^Ô5I×5QÒ5QÑ5SÔ5SÐkÑkÔkÑkÔkð 
	ð 
	ØŒ|Ð1Ò1Ð1Ø[Ð[Ð[Ð[Ð[Ð[à8Ð8¸¼Ô9MÈÐ_cÐehÐjlÐklÐjlÐ_lÔOmÐosô  pDð  QRð   Sñ   Sô   Sð  TUô   V�Ø¥"¤*¨\¸4Ñ"@Ô"@Ñ@�	Ø �Lå”l ?µCÔ4FÑGÔG�Ø œNÔ0×<Ò<¸SÍSÐQUÔQeÐgkÔg|ÑM}ÔM}Ð<Ñ~Ô~�	Øð
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	øøøð 
	ð 
	ð 
	ð 
	ð ØTÐT­rÔ/?À	È7Ñ/SÔ/SÐTÑTÔT‰	ˆˆTØð 	7�D”HÐ$Ø"% tÐˆDŒH�d”i�ià˜dœh‘¨°©Ñ3ˆDŒHØ˜tœyÑ(¨4°$©;Ñ6ˆDŒIØ�T”XÑˆ	Ø•S˜œ T¤XÑ-¨tÑ4Ô4Ñ4ˆ	Ý
Œ�	˜1˜a YÐ/Ñ/Ô/Ð/ØˆØŒ?˜tœ{¨D¬JÐ7Ò7Ð7Ý”J˜y¨4¬:°t´{Ð*CÕSVÔScÐdÑdÔdˆEØÝÔ# Eµ´Ð<Ñ<Ô<Ð<s   ÂB4EÅEÅ
EN)rH  r©   rI  r©   r’  rQ   )ry  rû   r‹  rË   r€   rû   )rC  rD  rE  r"  r  r„   r,   r*   r‘  r‘  b  s<   € € € € € ð$ð $ð $ð $ð=ð =ð =ð =ð =ð =r,   r‘  Úsampleútorch.Tensorú4tuple[torch.dtype, torch.device, int, int, int, int]c                óº   — | j         dk    s| j        d         dvrt          d¦  «        ‚| j        \  }}}}|dk     rt          d¦  «        ‚| j        | j        ||||fS )Nr   r   )r   r   z2DLSS expects a [3|4, frames, height, width] tensorr   z DLSS requires at least one frame)Úndimr÷   rÕ   rþ   r?   )r®  ÚchannelsÚframesrI  rH  s        r*   Ú_sample_inforµ  ‹  sm   € Ø„{�aÒÐ˜6œ<¨œ?°&Ð8Ð8ÝÐMÑNÔNÐNØ&,¤lÑ#€Hˆf�f˜eØ�‚z€zÝÐ;Ñ<Ô<Ð<ØŒ<˜œ¨°&¸&À%ÐGÐGr,   r]  rk  c                ó^   — t          dt          j        | |z  dz  dz   ¦  «        dz  ¦  «        S )Nr   g      à?)rÈ   ÚmathÚfloor)ré   r]  s     r*   Ú_scaled_dimensionr¹  ”  s/   € Ýˆq•$”*˜T E™\¨AÑ-°Ñ3Ñ4Ô4°qÑ8Ñ9Ô9Ð9r,   rH  rI  ú tuple[int, int, int, int, float]c                ó6  — t          | |¦  «        t          ||¦  «        }}|dz  dk    r||| ||fS t          j        |dz  ¦  «        dz  }t          || z  |z  ¦  «        }||z  }|}t          ||¦  «        |k     r|dz  }t          ||¦  «        |k     °|||||fS )zMAlign the RenoDX NR output texture width while preserving the requested crop.rL  r   r   )r¹  r·  ÚceilrO  )	rH  rI  r]  Útarget_widthÚtarget_heightÚoutput_widthÚrender_widthÚworker_scaleÚrender_heights	            r*   Ú_nr_canvas_sizerÃ  ˜  sÉ   € å"3°E¸5Ñ"AÔ"AÕCTÐU[Ð]bÑCcÔCc�-€LØ�bÑ˜AÒÐØ˜]¨E°6¸5Ð@Ð@Ý”9˜\¨BÑ.Ñ/Ô/°"Ñ4€LÝ˜¨Ñ-°Ñ<Ñ=Ô=€LØ ,Ñ.€LØ€MÝ
˜M¨<Ñ
8Ô
8¸=Ò
HÐ
HØ˜Ñˆõ ˜M¨<Ñ
8Ô
8¸=Ò
HÐ
Hà˜¨°mÀ\ÐQÐQr,   Úindexú
int | Nonec                ó  — | j         d         }| d d …|f                              ¦   «         }|j        t          j        k    rY|                     d¦  «                             d¦  «                             dd¦  «                             t          j        ¦  «        }|                     d¬¦  «         	                    ddd¦  «         
                    ¦   «                              ¦   «         }|j         d d…         \  }}|p||p|}}|dk    r||f||fk    r|S t          j        ||dft          j        ¬	¦  «        }	||	d |…d |…d |…f<   |d
k    rd|	d<   ||k    r|	d |…|dz
  |…f         |	d |…|d …f<   ||k    r|	|dz
  |…         |	|d …<   |	S )Nr   r   ç     à_@éÿ   rH   ru   r   r   rý   r   ©.r   )r÷   Údetachrþ   rW   r  ÚaddÚmulÚclamprj   rj  Ú
contiguousrr  r   r  )
r®  rÄ  rH  rI  r³  Úframerô   Úsource_heightÚsource_widthry  s
             r*   Ú_frame_to_rgbarÒ  ¦  s±  € ØŒ|˜AŒ€HØ�1�1�1�e�8Ô×#Ò#Ñ%Ô%€EØ„{•e”kÒ!Ð!Ø—	’	˜!‘”× Ò  Ñ'Ô'×-Ò-¨a°Ñ5Ô5×8Ò8½¼ÑEÔEˆØ�8Š8˜5ˆ8Ñ!Ô!×)Ò)¨!¨Q°Ñ2Ô2×=Ò=Ñ?Ô?×EÒEÑGÔG€DØ"&¤*¨R¨a¨R¤.Ñ€M�<ØÐ)˜\¨6Ð+B°]ˆ6€EØ�1‚}€}˜% ˜¨\¸=Ð,IÒIÐIØˆÝŒ8�V˜U AÐ&­b¬hÐ7Ñ7Ô7€DØ59€Dˆˆ-ˆ˜˜,˜¨	¨¨	Ð	1Ñ2Ø�1‚}€}ØˆˆV‰Øˆ|ÒÐØ.2°>°M°>À<ÐRSÑCSÐT`ÐC`Ð3`Ô.aˆˆ^ˆmˆ^˜\˜]˜]Ð*Ñ+Ø�ÒÐØ# M°AÑ$5°mÐ$CÔDˆˆ]ˆ^ˆ^ÑØ€Kr,   rô   rþ   útorch.dtyper³  c                óT  — t          j        | ¦  «                             dddd¦  «        }|dk    r
|d d…         }|j        dk    r|                     |¬¦  «        }|t           j        k    r<|                     |¬¦  «                             d¦  «                             d¦  «        }|S )	Nr   r   r   r   rH   ru   rý   rÇ  )rW   ri  rj  r]   rj   r  Údiv_Úsub_)rô   rþ   r?   r³  rù   s        r*   Ú_from_rgba_framesr×  »  s�   € ÝÔ˜dÑ#Ô#×+Ò+¨A¨q°!°QÑ7Ô7€FØ�1‚}€}Ø˜˜˜”ˆØ„{�eÒÐØ—’ &�Ñ)Ô)ˆØ•”ÒÐØ—’ �Ñ'Ô'×,Ò,¨UÑ3Ô3×8Ò8¸Ñ;Ô;ˆØ€Mr,   c                  óJ   ‡ — e Zd ZdZdZdZdZdZdZdd ˆ fd„Z	d!ddœd"d„Z
ˆ xZS )#ÚNeuralRenderingSessioniD5V4iSUP4iNWD1iNWR1iFRM1iOUT1r   NrH  r©   rI  r´  r]  rk  Ú	intensityÚquality_scaleúfloat | Nonec                ó"  •— t          ||¦  «        }t          ||¦  «        }t          ||¦  «        dk    st          ||¦  «        dk    rt          d|› d|› d�¦  «        ‚t          dt          dt	          |¦  «        ¦  «        ¦  «        }t
          rt          t          ¦  «        d|d	›d
gnt          t          ¦  «        dg}	t          ¦   «          	                    |	t          ¦  «         ||c| _        | _        | j        j        �| j        j        €J ‚t
          rA| j        j                             t#          j        d| j        |||||dddd¦  «        ¦  «         n\t(          |€|n|         \  }
}| j        j                             t#          j        d| j        ||||d||dddddd|ddd¦  «        ¦  «         | j        j                             ¦   «          t
          rÄt#          j        d|                      t#          j        d¦  «        d¦  «        ¦  «        }|d         | j        k    s|d         rD|                      d¬¦  «         t9          d|d         d›d|                      ¦   «         › �¦  «        ‚|d         |d         c| _        | _        |d         |d         f}nÃt#          j        d|                      t#          j        d¦  «        d¦  «        ¦  «        }|d         | j         k    s|d         sD|                      d¬¦  «         t9          d|d         d›d|                      ¦   «         › �¦  «        ‚|d         |d         c| _        | _        |d         |d          f}|||fk    r%|                      d¬¦  «         t9          d!¦  «        ‚d S )"Ni   ià  zDLSS output Úxz exceeds the 7680x4320 limitg        r   z--nr-intensityz.4fz--wangp-videoz--videoz<10Ir   é<   z<14I4fr   g      ð¿z<6IzDLSS Neural Rendering setupr   Tr1  z0DLSS Neural Rendering depth setup failed (NGX 0xr4  r5  r   r   r   r   z<12Iz*DLSS Neural Rendering setup failed (NGX 0xé   z3DLSS worker negotiated unexpected output dimensions)!r¹  rÈ   rN  rÕ   rk  ÚUSE_DEPTH_GUIDErQ   Ú	NR_WORKERÚsuperr"  ÚHOST_DIRr¿  Úoutput_heightr  r  r    ÚwriteÚstructÚpackÚDEPTH_VIDEO_MAGICÚNR_MODESÚVIDEO_MAGICÚflushÚunpackr;  ÚcalcsizeÚDEPTH_SETUP_MAGICrc   rç   r.  rÀ  rÂ  ÚSETUP_MAGIC)r!  rH  rI  r´  r]  rÚ  rÛ  r¿  rå  r  Ú_nameÚperf_qualityÚresponseÚnegotiated_outputÚ	__class__s                 €r*   r"  zNeuralRenderingSession.__init__Î  s  ø€ Ý(¨°Ñ6Ô6ˆÝ)¨&°%Ñ8Ô8ˆÝˆ|˜]Ñ+Ô+¨dÒ2Ð2µc¸,ÈÑ6VÔ6VÐY]Ò6]Ð6]ÝÐf¨LÐfÐf¸=ÐfÐfÐfÑgÔgÐgÝ˜�S ¥e¨IÑ&6Ô&6Ñ7Ô7Ñ8Ô8ˆ	Ý]lð  N•3•y‘>”>Ð#3¸	Ð5GÐ5GÈÐYÐYÕsvõ  xAñ  tBô  tBð  DMð  sNˆÝ‰Œ×Ò˜¥(Ñ+Ô+Ð+Ø0<¸mÐ-ˆÔ˜4Ô-ØŒ|Ô!Ð-°$´,Ô2EÐ2QÐ2QÐQÝð 	@ØŒLÔ×$Ò$¥V¤[°¸Ô9OÐQVÐX^Ð`lÐn{ð  ~Dð  FGð  IKð  MNð  PQñ  &Rô  &Rñ  Sô  Sð  Sð  Så"*°MÐ4I¨5¨5È}Ô"]ÑˆE�<ØŒLÔ×$Ò$¥V¤[°¸4Ô;KÈUÐTZÐ\hÐjwÐyzð  }Cð  EQð  STð  VWð  YZð  \]ð  _`ð  bcð  enð  psð  uxð  z~ñ  &ô  &ñ  @ô  @ð  @ØŒÔ× Ò Ñ"Ô"Ð"Ýð 	9Ý”} U¨D¯OªO½F¼OÈEÑ<RÔ<RÐTqÑ,rÔ,rÑsÔsˆHØ˜Œ{˜dÔ4Ò4Ð4¸À¼Ð4Ø—
’
 �
Ñ&Ô&Ð&Ý"Ð#yÐV^Ð_`ÔVaÐ#yÐ#yÐ#yÐko×kuÒkuÑkwÔkwÐ#yÐ#yÑzÔzÐzØ4<¸Q´KÀÈ!ÄÐ1ˆDÔ˜tÔ1Ø (¨¤¨X°a¬[Ð 8ÐÐå”} V¨T¯_ª_½V¼_ÈVÑ=TÔ=TÐVsÑ-tÔ-tÑuÔuˆHØ˜Œ{˜dÔ.Ò.Ð.°h¸q´kÐ.Ø—
’
 �
Ñ&Ô&Ð&Ý"Ð#sÐPXÐYZÔP[Ð#sÐ#sÐ#sÐei×eoÒeoÑeqÔeqÐ#sÐ#sÑtÔtÐtØ4<¸Q´KÀÈ!ÄÐ1ˆDÔ˜tÔ1Ø (¨¤¨X°a¬[Ð 8ÐØ ¨}Ð =Ò=Ð=Ø�JŠJ˜TˆJÑ"Ô"Ð"ÝÐTÑUÔUÐUð >Ð=r,   ©r­  rÄ  ry  rû   rw  r‹  rË   rù   rú   r­  r€   c          
     óò  — | j         j        �| j         j        €J ‚| j         j                             t	          j        d| j        |t          |¦  «        d|¦  «        ¦  «         | j         j                             t          t          j
        |t          j        ¬¦  «        ¦  «                             d¦  «        ¦  «         | j         j                             t          t          j
        |t          j        ¬¦  «        ¦  «                             d¦  «        ¦  «         t          rn|€t          d¦  «        ‚| j         j                             t          t          j
        |t          j        ¬¦  «        ¦  «                             d¦  «        ¦  «         | j         j                             ¦   «          t	          j        d|                      t	          j        d¦  «        d|› �¦  «        ¦  «        \  }}}	}
}}| j        | j        z  dz  }|| j        k    s||k    s|	r|
|k    s|d	k    r+t1          d
|› d|d›d|                      ¦   «         › �¦  «        ‚t5          | j         j        | j        | j        df|¦  «        S )Nz<4Iqr   rý   rÿ   z7DLSS Neural Rendering depth mode requires a depth guidez<5IqzDLSS Neural Rendering frame r   r   z&DLSS Neural Rendering failed on frame z (NGX 0xr4  r5  )r  r  r    ræ  rç  rè  ÚFRAME_MAGICr©   r  r   r‰  r  r  rT  rá  rÕ   r¨  rì  rí  r;  rî  r¿  rå  Ú	OUT_MAGICrç   r.  r	  )r!  rÄ  ry  rw  r‹  rù   r­  ÚmagicÚ	out_indexÚokÚ
byte_countÚ
ngx_resultÚ_ptsÚexpecteds                 r*   Úprocess_framez$NeuralRenderingSession.process_frameð  s\  € ØŒ|Ô!Ð-°$´,Ô2EÐ2QÐ2QÐQØŒÔ× Ò ¥¤¨V°TÔ5EÀuÍcÐRWÉjÌjÐZ[Ð]bÑ!cÔ!cÑdÔdÐdØŒÔ× Ò ¥­BÔ,@ÀÍRÌXÐ,VÑ,VÔ,VÑ!WÔ!W×!\Ò!\Ð]`Ñ!aÔ!aÑbÔbÐbØŒÔ× Ò ¥­BÔ,@ÀÍrÌzÐ,ZÑ,ZÔ,ZÑ![Ô![×!`Ò!`ÐadÑ!eÔ!eÑfÔfÐfÝð 	jØˆ}Ý Ð!ZÑ[Ô[Ð[ØŒLÔ×$Ò$¥ZµÔ0DÀUÕRTÔR\Ð0]Ñ0]Ô0]Ñ%^Ô%^×%cÒ%cÐdgÑ%hÔ%hÑiÔiÐiØŒÔ× Ò Ñ"Ô"Ð"Ý=C¼]È6ÐSW×SbÒSbÕciÔcrÐsyÑczÔczð  }cð  \að  }cð  }cñ  Tdô  Tdñ  >eô  >eÑ:ˆˆy˜"˜j¨*°dØÔ$ tÔ'9Ñ9¸AÑ=ˆØ�D”NÒ"Ð" i°5Ò&8Ð&8ÀÐ&8ÀjÐT\ÒF\ÐF\Ð`jÐnoÒ`oÐ`oÝÐyÈÐyÐyÐWaÐyÐyÐyÐko×kuÒkuÑkwÔkwÐyÐyÑzÔzÐzÝ˜4œ<Ô.°Ô1CÀTÔEVÐXYÐ0ZÐ\bÑcÔcÐcr,   )r   N)rH  r©   rI  r©   r´  r©   r]  rk  rÚ  rk  rÛ  rÜ  r¯   )rÄ  r©   ry  rû   rw  rû   r‹  rË   rù   rú   r­  rú   r€   rû   )rC  rD  rE  rë  rð  ré  rï  rø  rù  r"  r  Ú__classcell__©rõ  s   @r*   rÙ  rÙ  Æ  sŸ   ø€ € € € € Ø€KØ€KØ"ÐØ"ÐØ€KØ€Ið Vð  Vð  Vð  Vð  Vð  Vð  VðDdð  \`ð dð dð dð dð dð dð dð dð dð dr,   rÙ  r   )rÚ  Úabort_callbackÚprogress_callbackÚstill_imager’  rJ  rÚ  útorch.Tensor | Nonec               ób	  — t          d¬¦  «         t          | ¦  «        \  }}	}
}}}t          |||¦  «        \  }}}}}t          ||||||¦  «        }d}	 t	          j        |||dft          j        ¬¦  «        }|j        |j        f||fk    rd n,t	          j        |j        |j        dft          j        ¬¦  «        }||f||fk    r1t          d|› d|› d|› d|› d|j        › d|j        › d	|› d|› �¦  «         |rd nt          |j        |j        |¦  «        }|r-t	          j        |j        |j        d
ft          j        ¬¦  «        nd }t          rt!          |j        |j        |¦  «        nd }t#          |¦  «        D �]Ñ}|�v |¦   «         rl 	 |                     | ¬¦  «         t'          j        t+          t,          ¦  «        ¦  «         d S # t'          j        t+          t,          ¦  «        ¦  «         w xY wt/          | ||j        |j        ¦  «        }|r|dfn|                     |¦  «        \  }}|�|                     ||¦  «        nd }|�v |¦   «         rl 	 |                     | ¬¦  «         t'          j        t+          t,          ¦  «        ¦  «         d S # t'          j        t+          t,          ¦  «        ¦  «         w xY w|                     |||||€||         n||¬¦  «        }|
dk    r6t5          j        |d         |j        |j        ft4          j        ¬¦  «        |d<   |�|d |…d |…f         ||<   |� |d|dz   |¦  «         ~~~~�ŒÓ|�v |¦   «         rl	 	 |                     | ¬¦  «         t'          j        t+          t,          ¦  «        ¦  «         d S # t'          j        t+          t,          ¦  «        ¦  «         w xY wd}	 |                     | ¬¦  «         t'          j        t+          t,          ¦  «        ¦  «         n™# t'          j        t+          t,          ¦  «        ¦  «         w xY w# 	 |                     | ¬¦  «         t'          j        t+          t,          ¦  «        ¦  «         w # t'          j        t+          t,          ¦  «        ¦  «         w xY wxY wt;          |||	|
¦  «        S )NFræ   r   rý   z$[DLSS 5] Edge padding render canvas rÞ  z -> z; output canvas z is cropped to r   r1  Trö  rÉ  r|  zDLSS 5 Neural Renderingr   )rè   rµ  rÃ  rÙ  r   r  r  r¿  rå  ÚprintrG  rÀ  rÂ  rS  rT  rá  r‘  Úrangerc   r   Úunload_vramÚlistr8   rÒ  r  r  rX  r  ÚINTER_LANCZOS4r×  ) r®  r]  r  r’  rJ  rÚ  r  r  rþ   r?   r³  Úframe_countrI  rH  r¿  rå  rÀ  rÂ  rÁ  ÚsessionÚ	completedrù   Úwork_outputÚflow_guidesÚzero_motionÚdepth_guidesrÄ  Úrender_framerw  r‹  r­  Ú	processeds                                    r*   Úneural_renderr    s±  € Ý˜UÐ#Ñ#Ô#Ð#Ý:FÀvÑ:NÔ:NÑ7€Eˆ6�8˜[¨&°%ÝM\Ð]bÐdjÐlqÑMrÔMrÑJ€L�- ¨}¸lÝ$ \°=À+È|Ð]fÐhmÑnÔn€GØ€Ið@Ý”˜;¨°|ÀQÐGÍrÌxÐXÑXÔXˆØ&Ô3°WÔ5JÐKÐP\Ð^kÐOlÒlÐl�d�dÕrtÔrzð  }Dô  }Rð  T[ô  Thð  jkð  |lõ  tvô  t|ð  s}ñ  s}ô  s}ˆØ˜-Ð(¨U°F¨OÒ;Ð;Ýð  W¸ð  Wð  WÀð  Wð  WÈ\ð  Wð  WÐ\ið  Wð  Wð  |Cô  |Pð  Wð  Wð  SZô  Shð  Wð  Wð  yEð  Wð  Wð  HUð  Wð  Wñ  Xô  Xð  XØ)Ðu�d�d­z¸'Ô:NÐPWÔPeÐgtÑ/uÔ/uˆØfqÐ{•b”h Ô 5°wÔ7KÈQÐOÕWYÔWaÐbÑbÔbÐbÐw{ˆÝetÐ~•{ 7Ô#7¸Ô9NÐP`ÑaÔaÐaÐz~ˆÝ˜;Ñ'Ô'ð 	7ñ 	7ˆEØÐ)¨n¨nÑ.>Ô.>Ð)Øð$	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøõ) *¨&°%¸Ô9MÈwÔOdÑeÔeˆLØ3>Ðe˜[¨$Ð/Ð/ÀK×DWÒDWÐXdÑDeÔDe‰MˆF�EØAMÐAY�L×(Ò(¨°uÑ=Ô=Ð=Ð_cˆEØÐ)¨n¨nÑ.>Ô.>Ð)Øð	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøð  ×-Ò-¨e°\À6È5ÐcnÐcvÐRXÐY^ÔR_ÐR_ð  }Hð  PUÐ-ñ  Vô  VˆIØ˜1Š}ˆ}Ý$'¤J¨|¸FÔ/CÀgÔFZÐ\cÔ\qÐErõ  CFô  CUð  %Vñ  %Vô  %V�	˜&Ñ!ØÐ&Ø )¨.¨=¨.¸-¸<¸-Ð*GÔ H��u‘Ø Ð,Ø!Ð!Ð";¸UÀQ¹YÈÑTÔTÐTØ˜f e¨Y©YØÐ%¨.¨.Ñ*:Ô*:Ð%Øð	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøð ˆ	ð	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøøð	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøøøøÝ˜V U¨F°HÑ=Ô=Ð=si   ÁD5P1 ÆG
 Ç
(G2Ç5A!P1 ÉJ Ê(J>ËBP1 ÍN Î(OÏP1 ÏP Ð(P.Ð1RÐ3Q1Ñ
'RÑ1(RÒRc                  ó:   ‡ — e Zd ZdZdZdZdZdˆ fd
„Zddd„Zˆ xZ	S )ÚFrameGenerationSessioniFGS1iFGR1iFGF1iFGO1rH  r©   rI  r´  Úgenerated_countc                óä  •— t          ¦   «                              t          t          ¦  «        dgt          ¦  «         ||c| _        | _        || _        | j        j	        �| j        j
        €J ‚| j        j	                             t          j        d| j        ||t          d|¦  «        |¦  «        ¦  «         | j        j	                             ¦   «          t          j        d|                      t          j        d¦  «        d¦  «        ¦  «        \  }}}}|| j        k    s|s||k     rI|                      d¬¦  «         t-          d|dz   › d	|› d
|dz   › d|                      ¦   «         › �¦  «        ‚d S )Nz--servez<5Ir   ú<4IzDLSS Frame Generation setupTr1  zDLSS Frame Generation zx setup failed (status z, runtime maximum zx).
)rã  r"  rQ   r›   rœ   rH  rI  r  r  r  r    ræ  rç  rè  rð  rÈ   rì  rí  r;  rî  ÚSETUP_OUT_MAGICrc   rç   r.  )
r!  rH  rI  r´  r  rú  Ústatusr£  Ú	_reservedrõ  s
            €r*   r"  zFrameGenerationSession.__init__0  sÁ  ø€ Ý‰Œ×Ò�#�lÑ+Ô+¨YÐ7½ÑCÔCÐCØ"'¨ÐˆŒ
�D”KØ.ˆÔØŒ|Ô!Ð-°$´,Ô2EÐ2QÐ2QÐQØŒÔ× Ò ¥¤¨U°DÔ4DÀeÈVÕUXÐYZÐ\bÑUcÔUcÐetÑ!uÔ!uÑvÔvÐvØŒÔ× Ò Ñ"Ô"Ð"Ý,2¬M¸%ÀÇÂÕQWÔQ`ÐafÑQgÔQgð  jGñ  BHô  BHñ  -Iô  -IÑ)ˆˆv�w 	Ø�DÔ(Ò(Ð(¨FÐ(°gÀÒ6OÐ6OØ�JŠJ˜TˆJÑ"Ô"Ð"Ýð   _¸È!Ñ8Kð   _ð   _Ðdjð   _ð   _ð  Fð  IJñ  Jð   _ð   _ð  QU÷  Q[ò  Q[ñ  Q]ô  Q]ð   _ð   _ñ  `ô  `ð  `ð 7PÐ6Or,   NrÄ  ry  rû   rw  Ú	timestampr   r‹  rË   rù   rú   r€   c                ó†  — | j         j        �| j         j        €J ‚| j         j                             t	          j        d| j        |t          |¦  «        d|j        |j	        ¦  «        ¦  «         | j         j                             t          t          j        |t          j        ¬¦  «        ¦  «                             d¦  «        ¦  «         | j         j                             t          t          j        |t          j        ¬¦  «        ¦  «                             d¦  «        ¦  «         | j         j                             ¦   «          t	          j        d|                      t	          j        d¦  «        d|› �¦  «        ¦  «        \  }}}	}
|| j        k    s|r*t+          d|› d|› d	|                      ¦   «         › �¦  «        ‚|
s|	dk    rdS |	| j        k    rt+          d
|	› d| j        › d�¦  «        ‚|€t+          d¦  «        ‚t1          |	¦  «        D ]0}t3          | j         j        | j        | j        df||         ¦  «         Œ1|	S )Nz<4I2qr   rý   rÿ   r  zDLSS Frame Generation frame z&DLSS Frame Generation failed on frame z	 (status r5  zDLSS Frame Generation returned z frames when z were requestedzCDLSS Frame Generation returned a frame without a destination bufferr   )r  r  r    ræ  rç  rè  rø  r©   Ú	numeratorÚdenominatorr  r   r‰  r  r  rT  rì  rí  r;  rî  ÚFRAME_OUT_MAGICrç   r.  r  r
  r	  rI  rH  )r!  rÄ  ry  rw  r   r‹  rù   rú  r  Ú	generatedÚdisableds              r*   r  z$FrameGenerationSession.process_frame<  sX  € ØŒ|Ô!Ð-°$´,Ô2EÐ2QÐ2QÐQØŒÔ× Ò ¥¤¨W°dÔ6FÈÍsÐSXÉzÌzÐ[\Ð^gÔ^qÐs|ô  tIñ  "Jô  "Jñ  	Kô  	Kð  	KØŒÔ× Ò ¥­BÔ,@ÀÍRÌXÐ,VÑ,VÔ,VÑ!WÔ!W×!\Ò!\Ð]`Ñ!aÔ!aÑbÔbÐbØŒÔ× Ò ¥­BÔ,@ÀÍrÌzÐ,ZÑ,ZÔ,ZÑ![Ô![×!`Ò!`ÐadÑ!eÔ!eÑfÔfÐfØŒÔ× Ò Ñ"Ô"Ð"Ý-3¬]¸5À$Ç/Â/ÕRXÔRaÐbgÑRhÔRhð  kQð  JOð  kQð  kQñ  CRô  CRñ  .Sô  .SÑ*ˆˆv�y (Ø�DÔ(Ò(Ð(¨FÐ(ÝÐrÈÐrÐrÐX^ÐrÐrÐdh×dnÒdnÑdpÔdpÐrÐrÑsÔsÐsØð 	�y A’~�~Ø�1Ø˜Ô,Ò,Ð,ÝÐ~ÀÐ~Ð~ÐY]ÔYmÐ~Ð~Ð~ÑÔÐØˆ>ÝÐdÑeÔeÐeÝ˜9Ñ%Ô%ð 	Zð 	ZˆEÝ˜œÔ+¨d¬k¸4¼:ÀqÐ-IÈ6ÐRWÌ=ÑYÔYÐYÐYØÐr,   )rH  r©   rI  r©   r´  r©   r  r©   r¯   )rÄ  r©   ry  rû   rw  rû   r   r   r‹  rË   rù   rú   r€   r©   )
rC  rD  rE  rð  r  rø  r$  r"  r  r  r  s   @r*   r  r  *  sp   ø€ € € € € Ø€KØ €OØ€KØ €Oð
`ð 
`ð 
`ð 
`ð 
`ð 
`ðð ð ð ð ð ð ð ð r,   r  r  Úfpsc	                óV  — |dz
  }	t          ||| |	¦  «        }
d}	 t          |||¦  «        }t          j        | dz
  |z  dz   ||dft          j        ¬¦  «        }t          | ¦  «        D �]m}|�v |¦   «         rl 	 |
                     | ¬¦  «         t          j        t          t          ¦  «        ¦  «         d S # t          j        t          t          ¦  «        ¦  «         w xY w ||¦  «        }|                     |¦  «        \  }}||z  }|||<   |dk    rE|
                     |||t          |d¦  «        t          t          |¦  «        ¦  «        z  |¦  «         nf|||	z
  |…         }|
                     |||t          |d¦  «        t          t          |¦  «        ¦  «        z  ||¦  «        }|s|s|||z
           |d d …<   |� |d|dz   | ¦  «         ~~�Œo|�v |¦   «         rl	 	 |
                     | ¬¦  «         t          j        t          t          ¦  «        ¦  «         d S # t          j        t          t          ¦  «        ¦  «         w xY wd}	 |
                     | ¬¦  «         t          j        t          t          ¦  «        ¦  «         n™# t          j        t          t          ¦  «        ¦  «         w xY w# 	 |
                     | ¬¦  «         t          j        t          t          ¦  «        ¦  «         w # t          j        t          t          ¦  «        ¦  «         w xY wxY w|S )	Nr   Fr   rý   r1  r   zDLSS Frame GenerationT)r  rG  r   r  r  r
  rc   r   r  r  r8   r  r  r   rQ   )r  rH  rI  Úframe_getterr'  r]  rJ  r  r  r  r  r  Úguidesrù   rÄ  rÏ  rw  r‹  Útarget_indexÚgenerated_outputr%  s                        r*   Ú_interpolater-  P  sY  € Ø˜a‘i€OÝ$ U¨F°KÀÑQÔQ€GØ€Ið@Ý˜E 6¨=Ñ9Ô9ˆÝ”˜K¨!™O¨uÑ4°qÑ8¸&À%ÈÐKÕSUÔS[Ð\Ñ\Ô\ˆÝ˜;Ñ'Ô'ð 	ñ 	ˆEØÐ)¨n¨nÑ.>Ô.>Ð)Øð&	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøð+ !�L Ñ'Ô'ˆEØ"ŸNšN¨5Ñ1Ô1‰MˆF�EØ  5™=ˆLØ#(ˆF�<Ñ Ø˜ŠzˆzØ×%Ò% e¨U°F½HÀUÈAÑ<NÔ<NÕQYÕZ]Ð^aÑZbÔZbÑQcÔQcÑ<cÐejÑkÔkÐkÐkà#)¨,¸Ñ*HÈÐ*UÔ#VÐ Ø#×1Ò1°%¸ÀÍÐQVÐXYÑHZÔHZÕ]eÕfiÐjmÑfnÔfnÑ]oÔ]oÑHoÐqvð  yIñ  Jô  J�	Øð G 	ð GØ*0°ÀÑ1EÔ*FÐ$ Q Q QÑ'Ø Ð,Ø!Ð!Ð"9¸5À1¹9ÀkÑRÔRÐRØ�v‘vØÐ%¨.¨.Ñ*:Ô*:Ð%Øð	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøð ˆ	ð	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøøð	@Ø�MŠM I ˆMÑ.Ô.Ð.åÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øÕÔ(­­oÑ)>Ô)>Ñ?Ô?Ð?Ð?øøøøøøØ€MsU   ›AJ; Á9B8 Â8(C Ã#D J; Ç%H$ È$(IÉJ; ÉJ Ê(J8Ê;L&Ê=K;Ë'L&Ë;(L#Ì#L&©r  r  Úprevious_last_frameú/tuple[torch.Tensor | None, torch.Tensor, float]c               ó^  ‡ ‡‡— t          d¬¦  «         t          ‰ ¦  «        \  }}}	}
}}‰ d d …dd …f                              ¦   «         }‰d uŠ|
t          ‰¦  «        z   }ˆˆˆ fd„}t	          |||||||||¬¦	  «	        }|€d |||z  fS ‰r
|dd …         }t          ||||	¦  «        }||||z  fS )NTræ   r0   c                óF   •— t          ‰r| dk    r‰n‰‰r| dz
  n| ¦  «        S )Nr   r   )rÒ  )rÄ  Úhas_previousr/  r®  s    €€€r*   Úinput_framez#frame_generate.<locals>.input_framez  sK   ø€ Ý°\Ð\ÀeÈqÂjÀjÐ1Ð1ÐV\Ðkwð  _CÐ^cÐfgÑ^gÐ^gð  ~Cñ  Dô  Dð  	Dr,   r.  r   )rè   rµ  Úcloner©   r-  r×  )r®  r/  r'  r]  rJ  r  r  rþ   r?   r³  r  rI  rH  Únext_previousÚinput_countr4  rù   r¦   r3  s   ``                @r*   Úframe_generater8  s  s  øøø€ Ý˜TÐ"Ñ"Ô"Ð"Ý:FÀvÑ:NÔ:NÑ7€Eˆ6�8˜[¨&°%Ø˜1˜1˜1˜b˜c˜c˜6”N×(Ò(Ñ*Ô*€MØ&¨dÐ2€LØ¥ LÑ 1Ô 1Ñ1€KðDð Dð Dð Dð Dð Dð Dõ ˜+ u¨f°kÀ3ÈÈ}Ðm{ð  Pað  bñ  bô  b€FØ€~Ø�] C¨%¡KÐ/Ð/Øð Ø˜˜˜”ˆÝ˜v u¨f°hÑ?Ô?€FØ�= #¨¡+Ð-Ð-r,   )r?   r@   )r~   r   r€   r�   )r€   rŠ   )r€   r©   )r€   rË   )r€   rÎ   )rØ   rË   r€   rQ   )rØ   rË   r€   rä   )ré   r©   r€   rê   r¯   )r÷   rø   rù   rú   r€   rû   )r®  r¯  r€   r°  )ré   r©   r]  rk  r€   r©   )rH  r©   rI  r©   r]  rk  r€   rº  )NN)
r®  r¯  rÄ  r©   rH  rÅ  rI  rÅ  r€   rû   )
rô   rû   rþ   rÓ  r?   r@   r³  r©   r€   r¯  )r®  r¯  r]  rk  r  rË   r’  rQ   rJ  rQ   rÚ  rk  r€   r  )r  r©   rH  r©   rI  r©   r'  rk  r]  r©   rJ  rQ   r€   rú   )r®  r¯  r/  r  r'  rk  r]  r©   rJ  rQ   r€   r0  )UÚ
__future__r   r  rU   rž   r·  r—   ÚplatformrÂ   rç  r™   Úsysr  Ú	fractionsr   Ú	functoolsr   Úpathlibr   rX  rr  r   rW   Úmmgpr   rT   r   Úshared.utils.media_controlr	   r
   r   Ú__file__ÚresolveÚparentsÚRUNTIMErä  ÚDLSS_DIRrœ   rá  r'   ÚLEGACY_NR_WORKERÚDEPTH_NR_WORKERrâ  r˜   re   ÚlowerrÁ   r›   rÜ   r–   rê  r”  ÚMOTION_VECTOR_METHODSrp  rR   rg   r8   r(   r+   r>   ra   r:   r}   rˆ   r¨   rÊ   rÍ   r×   rã   rè   rö   r	  r  rG  r‘  rµ  r¹  rÃ  rÒ  r×  rÙ  r  r  r-  r8  r„   r,   r*   ú<module>rJ     sÅ  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 
€
€
€
Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eð ˆ$ˆx‰.Œ.×
 Ò
 Ñ
"Ô
"Ô
*¨1Ô
-°Ñ
7€Ø�VÑ€Ø�VÑ€Ø�gÑ€	Ø€ØÐ Ø˜kÑ)Ð ØÐ2Ñ2€Ø.ÐDˆOˆOÐ4D€	ØŒl˜gÒ%€Ø	Ð	B˜Ð(8¨Ô(8Ñ(:Ô(:×(@Ò(@Ñ(BÔ(BÐB€Ø¨kÐQ˜N˜NÐ?QÑR€ð ˆzÑØÐ%Ñ%ØÐ!Ñ!ØÐÑØð€ð ÀÐcÐ=Ð=ÐRcÑdÐfrÐs€ð 
Ø	ØØ	Ø	!ðð €ð &'°¸aÐ@Ð@Ð Ø,Ð Ø€Ø€Ø€Ø€ØÐ ð*ð *ð *ðOð Oð Oð ðð ð ñ Ôððð ð ð ðð ð ñ Ôðð(:ð :ð :ð :ð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔð"ð "ð "ñ Ôð"ð:ð ð ð ð €�1ÐÑÔð
ð 
ð 
ñ Ôð
ðð ð ð ð:Jð Jð Jð Jðð ð ð ð	ð 	ð 	ð 	ð 	ð,fð ,fð ,fð ,fð ,fñ ,fô ,fð ,fð^3ð 3ð 3ð 3ð 3ñ 3ô 3ð 3ðl&=ð &=ð &=ð &=ð &=ñ &=ô &=ð &=ðRHð Hð Hð Hð:ð :ð :ð :ðRð Rð Rð Rðð ð ð ð ð*ð ð ð ð8dð 8dð 8dð 8dð 8d˜Vñ 8dô 8dð 8dðv KNð  _cð  w{ð &>ð &>ð &>ð &>ð &>ð &>ðR#ð #ð #ð #ð #˜Vñ #ô #ð #ðL ð  ð  ð  ð  ðF RVð  jnð .ð .ð .ð .ð .ð .ð .ð .r,   