nnedi3vk
NNEDI3 is an intra-field only deinterlacer. It takes in a frame, throws away one field, and then interpolates the missing pixels using only information from the kept field. It has same rate and double rate modes. NNEDI3 is also very good for enlarging images by powers of 2.
Runs on the VapourSynth core's Vulkan device: frames go in and come out GPU resident (vnode:gpu), so chains of GPU filters never leave VRAM. Feeding a CPU clip automatically inserts an upload, and std.GPUDownload brings the result back when the chain ends. The device is selected core-wide with core.set_vulkan_device(index) (see core.vulkan_devices) before first use.
Requirement
VapourSynth R80 with GPU support (API 4.3), and a Vulkan 1.4 capable GPU and driver.
Usage
nnedi3vk.NNEDI3(vnode:gpu clip, int field[, bint dh=False, int[] planes=[0, 1, 2], int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2])
-
clip: Clip to process. Any format with either 8-16 bit integer or 16/32 bit float is supported.
-
field: Controls the mode of operation (double vs same rate) and which field is kept.
- 0 = same rate, keep bottom field
- 1 = same rate, keep top field
- 2 = double rate (alternates each frame), starts with bottom
- 3 = double rate (alternates each frame), starts with top
-
dh: Doubles the height of the input. Each line of the input is copied to every other line of the output and the missing lines are interpolated. If
field=0, the input is copied to the odd lines of the output. Iffield=1, the input is copied to the even lines of the output.fieldmust be set to either 0 or 1 when usingdh=True. -
planes: Specifies which planes will be processed. Any unprocessed planes will be simply copied in
dh=False, and zero filled indh=True. -
nsize: Specifies the size of the local neighborhood around each pixel that is used by the predictor neural network. For image enlargement it is recommended to use 0 or 4. Larger y_diameter settings will result in sharper output. For deinterlacing larger x_diameter settings will allow connecting lines of smaller slope. However, what setting to use really depends on the amount of aliasing (lost information) in the source. If the source was heavily low-pass filtered before interlacing then aliasing will be low and a large x_diameter setting won't be needed, and vice versa.
- 0 = 8x6
- 1 = 16x6
- 2 = 32x6
- 3 = 48x6
- 4 = 8x4
- 5 = 16x4
- 6 = 32x4
-
nns: Specifies the number of neurons in the predictor neural network. 0 is fastest. 4 is slowest, but should give the best quality. This is a quality vs speed option; however, differences are usually small. The difference in speed will become larger as 'qual' is increased.
- 0 = 16
- 1 = 32
- 2 = 64
- 3 = 128
- 4 = 256
-
qual: Controls the number of different neural network predictions that are blended together to compute the final output value. Each neural network was trained on a different set of training data. Blending the results of these different networks improves generalization to unseen data. Possible values are 1 or 2. Essentially this is a quality vs speed option. Larger values will result in more processing time, but should give better results. However, the difference is usually pretty small. I would recommend using
qual>1for things like single image enlargement. -
etype: Controls which set of weights to use in the predictor nn.
- 0 = weights trained to minimize absolute error
- 1 = weights trained to minimize squared error
-
pscrn: Controls whether or not the prescreener neural network is used to decide which pixels should be processed by the predictor neural network and which can be handled by simple cubic interpolation. The prescreener is trained to know whether cubic interpolation will be sufficient for a pixel or whether it should be predicted by the predictor nn. The computational complexity of the prescreener nn is much less than that of the predictor nn. Since most pixels can be handled by cubic interpolation, using the prescreener generally results in much faster processing. The prescreener is pretty accurate, so the difference between using it and not using it is almost always unnoticeable. Higher levels for the new prescreener result in cubic interpolation being used on fewer pixels (so are slower, but incur less error). However, the difference is pretty much unnoticable. Level 2 is closest to the original prescreener in terms of incurred error, but is much faster.
- 0 = no prescreening
- 1 = original prescreener
- 2 = new prescreener level 0
- 3 = new prescreener level 1
- 4 = new prescreener level 2
Removed relative to the standalone (pre-GPU-node) versions: device_index and list_device (device selection is core-wide now), coopvec (the core device enables no vendor extensions; the FP32 subgroup GEMV path is used on all hardware), and num_streams (the core's execution pool sizes the in-flight bound from its worker threads and budgets the pinned memory itself).
Installation
pip install -U vapoursynth-nnedi3vk-apimod
Metadata
Release files for vapoursynth-nnedi3vk-apimod 2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vapoursynth_nnedi3vk_apimod-2.0.tar.gz | 12.8 MB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| vapoursynth_nnedi3vk_apimod-2.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| vapoursynth_nnedi3vk_apimod-2.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| vapoursynth_nnedi3vk_apimod-2.0-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| vapoursynth_nnedi3vk_apimod-2.0-py3-none-manylinux_2_34_x86_64.whl | Python 3 | none | Linux glibc 2.34+ x86-64 | Details |
| vapoursynth_nnedi3vk_apimod-2.0-py3-none-manylinux_2_34_aarch64.whl | Python 3 | none | Linux glibc 2.34+ ARM64 | Details |
| vapoursynth_nnedi3vk_apimod-2.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| vapoursynth_nnedi3vk_apimod-2.0-py3-none-macosx_10_15_x86_64.whl | Python 3 | none | macOS 10.15+ x86-64 | Details |
Total release size: 104.4 MB
Release files / vapoursynth_nnedi3vk_apimod-2.0.tar.gz
| Download URL | vapoursynth_nnedi3vk_apimod-2.0.tar.gz |
|---|---|
| Size | 12.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bdcbb6bd34209f9840015c380589ad16aed3115499810713581dfffbb8c77a0d
|
|
BLAKE2b-256 checksum How to use checksums |
693d4613511168351f2227d7e51c2badf618d8433e241d81a784e403e9c547c4
|
| 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 Sep 18, 2026.
Transparency logRelease files / vapoursynth_nnedi3vk_apimod-2.0-py3-none-win_amd64.whl
| Download URL | vapoursynth_nnedi3vk_apimod-2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 13.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7f1dd9146f8ff195bc13a2336a1fc392141a534c4895bd55b66ca1106afe68dd
|
|
BLAKE2b-256 checksum How to use checksums |
0b6359c9e3aecc723fb132cbf0928a685bd9dce8e85aaaacdb1ecf89810d3745
|
| 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 Sep 18, 2026.
Transparency logRelease files / vapoursynth_nnedi3vk_apimod-2.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | vapoursynth_nnedi3vk_apimod-2.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 13.8 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
5fafc8781b06dc98a28940fbc53f1a13d4f94f6c2ea9cba610ccf5d88478f4bd
|
|
BLAKE2b-256 checksum How to use checksums |
df12cb60aa327c93e32bbd5d2bf3ba3a55e797530520535e2da3ae387dd90d6a
|
| 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 Sep 18, 2026.
Transparency logRelease files / vapoursynth_nnedi3vk_apimod-2.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | vapoursynth_nnedi3vk_apimod-2.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 13.7 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
477b167d1b3ecabb24bf59540ab9529d8fd8cd5e11557dce9d7b11dfc15f8435
|
|
BLAKE2b-256 checksum How to use checksums |
3a849d381c748cab1180cc6cce4e52cfeefc54ad7aa19a248473e3ca8b3c4a40
|
| 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 Sep 18, 2026.
Transparency logRelease files / vapoursynth_nnedi3vk_apimod-2.0-py3-none-manylinux_2_34_x86_64.whl
| Download URL | vapoursynth_nnedi3vk_apimod-2.0-py3-none-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | Linux glibc 2.34+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
1f94bae24cf493402d134b1cc504879fdf658beb3c86188b1df9de953a2dd710
|
|
BLAKE2b-256 checksum How to use checksums |
253bd29f4c23db3e8ac50dd3f6eff7653d477eded71efc343d86afe7b22387dc
|
| 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 Sep 18, 2026.
Transparency logRelease files / vapoursynth_nnedi3vk_apimod-2.0-py3-none-manylinux_2_34_aarch64.whl
| Download URL | vapoursynth_nnedi3vk_apimod-2.0-py3-none-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | Linux glibc 2.34+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
d8d89fe583a07f813ec10f064e5f8b7d90a39daecf53ea8d347cdcf8e221dbb4
|
|
BLAKE2b-256 checksum How to use checksums |
061858d0e55683f69b60f62906557fae6ef3450629f21fb2d02868fcb5e1cd00
|
| 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 Sep 18, 2026.
Transparency logRelease files / vapoursynth_nnedi3vk_apimod-2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | vapoursynth_nnedi3vk_apimod-2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2f2cac6350a31b1f0ffa6ab07819b8305b1676793eb663c8562f96a825df815b
|
|
BLAKE2b-256 checksum How to use checksums |
36bc69c6a8b0894e79265fa0e63bb7f0569d0c616aab4a4d95f1e3987d3513be
|
| 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 Sep 18, 2026.
Transparency logRelease files / vapoursynth_nnedi3vk_apimod-2.0-py3-none-macosx_10_15_x86_64.whl
| Download URL | vapoursynth_nnedi3vk_apimod-2.0-py3-none-macosx_10_15_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | Python 3 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
4c3316395410cd36a7d5e563a3ce52ed255442c9c17def652aa947740cadc8bc
|
|
BLAKE2b-256 checksum How to use checksums |
8ec5544b0e8e00cc751c30a2229841d8606ea7ae0a7acf81781266a058e1990a
|
| 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 Sep 18, 2026.
Transparency logSecurity for vapoursynth-nnedi3vk-apimod 2.0
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 8 files in this release have been uploaded with provenance metadata.
Attestation for vapoursynth_nnedi3vk_apimod-2.0.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 Sep 18, 2026.
Transparency logA 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.