Skip to main content

VapourSynth-MLRT-TRT-RTX

This package contains the TensorRT-based for RTX GPU inference backend implementation of the vs-mlrt plugin.

Installation

pip install vapoursynth-mlrt-trt-rtx

Building from source

Requirements

  • C++ Compiler: C++20 compatible (e.g. MSVC 2019+, GCC, Clang)
  • Build Tools: uv, CMake, Ninja
  • Dependencies:
    • CUDAToolkit (nvcc, cudart, cuda_profiler_api)
    • TensorRT-RTX SDK
  • Environment Variables:
    • TENSORRT_RTX_HOME: Path to the TensorRT-RTX installation directory (must contain include, lib, and bin).

Compilation

  1. Initialize the submodule:

    git submodule update --init --recursive vsmlrt/trt_rtx/vs-mlrt
    
  2. Set the TENSORRT_RTX_HOME environment variable to point to your TensorRT-RTX installation:

    # Windows (PowerShell)
    $env:TENSORRT_RTX_HOME = "C:\Path\To\TensorRT-RTX"
    
    # Linux
    export TENSORRT_RTX_HOME="/path/to/TensorRT-RTX"
    
  3. Build the wheel:

    uv build --package vapoursynth-mlrt-trt-rtx
    

Detailed parameter information from the parent project follows.


VapourSynth TensorRT & TensorRT-RTX

The vs-tensorrt plugin provides optimized CUDA runtime for some popular AI filters.

Usage

Prototype: core.{trt, trt_rtx}.Model(clip[] clips, string engine_path[, int[] overlap, int[] tilesize, int device_id=0, bint use_cuda_graph=False, int num_streams=1, int verbosity=2, string flexible_output_prop=""])

Arguments:

  • clip[] clips: the input clips, only 32-bit floating point RGB or GRAY clips are supported. For model specific input requirements, please consult our wiki.

  • string engine_path: the path to the prebuilt engine (see below)

  • int[] overlap: some networks (e.g. CNN) support arbitrary input shape where other networks might only support fixed input shape and the input clip must be processed in tiles. The overlap argument specifies the overlapping (horizontal and vertical, or both, in pixels) between adjacent tiles to minimize boundary issues. Please refer to network specific docs on the recommended overlapping size.

  • int[] tilesize: Even for CNN where arbitrary input sizes could be supported, sometimes the network does not work well for the entire range of input dimensions, and you have to limit the size of each tile. This parameter specify the tile size (horizontal and vertical, or both, including the overlapping). Please refer to network specific docs on the recommended tile size.

  • int device_id: Specifies the GPU device id to use, default 0. Requires Nvidia GPUs with second-generation Kepler architecture onwards.

  • bint use_cuda_graph: whether to use CUDA Graphs to improve performance and reduce CPU overhead.

  • int num_streams: number of concurrent CUDA streams to use. Default 1. Increase if GPU not saturated.

  • verbosity: The verbosity level of TensorRT runtime. The message writes to stderr. 0: Internal error. 1: Application error. 2: Warning. 3: Informational messages with instructional information. 4: Verbose messages with debugging information.

  • string flexible_output_prop: used to support onnx models with arbitrary number of output planes.

    from typing import TypedDict
    
    class Output(TypedDict):
        clip: vs.VideoNode
        num_planes: int
    
    prop = "planes" # arbitrary non-empty string
    output = core.trt.Model(src, engine_path, flexible_output_prop=prop) # type: Output
    
    clip = output["clip"]
    num_planes = output["num_planes"]
    
    output_planes = [
        clip.std.PropToClip(prop=f"{prop}{i}")
        for i in range(num_planes)
    ] # type: list[vs.VideoNode]
    

When overlap and tilesize are not specified, the filter will internally try to resize the network to fit the input clips. This might not always work (for example, the network might require the width to be divisible by 8), and the filter will error out in this case.

The general rule is to either:

  1. left out overlap, tilesize at all and just process the input frame in one tile, or
  2. set all three so that the frame is processed in tilesize[0] x tilesize[1] tiles, and adjacent tiles will have an overlap of overlap[0] x overlap[1] pixels on each direction. The overlapped region will be throw out so that only internal output pixels are used.

Instructions for TensorRT

Build engine with dynamic shape support

  • Requires models with built-in dynamic shape support, e.g. waifu2x_v3.7z and dpir_v3.7z.
  1. Build engine

    trtexec --onnx=drunet_gray.onnx --minShapes=input:1x2x8x8 --optShapes=input:1x2x64x64 --maxShapes=input:1x2x1080x1920 --saveEngine=dpir_gray_1080p_dynamic.engine
    

    The engine will be optimized for 64x64 input and can be applied to eligible inputs with shape from 8x8 to 1920x1080 by specifying parameter tilesize in the trt plugin.

    Also check trtexec useful arguments

Run model

In vpy script:

# DPIR
src = core.std.BlankClip(src, width=640, height=360, format=vs.GRAYS)
sigma = 10.0
flt = core.trt.Model([src, core.std.BlankClip(src, color=sigma/255.0)], engine_path="dpir_gray_1080p_dynamic.engine", tilesize=[640, 360])

trtexec useful arguments

  • --workspace=N: Set workspace size in megabytes (default = 16)

  • --fp16: Enable fp16 precision, in addition to fp32 (default = disabled)

  • --noTF32: Disable tf32 precision (default is to enable tf32, in addition to fp32, Ampere only)

  • --device=N: Select cuda device N (default = 0)

  • --timingCacheFile=<file>: Save/load the serialized global timing cache

  • --verbose: Use verbose logging (default = false)

  • --profilingVerbosity=mode: Specify profiling verbosity.

    mode ::= layer_names_only|detailed|none
    

    (default = layer_names_only)

  • --tacticSources=tactics: Specify the tactics to be used by adding (+) or removing (-) tactics from the default

    tactic sources (default = all available tactics).

    Note: Currently only cuDNN, cuBLAS and cuBLAS-LT are listed as optional tactics.

    Tactic Sources:

    tactics ::= [","tactic]
    tactic  ::= (+|-)lib
    lib     ::= "CUBLAS"|"CUBLAS_LT"|"CUDNN"
    

    For example, to disable cudnn and enable cublas: --tacticSources=-CUDNN,+CUBLAS

  • --useCudaGraph: Use CUDA graph to capture engine execution and then launch inference (default = disabled). This flag may be ignored if the graph capture fails.

  • --noDataTransfers: Disable DMA transfers to and from device (default = enabled).

  • --saveEngine=<file>: Save the serialized engine

  • --loadEngine=<file>: Load a serialized engine

Instructions for TensorRT-RTX

Replace the trtexec executable by the tensorrt_rtx executable. Some options may not be supported, e.g. --fp16.

Metadata

Release files for vapoursynth-mlrt-trt-rtx 17.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vapoursynth-mlrt-trt-rtx 17.1
File Size Uploaded Provenance
vapoursynth_mlrt_trt_rtx-17.1.tar.gz 104.3 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for vapoursynth-mlrt-trt-rtx 17.1
File Interpreter ABI Platform
vapoursynth_mlrt_trt_rtx-17.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
vapoursynth_mlrt_trt_rtx-17.1-py3-none-manylinux_2_39_aarch64.whl Python 3 none Linux glibc 2.39+ ARM64 Details
vapoursynth_mlrt_trt_rtx-17.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details

Total release size: 891.0 kB

Release files / vapoursynth_mlrt_trt_rtx-17.1.tar.gz

Download URL vapoursynth_mlrt_trt_rtx-17.1.tar.gz
Size 104.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d3e9d535a6324fbf778435c418f7fb6a62b1745b058ce62ec8b7232ccfb06ca2
BLAKE2b-256 checksum
How to use checksums
b2655c2c71d554fb4a9948ab9db67e742f352dcb4b2a204e4d44505c46dc744e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / vapoursynth_mlrt_trt_rtx-17.1-py3-none-win_amd64.whl

Download URL vapoursynth_mlrt_trt_rtx-17.1-py3-none-win_amd64.whl
Size 210.2 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
60e0c4e94d7f58c785ae25dbbaaa9b62c0d4b6854dcdffcbe0efac83d9b95420
BLAKE2b-256 checksum
How to use checksums
18b1a6673d9af95d6c7965a3c18c3886085ebf9c30e60f78a45f3f1cb5d3ea73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / vapoursynth_mlrt_trt_rtx-17.1-py3-none-manylinux_2_39_aarch64.whl

Download URL vapoursynth_mlrt_trt_rtx-17.1-py3-none-manylinux_2_39_aarch64.whl
Size 291.4 kB
Tags Linux glibc 2.39+ ARM64 Python 3
SHA-256 checksum
How to use checksums
2017ebb557943669aa1109274dd79c5b8e1c212a8315cec0329ed98ba69dd7b0
BLAKE2b-256 checksum
How to use checksums
737a94fbedaa85b19ebb2bfd2d50c8205a5a146fa02abfdd389722f6c434e262
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / vapoursynth_mlrt_trt_rtx-17.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL vapoursynth_mlrt_trt_rtx-17.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 285.1 kB
Tags Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
4d8d677ebd74ac5c64753cca17b1c35f447e2c7bf268c0a3fed4e5b1c1a4adbe
BLAKE2b-256 checksum
How to use checksums
7fa3b77f028ea776dff5911cbe13dd1d1f2f95e35f7be841a4206dad173c28a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Security for vapoursynth-mlrt-trt-rtx 17.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for vapoursynth_mlrt_trt_rtx-17.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page