Log in

View Full Version : Jaded Encoding Thaumaturgy - Vapoursynth functions and plugins


LightArrowsEXE
5th February 2024, 14:11
Jaded Encoding Thaumaturgy
A modern collection of plugins and packages

Source code (https://github.com/Jaded-Encoding-Thaumaturgy) | Discord (https://discord.gg/XTpc6Fa9eB) | Processing Guide (https://jaded-encoding-thaumaturgy.github.io/JET-guide/master/)


Jaded Encoding Thaumaturgy is a Github organization centered around optimizing, bug-fixing, and extending the most useful Vapoursynth/Avisynth
filtering plugins and functions, as well as introducing more tooling for package developers and users to help with writing scripts and developing new filters.
This also includes a guide (https://jaded-encoding-thaumaturgy.github.io/JET-guide/master/) that covers many different aspects of video and video processing, aimed more at beginners.

We offer roughly 25 different Python packages, each focused on specific types of filtering, and all interconnected to provide users many different tools
to help them filter video sources. We also include updated plugins with new, previously-sorely missing features, such as our updated descale plugin.

We also offer the most feature-rich Vapoursynth script previewer currently available in vs-preview (https://github.com/Jaded-Encoding-Thaumaturgy/vs-preview).
This previewer does not come with its own IDE, and is instead meant to be paired with a code editor of your choice, such as PyCharm,
Visual Studio Code, Vim, Notepad++, etc. Anything that can launch external programs can support vs-preview!

https://i.imgur.com/3QVUMcB.png

This also comes with all the benefits that come with using a dedicated code editor, such as auto-complete (using vsgenstubs to generate stubs),
type hinting, linting, useful error messages and logging, and the ability to read docstrings without having to navigate to an external webpage.

https://i.imgur.com/q5YZ8jN.png

vs-preview also contains its own plugin system, allowing users to add new features or extend existing ones!
This includes DCT graphs, modern helpers for determining native (fractional!) resolutions, etc.

For more information, please refer to the vs-preview README (https://github.com/Jaded-Encoding-Thaumaturgy/vs-preview?tab=readme-ov-file#plugins).

How to install

Python packages

The easiest way to install our core Python packages is through vs-jetpack (https://github.com/Jaded-Encoding-Thaumaturgy/vs-jetpack?tab=readme-ov-file#how-to-install).

You can install vs-jetpack with the following terminal command:

pip install vsjetpack

If you've previously installed the individual packages, you can overwrite them with the following command:

pip install vsjetpack --force --no-deps

Plugins

For a list of plugin dependencies, see the dependencies section (https://github.com/Jaded-Encoding-Thaumaturgy/vs-jetpack?tab=readme-ov-file#dependencies).
We recommend using vsrepo to install plugins.

Currently Available Downloads

For usage examples and documentation, please refer to the individual function docstrings and/or repository READMEs.

Additional utility packages


lvsfunc (https://forum.doom9.org/showthread.php?t=184180)
(vs-)muxtools (https://muxtools.vodes.pw/)
vs-preview-plugins (https://github.com/Jaded-Encoding-Thaumaturgy/vs-preview-plugins)


Filter plugins


DualSynth-madVR (https://github.com/Jaded-Encoding-Thaumaturgy/DualSynth-madVR)
vapoursynth-descale (https://github.com/Jaded-Encoding-Thaumaturgy/vapoursynth-descale)
vapoursynth-reconstruct (https://github.com/Jaded-Encoding-Thaumaturgy/vapoursynth-reconstruct)
vapoursynth-SNEEDIF (https://github.com/Jaded-Encoding-Thaumaturgy/vapoursynth-SNEEDIF)


Programs


Wobbly (https://github.com/Jaded-Encoding-Thaumaturgy/Wobbly)


Contributing and user feedback

If you'd like to contribute, please open an issue or create a pull request in the relevant repository!
If you run into any errors, please write an issue (preferred), post a stack trace in the replies, or join our support server (https://discord.gg/XTpc6Fa9eB)!
Suggestions are also welcome.

Adub
10th February 2024, 16:29
I'm amazed that this hasn't been posted here before!

I've been using many of these packages, especially vsdenoise for some time now, particularly for its convenient wrapper functions around BM3D and MVTools, while also contributing the implementation of TemporalDegrain2 (which Setsu rewrote a bit).

Thank you so much for this contribution of the VS community. It's been a great resource.

Marsu42
31st March 2025, 01:01
It's been a great resource.

The past tense is appropriate - vs-jet (https://github.com/Jaded-Encoding-Thaumaturgy/vs-jet?tab=readme-ov-file#how-to-install)has bee deprecated and migrated to vs-jetpack (https://pypi.org/project/vsjetpack/).

A few important ground rules apply: :stupid:
1. Support is on a discord server (https://discord.gg/XTpc6Fa9eB) and cannot be Internet searched
2. You have to install required plugins (https://github.com/Jaded-Encoding-Thaumaturgy/vs-jetpack) manually
3. The documentation (https://jaded-encoding-thaumaturgy.github.io/vs-jetpack/) is about the api and should not include full scripting samples, because folks migrating from AviSynth had it way too easy in the past

PatchWorKs
1st April 2025, 14:59
I strongly suggest to "adopt" VapourSynth-for-Resolve (https://github.com/Hank-tha-Cowdog/VapourSynth-for-Resolve#readme) (aka VapourSynth OFX plugin) too !

Adub
10th April 2025, 18:02
I strongly suggest to "adopt" VapourSynth-for-Resolve (https://github.com/Hank-tha-Cowdog/VapourSynth-for-Resolve#readme) (aka VapourSynth OFX plugin) too !

Interesting - thanks for bringing up this plugin, as it could be quite useful for some future projects I have.

Selur
13th April 2025, 08:20
Does using this only make sense for animes/cartoons? (i.e. default based_aa (https://jaded-encoding-thaumaturgy.github.io/vs-jetpack/api/vsaa/funcs/#vsaa.funcs.based_aa) requires vsmlrt since supersampler uses vsmlrt.ArtCNN)
Are there some best practices for using vs-jetpack?
What scripts should users look at wanting to leverage vs-jetpack? I saw lvsfunc mentioned, but after reading the disclaimer, it seems foolish to use that.

Cu Selur

LightArrowsEXE
13th April 2025, 21:07
The past tense is appropriate - vs-jet (https://github.com/Jaded-Encoding-Thaumaturgy/vs-jet?tab=readme-ov-file#how-to-install)has bee deprecated and migrated to vs-jetpack (https://pypi.org/project/vsjetpack/).

Updated. Few of us frequent doom9, so we somewhat forgot there was even a post for our packages here lol.


A few important ground rules apply: :stupid:
1. Support is on a discord server (https://discord.gg/XTpc6Fa9eB) and cannot be Internet searched
2. You have to install required plugins (https://github.com/Jaded-Encoding-Thaumaturgy/vs-jetpack) manually
3. The documentation (https://jaded-encoding-thaumaturgy.github.io/vs-jetpack/) is about the api and should not include full scripting samples, because folks migrating from AviSynth had it way too easy in the past

1. Support is primarily provided through the github issues tracker, which is standard for projects of this nature and should absolutely show up in search engines. The only kind of support you'll find in the discord server is for very simple queries for the most part. The server is mostly to facilitate discussion between developers, not strictly for end users.
2. This is hardly an issue unique to our packages. This problem persists for everything, both with Vapoursynth and Avisynth, although solutions have been proposed to help make this easier for end users (see for example, my proposal for a Plugin/Package Dependency Registry (https://github.com/Jaded-Encoding-Thaumaturgy/vs-tools/pull/139)).
3. Basic examples are provided in many docstrings. The only onus placed on the user is to install a proper IDE that can display them when hovering over filter calls (which for example neither vsedit nor avspmod are capable of). Proposals have been made to make it even more accessible by writing wiki-styled pages, but many are also of the opinion that video filtering is a difficult enough subject that anyone who is serious about doing it should learn enough basic programming skills to not need super simple, contextless scripts, and can instead rely on our documentation. That said, however, we do have a guide (https://jaded-encoding-thaumaturgy.github.io/JET-guide/master/) that covers many different aspects of video and video processing, and has some generic code examples as well.

Does using this only make sense for animes/cartoons? (i.e. default based_aa (https://jaded-encoding-thaumaturgy.github.io/vs-jetpack/api/vsaa/funcs/#vsaa.funcs.based_aa) requires vsmlrt since supersampler uses vsmlrt.ArtCNN)


Most of the testing is performed on anime sources, but many should work just fine for live-action too. in based_aa's case, you can always change the supersampler used to something more suited for live-action content. We explicitly wrote it (and many other functions) to be easily modifiable depending on your source without requiring you to fully rewrite large parts of it.


Are there some best practices for using vs-jetpack?
What scripts should users look at wanting to leverage vs-jetpack? I saw lvsfunc mentioned, but after reading the disclaimer, it seems foolish to use that.


Nothing specific. Import as necessary. lvsfunc is just my personal collection of wrappers, including ones for testing that may be adopted into vs-jetpack in the future, or are otherwise an ill fit for a collection of generic filters.