§
     ’Þjó  ã                  ól   — d dl mZ d dlmZ ddlmZmZmZm	Z	m
Z
mZmZmZ  G d„ dej        ¦  «        ZdS )é    )Úannotations)Úspatial_upsamplersé   )ÚDEPTH_RESOLUTION_DIVISORSÚMOTION_VECTOR_METHODSÚNR_MODESÚUSE_DEPTH_GUIDEÚconfigure_depth_estimatorÚneural_renderÚrelease_flow_modelÚunavailable_reasonc                  óä   — e Zd ZdZg d¢ZddgZdZdd„Zed„ ¦   «         Z	ed	„ ¦   «         Z
d
„ Zdd„Zddddœd„Zed„ ¦   «         Zed„ ¦   «         Zddœd„Zed„ ¦   «         Zd„ Zdddddœd„Zd„ ZdS )ÚDLSS5SpatialUpsamplerÚdlss5))zFull ResÚfull)zHalf Res (default)Úhalf)zQuarter ResÚquarter)zOriginal (default, faster)Úoriginal)zRAFT (better quality)ÚraftTNc                ó:   — || _         |�t          |¦  «         d S d S ©N)Úserver_configr
   )Úselfr   Úfiles_locators      úNC:\Users\johnn\OneDrive\Documents\AI\postprocessing\dlss5\spatial_upsampler.pyÚ__init__zDLSS5SpatialUpsampler.__init__   s,   € Ø*ˆÔØÐ$Ý% mÑ4Ô4Ð4Ð4Ð4ð %Ð$ó    c                ó   — dddœS )Nr   r   ©Údepth_resolutionÚmotion_vector© )Úclss    r   Údefault_configz$DLSS5SpatialUpsampler.default_config   s   € à$*¸ZÐHÐHÐHr   c                ój  — i |                       ¦   «         ¥t          |pi ¦  «        ¥}t          |d         ¦  «                             ¦   «                              ¦   «         }t          |d         ¦  «                             ¦   «                              ¦   «         }|t
          v r|nd|t          v r|nddœS )Nr    r!   r   r   r   )r$   ÚdictÚstrÚstripÚlowerr   r   )r#   Úconfigr    r!   s       r   Únormalize_config_sectionz.DLSS5SpatialUpsampler.normalize_config_section   s¶   € à?�C×&Ò&Ñ(Ô(Ð?­D°°¸2Ñ,>Ô,>Ð?ˆÝ˜vÐ&8Ô9Ñ:Ô:×@Ò@ÑBÔB×HÒHÑJÔJÐÝ˜F ?Ô3Ñ4Ô4×:Ò:Ñ<Ô<×BÒBÑDÔDˆà4DÕHaÐ4aÐ4aÐ 0Ð 0ÐgmØ.;Õ?TÐ.TÐ.T˜]˜]ÐZdð
ð 
ð 	
r   c                ó6   — t          j        | j        | ¦  «        S r   )ÚapiÚread_config_sectionr   ©r   s    r   r*   zDLSS5SpatialUpsampler.config    s   € ÝÔ& tÔ'9¸4Ñ@Ô@Ð@r   c                óÌ   — ddl m} t          r |d| j        ¦  «        gng }|                      ¦   «         d         dk    r$|                      |d| j        ¦  «        ¦  «         |S )Nr   )Úquery_preprocessor_download_defÚdepthr!   r   Úflow)Úpreprocessing.processorsr1   r	   r   r*   Úappend)r   Úenabled_onlyr1   Údefinitionss       r   Úquery_download_defsz)DLSS5SpatialUpsampler.query_download_defs#   s{   € ØLÐLÐLÐLÐLÐLåXgÐoÐ6Ð6°wÀÔ@RÑSÔSÐTÐTÐmoˆØ�;Š;‰=Œ=˜Ô)¨VÒ3Ð3Ø×ÒÐ>Ð>¸vÀtÔGYÑZÔZÑ[Ô[Ð[ØÐr   )Úsend_cmdÚstatus_textÚgenc               óV   — ddl m}  ||                      ¦   «         ||pd||¬¦  «        S )Nr   )Úprocess_files_def_if_neededzDownloading DLSS 5 Model Files)r9   r:   r;   Úprocess_files)Úshared.utils.downloadr=   r8   )r   r>   r9   r:   r;   Ú_kwargsr=   s          r   ÚdownloadzDLSS5SpatialUpsampler.download+   sb   € ØEÐEÐEÐEÐEÐEà*Ð*¨4×+CÒ+CÑ+EÔ+EÐPXÐfqð  gVð  vVð  \_ð  o|ð  }ñ  }ô  }ð  	}r   c                ó@   — | j         rt          j        nt          j        S r   )Úreason_disabledr-   ÚPROCESSOR_STATUS_DISABLEDÚPROCESSOR_STATUS_ENABLEDr/   s    r   ÚstatuszDLSS5SpatialUpsampler.status0   s   € à04Ô0DÐf�sÔ,Ð,Í#ÔJfÐfr   c                ó"   — t          d¬¦  «        S )NF©Útemporal)r   r/   s    r   rC   z%DLSS5SpatialUpsampler.reason_disabled4   s   € å!¨5Ð1Ñ1Ô1Ð1r   F)Úlock_configc          	     óZ  — |                      ¦   «         5  |                     ¦   «         5  |                     | j        |d         dd| ¬¦  «        }|                     | j        |d         dd| ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d|fd|fgS )Nr    z!DLSS 5 Depth Resolution Precisionz†Run depth extraction at the render resolution, or resize each frame to half/quarter width and height for lower latency and memory use.)ÚchoicesÚvalueÚlabelÚinfoÚinteractiver!   zDLSS 5 Motion VectorzeOriginal uses the faster OpenCV DIS estimator. RAFT generally produces higher-quality motion vectors.)ÚGroupÚRowÚDropdownÚDEPTH_RESOLUTION_CHOICESÚMOTION_VECTOR_CHOICES)r   Úgrr*   rJ   r    r!   s         r   Úcreate_config_uiz&DLSS5SpatialUpsampler.create_config_ui8   s…  € Ø�XŠX‰ZŒZð 	Xð 	XØ—’‘”ð Xð XØ#%§;¢;°tÔ7TÐ\bÐcuÔ\vð  bð  iqð  CNð  N ;ñ  $Oô  $OÐ Ø "§¢°DÔ4NÐV\Ð]lÔVmð  vLð  Szð  LWð  HW ñ  !Xô  !X�ðXð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð Xð	Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xøøøð 	Xð 	Xð 	Xð 	Xð $Ð%5Ð6¸È-Ð8XÐYÐYs5   •BªABÁ7BÂB	ÂBÂ
B	ÂBÂBÂ!Bc                óV  — t          d¬¦  «        }d|rd|› d�ndz   }dt          j        fdt          j        dd	| j        d	i|| j        fg| j        t          t          ¦  «        id
t          j        d| j        ddddt          j        t          j	        t          j
        fddddddddœgidœS )NFrH   zDLSS 5 Neural Renderingz (ú)Ú )ÚvideoÚimager   i'  zdlss5*1zþDLSS 5 Neural Rendering. At x1 it refines at native resolution; higher modes refine and upscale. Requires Windows and a compatible NVIDIA RTX GPU. WSL can use the Windows worker through Windows interoperability; this is not native Linux Neural Rendering.Úspatial_upsampler_dlss_strengthÚ	intensityÚnumberÚsliderç      ð?g        g       @gš™™™™™©?zDLSS 5 NR IntensityznControls the native Neural Rendering intensity. 1 is the native default; values up to 2 strengthen the effect.)ÚnameÚsettingÚtypeÚ	componentÚuiÚrequiredÚdefaultÚminimumÚmaximumÚsteprN   Údescription)rb   Úupsampler_typesÚmediaÚprofileÚ
config_keyÚposÚ
method_posÚmethodsÚmultipliersÚdefault_spatial_upsamplingÚpostprocessing_categoryrl   Úmethod_parameters)r   r-   ÚUPSAMPLER_TYPE_POSTPROCESSINGÚUPSAMPLER_PROFILE_VIDEOÚMETHODÚtupler   Ú!POSTPROCESSING_CATEGORY_UPSAMPLERÚPARAMETER_UI_POSTPROCESSINGÚ PARAMETER_UI_LATE_POSTPROCESSINGÚPARAMETER_UI_MEDIA_FLOW)r#   ÚreasonrN   s      r   Úquery_upsampler_defz)DLSS5SpatialUpsampler.query_upsampler_def?   s  € å#¨UÐ3Ñ3Ô3ˆØ)¸vÐ-M¨^°&¨^¨^¨^¨^È2ÑNˆà-Ý #Ô AÐCØ'ÝÔ2Ø!ØØœ: vÐ.Ø ¤
Ð+Ð,ØœJ­­h©¬Ð8Ø*3Ý'*Ô'Lð \Ø"%¤*Ø:À{Ð\dÐs{õ  EHô  Edõ  fiô  fJõ  LOô  Lgð  Dhð  v{ð  HKð  X[ð  hkð  uyð  DYð  jZð  [ð  [ð/ð "ð
ð 
ð 	
r   c                óŒ   — |                       |¦  «        }|�|d         t          vrd|› �S t          d¬¦  «        }|rd|› d�ndS )Nr   z&Unknown DLSS 5 Neural Rendering mode: FrH   z(DLSS 5 Neural Rendering is unavailable: z. See docs/DLSS5.md.rZ   )Úsplit_valuer   r   )r   Úspatial_upsamplingÚ
image_modeÚsplitr€   s        r   Úvalidate_upsamplingz)DLSS5SpatialUpsampler.validate_upsamplingU   se   € Ø× Ò Ð!3Ñ4Ô4ˆØˆ=˜E !œH­HÐ4Ð4ØPÐ<NÐPÐPÐPÝ#¨UÐ3Ñ3Ô3ˆØZ`ÐhÐV¸&ÐVÐVÐVÐVÐfhÐhr   ra   )Ústill_imager^   Úabort_callbackÚprogress_callbackc          
     ó  — |                       |t          |¦  «        ¦  «        }|rt          |¦  «        ‚|                      ¦   «         }	t	          ||                      |¦  «        d         ||	d         |	d         |||¬¦  «        }
|
d fS )Nr   r    r!   )rˆ   r    r!   r^   r‰   rŠ   )r‡   ÚintÚRuntimeErrorr*   r   rƒ   )r   Úsampler„   rˆ   r^   r‰   rŠ   ÚkwargsÚerrorr*   Úoutputs              r   ÚupscalezDLSS5SpatialUpsampler.upscale\   s¾   € Ø×(Ò(Ð);½SÀÑ=MÔ=MÑNÔNˆØð 	&Ý˜uÑ%Ô%Ð%Ø—’‘”ˆÝ˜v t×'7Ò'7Ð8JÑ'KÔ'KÈAÔ'NÐ\gð  {Að  BTô  {Uð  ekð  l{ô  e|ð  HQð  bpð  DUð  Vñ  Vô  VˆØ�tˆ|Ðr   c                ó"   — t          ¦   «          d S r   )r   r/   s    r   Úrelease_vramz"DLSS5SpatialUpsampler.release_vramd   s   € ÝÑÔÐÐÐr   )NN)T)Ú__name__Ú
__module__Ú__qualname__rz   rT   rU   Úbatch_image_inputsr   Úclassmethodr$   r+   r*   r8   rA   ÚpropertyrF   rC   rW   r�   r‡   r’   r”   r"   r   r   r   r      s—  € € € € € Ø€FØqÐqÐqÐØGÐIjÐkÐØÐð5ð 5ð 5ð 5ð
 ðIð Iñ „[ðIð ð
ð 
ñ „[ð
ðAð Að Aðð ð ð ð 37ÀDÈdð }ð }ð }ð }ð }ð
 ðgð gñ „Xðgð ð2ð 2ñ „Xð2ð ;@ð Zð Zð Zð Zð Zð ð
ð 
ñ „[ð
ð*ið ið ið BGÐRUÐfjð  Cð ð ð ð ð ðð ð ð ð r   r   N)Ú
__future__r   Úpostprocessingr   r-   Úruntimer   r   r   r	   r
   r   r   r   ÚSimpleScaleSuffixMixinr   r"   r   r   ú<module>rŸ      sâ   ðØ "Ð "Ð "Ð "Ð "Ð "à 4Ð 4Ð 4Ð 4Ð 4Ð 4ð sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð  sð^ð ^ð ^ð ^ð ^˜CÔ6ñ ^ô ^ð ^ð ^ð ^r   