03.04.2026, 19:06
ok, this script is a miss, i dont unerstand obviously, my crop,resize, color space conversionia set to last step in filter order, wtf is it converting colot space 6 times for nothings?
also please dumb down you anser/solutions to gui specific settings, im not using a gui to code
# Imports
import vapoursynth as vs
# getting Vapoursynth core
import ctypes
import sys
import os
core = vs.core
# Import scripts folder
scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
# loading plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/NNEDI3CL.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/DCTFilter.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeblockFilter/Deblock/Deblock.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/TIVTC/libtivtc.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3m.dll") # DeinterlaceFilter-Selector
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/akarin.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/ZSmooth/zsmooth.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DerainbowFilter/BiFrost/libbifrost.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DerainbowFilter/DeCross/libdecross.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/vszip.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/TDeintMod/TDeintMod.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
# defining beforeDeCross-function - START
def beforeDeCross(clip):
clip = core.deblock.Deblock(clip, quant=25)
clip = core.std.SetFrameProps(clip, _FieldBased=1)
return [clip]
# defining beforeDeCross-function - END
# Import scripts
import deblock
import dehalo
import antiAliasing
import denoise
import qtgmc
import validate
# Source: 'D:\Season 2 disk 1\A1_t00.mkv'
# Current color space: YUV420P8, bit depth: 8, resolution: 720x480, frame rate: 29.97fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, format: mpeg-2
# Loading 'D:\Season 2 disk 1\A1_t00.mkvÄ using LWLibavSource
clip = core.lsmas.LWLibavSource(source="D:/Season 2 disk 1/A1_t00.mkv", format="YUV420P8", stream_index=0, cache=0, prefer_hw=0)
frame = clip.get_frame(0)
# setting color matrix to 470bg.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT470_BG)
# setting color transfer (vs.TRANSFER_BT601), if it is not set.
if validate.transferIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT601)
# 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.
clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_LIMITED)
# making sure frame rate is set to 29.97fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# making sure the detected scan type is set (detected: top field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # scan type: top field first
# converting interlaced to full-height progressive for filtering (vsCheckmate) (using: TDeint())
clip = core.tdm.TDeintMod(clip=clip, order=1, mode=1) # new fps: 59.94
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
clip = core.vszip.Checkmate(clip, thr=5, tthr2=3)
# converting full-height progressive to interlaced (top field first)
clip = core.std.SelectEvery(clip=clip, cycle=2, offsets=[0])
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # scan type: top field first
[clip] = beforeDeCross(clip)
# clip current meta; color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97, color matrix: 470bg, yuv luminance scale: limited, scanorder: top field first, full height: true
# rainbow removal using DeCross
clip = core.decross.DeCross(clip, thresholdy=25)
# rainbow removal using BiFrost
clip = core.bifrost.Bifrost(clip, luma_thresh=2.00, interlaced=True)
clip2clip = clip
clip2clip = qtgmc.QTGMC(Input=clip2clip, Preset="fast", TFF=False, FPSDivisor=2)
# Deinterlacing using TIVTC
clip = core.tivtc.TFM(clip, metric=1, clip2=clip2clip)
clip = core.tivtc.TDecimate(clip, mode=1) # new fps: 23.976
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# denoising using MCTemporalDenoise
clip = denoise.MCTemporalDenoise(clip, settings="low", thSAD=200, thSAD2=300, thSCD1=300, thSCD2=90, truemotion=False, MVglobal=True, pel=2, pelsearch=4, search=5, searchparam=4, MVsharp=0, DCT=0, ncpu=1)
# Anti Aliasing using DAAMod
clip = antiAliasing.daamod(clip, nns=3, qual=2, pscrn=1, rep=6, opencl=True, device=0)
# applying dehalo using DeHalo_alpha
clip = dehalo.DeHalo_alpha(clip, rx=1.25, ry=1.25)
clip = core.std.Crop(clip, left=8, right=8, top=4, bottom=4) # cropping to 704x472
# Resizing using fmtconv - spline36
clip = core.fmtc.resample(clip, kernel="spline36", w=640, h=430, interlaced=False, interlacedd=False) # resolution 640x430 before YUV420P8 after YUV420P16
# applying deblocking using DeBlock QED
clip = deblock.Deblock_QED(clip)
# adjusting output color from YUV420P16 to YUV444P16 for PNGModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16)
# set output frame rate to 23.976fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# output
clip.set_output()
# script was created by Hybrid 2026.03.21.1also please dumb down you anser/solutions to gui specific settings, im not using a gui to code

