Log in

View Full Version : New Plugins and Utilities


Pages : 1 2 3 4 5 6 7 [8]

hello_hello
27th March 2025, 10:17
I had a bit of time to kill so here's an improved version.
The clips can have different sample aspect ratios as long as they have a SAR in frame properties.
There's a description of the arguments at the top of the script.

Link for an updated version of the function in post #355 (https://forum.doom9.org/showthread.php?p=2019958#post2019958).

Creating three source clips from a 720p video.

Trim(5479,5479)
A = CropResize(720,576, OutSAR=16.0/15.0)
B = CropResize(720,436, OutSAR=16.0/15.0)
C = CropResize(720,576, OutSAR=64.0/45.0)

https://i.ibb.co/JRj5c5gV/0A.jpg
https://i.ibb.co/v4DXSZjj/0B.jpg
https://i.ibb.co/rf7NKPW7/0C.jpg

CombineClips([A,B,C])

https://i.ibb.co/DfxwhZrv/1A.jpg
https://i.ibb.co/zhjpBj6p/1B.jpg
https://i.ibb.co/4ndC8R8S/1C.jpg

CombineClips([A,B,C], Max=false)

https://i.ibb.co/JRj5c5gV/0A.jpg
https://i.ibb.co/b51HKzg1/2B.jpg
https://i.ibb.co/ynHvffXS/2C.jpg

Resizing for NTSC complaint video.
CombineClips([A,B,C], 720,480, OutSAR=10.0/11.0)

https://i.ibb.co/Y4yQVVZL/3A.jpg
https://i.ibb.co/XZ6jM51t/3B.jpg
https://i.ibb.co/NdCZH3Vx/3C.jpg

v0lt
3rd April 2025, 07:30
MPC Script Source 0.2.7.192 (https://github.com/v0lt/ScriptSourceFilter/releases/tag/0.2.7)
The filter allows to open AviSynth+ and VapourSynth script files in DirectShow video players.

Changes:
Fixed registration of a filter from a folder with Unicode characters.

wonkey_monkey
26th April 2025, 23:42
RemapVK (https://forum.doom9.org/showthread.php?t=186301)

A GPU-based image remapper.

DTL
25th May 2025, 10:03
Reduced version of M_QTGMC() script to work with old versions of mvtools2 (up to 2.7.46 release by pinterf) - https://github.com/DTL2020/QTGMC/releases/tag/m_0.2old_mvt

It still works somehow better in comparison with QTGMC(preset="slow"). Test/compare script example included in the release archive. Currently highest complexity preset M_QTGMC_high() looks also working and make some better result (but even much more slower).

Also expected to be much faster without new complex motion estimation modes for MAnalyse.

Some comparison with same QTGMC version at running animal capture (VHS-like)
https://imgsli.com/MzgyNjA0

Also there is an idea to make QTGMC with RIFE interpolation engine for comparison instead of mvtools. Though it also fails on low quality blurry content like VHS captures.

hello_hello
22nd June 2025, 15:10
I had a bit of time to kill so here's an improved version.
The clips can have different sample aspect ratios as long as they have a SAR in frame properties.
There's a description of the arguments at the top of the script.

New version of CombineClips .
Simplified the syntax for determining the correct dimensions and storage aspect ratio.
Added additional arguments to the function.

Edit: 2025-07-08
Fixed the function only taking the width height and aspect ratio of the first and last clips into account when looking for the maximums.

Edit: 2025-10-10
Added a VapourSynth version of CombineClips.

Edit: 2025-12-20
I've made some changes/improvements to CombineClips and it's now included with the CropResize function.
https://forum.doom9.org/showthread.php?t=176667
Example usage:
https://forum.doom9.org/showthread.php?p=2026204#post2026204

wonkey_monkey
27th July 2025, 13:59
OnDemandFilter v0.2 (https://forum.doom9.org/showthread.php?t=186440)

Filter deferring wrapper, reduces memory usage and script loading times.

pbone
29th November 2025, 22:19
I search a script to correct tbc on avi file (from vhs). Correction line by line on frame
Script for vapoursynth

StainlessS
29th November 2025, 23:59
I search a script to correct tbc on avi file (from vhs). Correction line by line on frame
Script for vapoursynth
Well then you will want to look elsewhere, this thread is not for that purpose.

pbone
30th November 2025, 00:18
Very interesting response.

DTL
18th February 2026, 13:15
Pre-release of RIFE 1.2.5 for better denoise frame interpolation with small temporal radius https://github.com/DTL2020/AviSynthPlus-RIFE/releases/tag/pre-1.2.5

The quality of the interpolation for fast and complex motion quickly degrades with increasing symmetrical temporal radius around the current frame. So new frames setup for interpolation mode were added - direct input of back and forward frames from current count. Now for total tr=2 it is possible to request up to +2 more interpolated frames for next processing (by some averaging or other engine).

Example for total (max) tr=2: (with RIFE 1.3.0 release - denoise_bf offset must be positive too).

ConvertToPlanarRGB(bits=32)
# Old symmetrical frames
#tr=1
den_tr1=RIFE(denoise=true, denoise_bf=-1, denoise_ff=1)
#tr=2
den_tr2=RIFE(denoise=true, denoise_bf=-2, denoise_ff=2)
#2 new asymmetrical frames with better quality in comparison with tr=2
den_m1p2=RIFE(denoise=true, denoise_bf=-1, denoise_ff=2)
den_m2p1=RIFE(denoise=true, denoise_bf=-2, denoise_ff=1)

#process with some temporal-median engine
# all interpolated frames + source - max denoise, less details
Interleave(den_tr1, den_tr2, last, den_m1p2, den_m1p2)
ConvertToYUV444()
vsTTempSmooth(pmode=1, maxr=2, ythresh=255, uthresh=255, vthresh=255)
SelectEvery(5,2)

#no tr=2 worst frame, low denoise, more details
Interleave(den_tr1, den_tr1, last, den_m1p2, den_m1p2) # more weight to best tr=1 frame
ConvertToYUV444()
vsTTempSmooth(pmode=1, maxr=2, ythresh=255, , uthresh=255, vthresh=255)
SelectEvery(5,2)

# even less denoise, more source details
Interleave(den_tr1, last, last, den_m1p2, den_m1p2) # more weight to input frame
ConvertToYUV444()
vsTTempSmooth(pmode=1, maxr=2, ythresh=255, , uthresh=255, vthresh=255)
SelectEvery(5,2)

#no input frame - only 3 interpolated
# average denoise, average details
Interleave(den_tr1, den_m1p2, den_m1p2) # equal weight to all interpolated frames
ConvertToYUV444()
vsTTempSmooth(pmode=1, maxr=1, ythresh=255, , uthresh=255, vthresh=255)
SelectEvery(3,1)


Note: The old method denoise_tr=X may be broken (denosie_tr=2 returns same frame as denoise_tr=1) - waiting for Asd-g to make checked/fixed release. I can not make debugging with Vulkan acceletator at my current development config.

tormento
22nd February 2026, 20:15
Descale avs11

Video/Image filter to undo upscaling. Includes a VapourSynth and AviSynth+ plugin

https://github.com/Asd-g/vapoursynth-descale

DTL
25th February 2026, 19:46
RIFE 1.3.0 - https://github.com/Asd-g/AviSynthPlus-RIFE/releases/tag/1.3.0
Added denoise_bf/ff offsets (both positive) and internal (at accelerator ?) dematrix of input YUV. Though ConvertBits are still external (called internally if input is not float32 ?). Also loaded model reusage between different filters in the current filtergraph. May helps with many filter calls from the same script in denoise scripts.

StvG
26th February 2026, 05:20
... Though ConvertBits are still external (called internally if input is not float32 ?)...

This is only for scene change determination (get_sad_c).

The input color format -> RGBPS is done on GPU preprocess step.

tormento
3rd March 2026, 12:13
BlindPP 1.0.0

https://github.com/Asd-g/avisynth-blindpp/releases/tag/1.0.0

Added:
Support for 10, 12, 14, 16-bit integer pixel formats.
Support for 32-bit floating point processing.
SIMD code for SSE2, SSE4.1, AVX2, and AVX-512 instruction sets.
Parameter opt.
Support for Y and YUV444 planar formats.
CMake building system.
Changed:
Increased the maximum quant limit from 31 to 63 to allow for finer control over filtering strength.
Replaced inline MMX assembly with C++ code and SIMD intrinsics.

tormento
12th March 2026, 23:25
libplacebo_Render 1.1.0

An AviSynth+ plugin interface to libplacebo - a reusable library for GPU-accelerated image/video processing primitives and shaders.

https://github.com/Asd-g/libplacebo_Render

real.finder
27th March 2026, 18:25
new New SRFComb filter for Rainbow & Dot Crawl Removal – More details:- https://forum.doom9.org/showthread.php?t=186908

shurik_pronkin
3rd April 2026, 19:34
DualDelogo.avsi — automatic switching between alternating logos for InpaintDelogo.

Some old TV recordings have two logos alternating in blocks (e.g. channel + production company). This function detects which logo is present per-frame using RT_LumaCorrelation and applies the matching InpaintDelogo — or passes through if no logo detected.

Thread: https://forum.doom9.org/showthread.php?t=186921

shurik_pronkin
3rd April 2026, 21:27
AviSynth Virtual Bridge - pipe external tools (Topaz, VapourSynth, ffmpeg) back into AviSynth without intermediate files. Uses WinFsp FUSE virtual filesystem with blocking reads. Python + fusepy, no compiler needed.

Thread: https://forum.doom9.org/showthread.php?t=186920
GitHub: https://github.com/schpuppa-art/avs-virtual-bridge

shurik_pronkin
4th April 2026, 06:32
SmartCrop.avsi — per-frame adaptive border removal for sources with variable black bars (film reel changes, analog broadcast recordings). Single-pass, runs inside ScriptClip using Resize src_ parameters. Separate scan depth for vertical/horizontal, per-side margins for gradient edges, stretch and fit modes. Requires RT_Stats.

Thread: https://forum.doom9.org/showthread.php?t=186924

real.finder
5th April 2026, 01:01
crt_tv_interlace() (https://forum.doom9.org/showpost.php?p=2029962&postcount=74)

can be used as a crt deinterlacer for 480i (like DVD) and a crt upscaler in the same time, CRT TV quality Deinterlace Scaler

geometer
6th April 2026, 05:31
Two fast implementations with Expr()

Predictive Ringing Removal https://forum.doom9.org/showthread.php?t=186925 - I think it's a game changer.
This code synthesizes a ringing artifact, and subtracts it from the input signal.
So, this helps with systemic artifacts, that are typical for recompressing and sharpening older DVD videos.
(Plz also see the test pics. Cleans up the mess and does not blur the main signal.)
(Thanks to Selur for the Vapoursynth port, that additionally supports deringing of horizontal lines.)

Convolution revisited https://forum.doom9.org/showthread.php?t=186926
This implements a fast 5x5 convolution to replace generalconvolution(), suitable for typical sharpening or corrective kernels.
You need not compute and specify the divisor, it is automated.
Optimization: Zero-coefficients (sparse matrix) are removed before computation.

shurik_pronkin
6th April 2026, 10:12
SCDetectEOD — histogram-based scene-change detector for AviSynth+.

Stateless, no motion estimation, no external dependencies. Designed for scanned animation and other material where MVTools MSCDetection struggles: shot/reverse-shot dialogues, hand-drawn cel animation with static backgrounds, sources with heavy film-grain flicker.


Y + UV 2D histogram distance with flicker guard and minimum-scene-length post-filter
Writes _scd_boundary frame property — works with any downstream filter that reads frame props
YV12 input, pixels pass through untouched
Forward-sweep cached, O(1) random seek


Source, binaries, README and integration examples (including a RIFE scene-signaling example):
https://github.com/schpuppa-art/SCDetectEOD-Avisynth-

MSVC build only. MIT license.

==========================

SCDetectEOD v2.0 — histogram-based scene-change detector for AviSynth+.

v2.0 adds three parameters for broader coverage:


downscale (0/2/4) — internal box-average downscale before histogramming. Drops compute cost ~4×/16× on HD/4K material. Detection thresholds are normalized per pixel so calibration carries over. Note: SD and 720p sources should not use downscale — the UV histogram becomes too sparse; see README for a resolution-minimum table.
ignore_borders — crops a border ROI before histogramming. For film scans with visible perforation, variable letterbox/pillarbox, or otherwise noisy edges that should not contribute to cut decisions.
mono — explicit monochrome mode. Disables the UV criterion entirely. Required for black-and-white material — without it, a B&W clip will never produce any cuts because dHistUV is always near zero on constant chroma.


Backward compatible — v1.0 calibration and usage work unchanged. New parameters all default to off.

https://github.com/schpuppa-art/SCDetectEOD-Avisynth-

MSVC build only. MIT license.

shurik_pronkin
6th April 2026, 10:13
AutoLevelsEOD — adaptive per-channel auto-levels for AviSynth+.

Port and extension of the VirtualDub AutoLevels filter v1.2 by EOD. Same per-channel histogram-stretch math, plus automatic correction strength per frame and scene-locked stabilization so the decision doesn't flicker across frames.


auto_bright rule set picks effective bar_bright per frame from full-histogram metrics — mild casts corrected, artistic color (sunsets, tinted titles, dark scenes with bright accents) left alone
Scene-lock via SCDetectEOD (https://github.com/schpuppa-art/SCDetectEOD-Avisynth-): eff computed freely on every frame of a scene, the minimum (most aggressive) locked for the whole scene — one stable decision per scene, no flicker
AutoLevelsEOD_Measure companion filter writes all metric frame props without touching pixels, for calibration
RGB32 input


Source, binaries, README and calibration examples:
https://github.com/schpuppa-art/AutoLevelsEOD-Avisynth-

MSVC build only. MIT license, credit to EOD for the original.

shurik_pronkin
10th April 2026, 13:41
SpliceRepair v1.0 — automatic removal of film splice mark artifacts (AviSynth+ script)

Automatically fixes horizontal artifacts left by cement/tape splices on scanned film. Uses SCDetectEOD (https://github.com/schpuppa-art/SCDetectEOD-Avisynth-) scene boundaries to identify first/last frames of each scene and replaces damaged top/bottom rows with clean rows from a nearby frame within the same scene.

No resampling, no blurring — just a surgical strip replacement.


sd = last.SCDetectEOD(mono=true, downscale=2)
last.SpliceRepair(sd, repair_top=48, repair_bottom=0, offset=2)


Thread: https://forum.doom9.org/showthread.php?t=186932

shurik_pronkin
14th April 2026, 15:07
DustPort 1.0.0 — a limit-clipping spatiotemporal denoiser for AviSynth+, in the philosophy of Steady's DustV5 (2003).

The guarantee: every output pixel is bounded within source ± limit. No drift, no hallucinated detail. Aimed at film restoration where modern denoisers can produce plausible-but-wrong output.

Features

Four classic names: FaeryDustPort / PixieDustPort / GoldDustPort / SpaceDustPort
Temporal radius 1..5, mean or median
External motion compensation via prev / next arrays (compose with MVTools)
Edge-aware per-pixel limit map (Sobel-based)
Planar YUV 8, 10, 12, 14, 16 bit
Per-plane processing
SSE2 / SSE4.1, x86-64 Windows, AviSynth+ 3.4+


Not bit-exact with the original DustV5 (source was never published) — independent implementation of the same philosophy, built from reverse-engineering of the 2003 binary plus the public ReadMe.

Links

GitHub: https://github.com/schpuppa-art/dustport-avisynth-
Releases (DLL download): https://github.com/schpuppa-art/dustport-avisynth-/releases/tag/v1.0
Full discussion thread: AviSynth Usage thread (https://forum.doom9.org/showthread.php?t=186939)


Released under MIT license.

Ikotas
19th April 2026, 19:38
generate_tfmovr v1.0

This tool was created to ensure accurate deinterlacing without errors or omissions.

Description
This tool processes and cleans up TFM output files. It analyzes telecine (interlace) cycles and corrects them into consistent, clean patterns. By eliminating incorrect match code (c/p) detections, it enables high-precision deinterlacing.

doom9 post
https://forum.doom9.org/showthread.php?t=186944

github
https://github.com/Ikotas/generate_tfmovr

wonkey_monkey
6th May 2026, 23:53
Info2 v0.2 (https://forum.doom9.org/showthread.php?t=186960)

Much faster alternatives (10x-100x) for built-in info filters:

* Info2 (updated with frame property pass-through)
* ShowFrameNumber2
* ShowTime2
* ShowSMPTE2