Posts: 18
Threads: 5
Joined: Mar 2026
Hello there is this clip which I am trying to fix and then put it throught topaz. Basically it's an old news broadcast that I want to fix and I have tried some sutff, I have for example used all the artifact removers from hybrid but I want to know if there is something better we can do.
https://mega.nz/file/0MYHTaaJ#KRsD7zwtik...v5Eyh_rLfM
Posts: 12.876
Threads: 70
Joined: May 2017
horrible over sharpened during capture, tons of artifacts, some of the frames are probably best replaced with interpolations,... content probably was once interlaced, got deinterlaced without fixing the fields first,... at the beginning the odd fields (now frames) all have problems,.. source also got wrongly resized.
=> Is this the 'original' version you have or did you already mess with it? (if you captured this, you might want to adjust your capturing settings,..)
Something like this: (SelectEvery, + rotated QTGMC + SpotLess + RemoveDirtMC + RIFE)
# Imports
import ctypes
import sys
import os
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Limit frame cache to 48449MB
core.max_cache_size = 48449
# Import scripts folder
scriptPath = 'F:/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("F:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
# loading plugins
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/FrameFilter/RIFE/librife.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/RemoveDirt/RemoveDirt.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/NNEDI3CL.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libeedi3vk.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/addnoise.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/mvtools.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/fmtconv.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/akarin/libakarin.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/zsmooth/zsmooth.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/Vapoursynth/Lib/site-packages/vapoursynth/plugins2/libbestsource.dll")
# Import scripts
import misc
import removeDirt
import SpotLess
import qtgmc
import validate
# Source: 'C:\Users\Selur\Desktop\big fix.mov'
# clip current meta; color space: YUV444P12, bit depth: 12, resolution: 720x576, fps: 50, color matrix: 709, color primaries: Unspecific, color transfer: BT.709, yuv luminance scale: limited, scanorder: progressive, full height: true (Source)
# Loading 'C:\Users\Selur\Desktop\big fix.mov' using BestSource
clip = core.bs.VideoSource(source="C:/Users/Selur/Desktop/big fix.mov", cachepath="J:/tmp/big fix_bestSource", track=0, hwdevice="opencl", fpsnum=50)
frame = clip.get_frame(0)
# setting color matrix to 709.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT709)
# setting color transfer (vs.TRANSFER_BT709), if it is not set.
if validate.transferIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT709)
# setting color primaries info (to vs.PRIMARIES_BT470_BG), if it is not set.
if validate.primariesIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT470_BG)
# setting color range to TV (limited) range.
prop_name = '_Range' if core.core_version.release_major >= 74 else '_ColorRange'
clip = core.std.SetFrameProps(clip=clip, **{prop_name: vs.RANGE_LIMITED})
# making sure frame rate is set to 50fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=50, fpsden=1)
# making sure the detected scan type is set (detected: progressive)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# adjusting frame with SelectEvery
clip = core.std.SelectEvery(clip, cycle=2, offsets=[0]) # 25
clip = core.std.AssumeFPS(clip, fpsnum=25, fpsden=1) # new fps: 25
# rotating 90° clock wise for vsQTGMCFilterGimmick
clip = core.std.FlipVertical(clip=clip)
clip = core.std.Transpose(clip=clip)
# Denoising using QTGMC
clip = qtgmc.QTGMC(clip, Preset="Fast", InputType=1, TR2=1, SourceMatch=0, Lossless=0, opencl=True)
# rotating 90° counter clock wise after vsQTGMCFilterGimmick
clip = core.std.FlipHorizontal(clip=clip)
clip = core.std.Transpose(clip=clip)
# Spot removal using SpotLess
clip = SpotLess.SpotLess(clip, radT=3, pel=1, mStart=True, mEnd=True)
# adjusting color space from YUV444P12 to YUV444P8 for vsRemoveDirtMC
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P8)
# denoising using VsRemoveDirtMC
clip = removeDirt.RemoveDirtMC(clip)
clip = misc.SCDetect(clip=clip,threshold=0.100)
# adjusting color space from YUV444P8 to RGBS for vsRIFE
clip = core.resize.Bicubic(clip=clip, format=vs.RGBS, matrix_in_s="709", range_in_s="limited", range_s="full")
# adjusting frame count&rate with RIFE, target fps: 50fps
clip = core.rife.RIFE(clip, model=58, fps_num=50, fps_den=1, sc=True) # new fps: 50
# adjusting output color from RGBS to YUV420P10 for NVEncModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, matrix_s="709", range_in_s="full", range_s="limited", dither_type="error_diffusion")
# set output frame rate to 50fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=50, fpsden=1)
# output
clip.set_output()
seems like a start: https://www.mediafire.com/file/hshves8zx...t.mp4/file
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 153
Threads: 36
Joined: May 2023
WOW.. you are a mage Selur.
Posts: 18
Threads: 0
Joined: Sep 2025
Hi, Selur
On which version of hybrid are you using this code? On mine 2026.05.10.1 it doesn't work - plugins are missing
Posts: 12.876
Threads: 70
Joined: May 2017
I used the last dev.
I didn't use any new filters,... the paths might have changed.
Note that you should not use that script, but rebuilt it in your Hybrid.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 18
Threads: 5
Joined: Mar 2026
Thank you, many stuff have been fixed. I didn't caprture this they gave it to me like that.
Posts: 18
Threads: 5
Joined: Mar 2026
So I want to ask, I seem to not have many of those options I have isntalled torch add-on and everything else from the downlaod page what would be the problem?
Posts: 12.876
Threads: 70
Joined: May 2017
Wild guess: you installed a dev over another version and didn't deinstall the previous version.
This usually works fine, unless the i.e. the Vapoursynth version changed, or other larger changes took place. (also newer Hybrid dev versions might require an updated torch add-on)
If Hybrid detected the torch add-on, you can see:
Quote: torch-add-on:
VSGAN available,..
vsDPIR available,..
vsRIFE (torch) available,..
vsDRBA (torch) available,..
vsBasicVSR++ available,..
vsRealESRGAN available,..
vsSwinIR available,..
vsHINet available,..
vsAnimeSR available,..
vsFeMaSR available,..
vsSCUNet available,..
vsCodeFormer available,..
vsGRLIR available,..
vsDDColor available,..
vsHAVC available,..
vsProPainter available,..
vsDeepDeinterlace available,..
vsMFDin available,..
vsRVRT available,..
vsTemporalFix available,..
and for the mlrt-add-on
Quote: mlrt-add-on:
VSMLRT available,..
vsDPIR (mlrt) available,..
vsRIFE (mlrt) available,..
vsSAFA (mlrt) available,..
vsSCUNet (mlrt) available,..
vsSwinIR (mlrt) available,..
after the start-up of Hybrid in the Log-tab.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 18
Threads: 5
Joined: Mar 2026
Basically I uninstalled everything today deleted everything that was in the hybrid folder and downlaoded and reinstalled everythin with the 2026.03.21 version of hybrid
https://ibb.co/Kp33z85m
No idea if this helps
Posts: 12.876
Threads: 70
Joined: May 2017
25.05.2026, 13:38
(This post was last modified: 25.05.2026, 13:39 by Selur.)
And what are you missing?
Are you perhaps not looking for missing filters, but the UI elements controlled by Filtering->Vapoursynth->Misc->UI?
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
|