This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

[BUG] Resize Keeps Changing on its own when Starting a Batch Queue, Please fix this.
#45
What I did
  • Start Hybrid
  • Load a Source file
  • Enabled 'Filtering->Vapoursynth->Frame->Resize->Resizer', chose 'VSMLRT' and selected a model.
  • Enabled 'Filtering->Vapoursynth->Frame->Stabilize->Temporalfix' and set '[10 20]' as 'Exclude'.
  • Adjusted 'Filtering->Vapoursynth->Misc->Filter Order/Queue' by moving 'Temporalfix' behind 'Resize'
  • Checked the Vapoursynth Script View
    # Imports
    import vapoursynth as vs
    # getting Vapoursynth core
    import ctypes
    import site
    import sys
    import os
    core = vs.core
    # Import scripts folder
    scriptPath = 'F:/Hybrid/64bit/vsscripts'
    sys.path.insert(0, os.path.abspath(scriptPath))
    os.environ["CUDA_MODULE_LOADING"] = "LAZY"
    # 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/Support/libmotionmask.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/ColorFilter/Retinex/Retinex.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/CTMF/CTMF.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/TCanny.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libfillborders.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libtemporalmedian.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vs-mlrt/vstrt.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
    core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
    # Import scripts
    import vs_temporalfix
    from importlib.machinery import SourceFileLoader
    vsmlrt = SourceFileLoader('vsmlrt', 'F:/Hybrid/64bit/vs-mlrt/vsmlrt.py').load_module()
    import validate
    # Source: 'G:\TestClips&Co\files\test.avi'
    # Current color space: YUV420P8, bit depth: 8, resolution: 640x352, frame rate: 25fps, scanorder: progressive, yuv luminance scale: limited, matrix: 470bg, format: MPEG-4 Visual
    # Loading G:\TestClips&Co\files\test.avi using LWLibavSource
    clip = core.lsmas.LWLibavSource(source="G:/TestClips&Co/files/test.avi", 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 25fps
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    # making sure the detected scan type is set (detected: progressive)
    clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
    # changing range from limited to full range for vsVSMLRT
    clip = core.resize.Bicubic(clip, range_in_s="limited", range_s="full")
    # setting color range to PC (full) range.
    clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_FULL)
    # adjusting color space from YUV420P8 to RGBH for vsVSMLRT
    clip = core.resize.Bicubic(clip=clip, format=vs.RGBH, matrix_in_s="470bg", range_s="full")
    # resizing using VSMLRT
    from vsmlrt import Backend
    clip = vsmlrt.inference([clip],network_path="F:/Hybrid/64bit/onnx_models/2x_AnimeJaNai_Standard_V1_Compact_net_g_120000.onnx", backend=Backend.TRT(fp16=True,device_id=0,num_streams=1,verbose=True,use_cuda_graph=False,workspace=1073741824,builder_optimization_level=3,engine_folder="J:/TRT"))
    # resizing 1280x704 to 640x352
    # adjusting resizing
    clip = core.resize.Bicubic(clip=clip, format=vs.RGBS, range_s="full")
    clip = core.fmtc.resample(clip=clip, w=640, h=352, kernel="spline64", interlaced=False, interlacedd=False)
    # changing range from full to limited range for vsVSMLRT
    clip = core.resize.Bicubic(clip, range_in_s="full", range_s="limited")
    # changing range from limited to full range for vsTemporalfix
    clip = core.resize.Bicubic(clip, range_in_s="limited", range_s="full")
    # adjusting color space from RGBS to YUV444P16 for vsTemporalfix
    clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, matrix_s="470bg", range_s="full", dither_type="error_diffusion")
    # stabilizing using Temporalfix
    clip = vs_temporalfix.vs_temporalfix(clip=clip,exclude="[10 20]")
    # changing range from full to limited range for vsTemporalfix
    clip = core.resize.Bicubic(clip, range_in_s="full", range_s="limited")
    # setting color range to TV (limited) range.
    clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_LIMITED)
    # adjusting output color from: YUV444P16 to YUV420P10 for NVEncModel
    clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, range_s="limited", dither_type="error_diffusion")
    # set output frame rate to 25fps (progressive)
    clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
    # output
    clip.set_output()
    => Temporalfix is present.
  • Enabled "Stepped Resize" for the resizer.
    => Temporalfix is present.

=> Can't reproduce this here. (used latest dev Hybrid_dev_2024.10.16-54220)

Quote:(Side note irrelevant, but doing vsmlrt with stepped resize 2 and CAS as sharpening in the same section results in half green video sections on encode but not in preview, already found alternative to for this, LSFMod Works)
Strange, did a quick test:
# Imports
import vapoursynth as vs
# getting Vapoursynth core
import site
import sys
import os
core = vs.core
# Import scripts folder
scriptPath = 'F:/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
os.environ["CUDA_MODULE_LOADING"] = "LAZY"
# loading plugins
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SharpenFilter/CAS/CAS.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vs-mlrt/vstrt.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
# Import scripts
from importlib.machinery import SourceFileLoader
vsmlrt = SourceFileLoader('vsmlrt', 'F:/Hybrid/64bit/vs-mlrt/vsmlrt.py').load_module()
import validate
# Source: 'G:\TestClips&Co\files\test.avi'
# Current color space: YUV420P8, bit depth: 8, resolution: 640x352, frame rate: 25fps, scanorder: progressive, yuv luminance scale: limited, matrix: 470bg, format: MPEG-4 Visual
# Loading G:\TestClips&Co\files\test.avi using LWLibavSource
clip = core.lsmas.LWLibavSource(source="G:/TestClips&Co/files/test.avi", 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 25fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# making sure the detected scan type is set (detected: progressive)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
# changing range from limited to full range for vsVSMLRT
clip = core.resize.Bicubic(clip, range_in_s="limited", range_s="full")
# setting color range to PC (full) range.
clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_FULL)
# adjusting color space from YUV420P8 to RGBH for vsVSMLRT
clip = core.resize.Bicubic(clip=clip, format=vs.RGBH, matrix_in_s="470bg", range_s="full")
# Step 1: current: 640x352, target: 1280x704
# resizing using VSMLRT
from vsmlrt import Backend
clip = vsmlrt.inference([clip],network_path="F:/Hybrid/64bit/onnx_models/2x_CX_100k.onnx", backend=Backend.TRT(fp16=True,device_id=0,num_streams=1,verbose=True,use_cuda_graph=False,workspace=1073741824,builder_optimization_level=3,engine_folder="J:/TRT"))
# sharpening stepped resize using CAS
# adjusting color space from RGBH to RGB48 for vsCAS
clip = core.resize.Bicubic(clip=clip, format=vs.RGB48, range_s="full")
# contrast sharpening using CAS
clip = core.cas.CAS(clip=clip, sharpness=0.6)
clip = core.resize.Bicubic(clip=clip, format=vs.RGBH, range_s="full")
# Step 2: current: 1280x704, target: 1920x1056
# resizing using VSMLRT
clip = vsmlrt.inference([clip],network_path="F:/Hybrid/64bit/onnx_models/2x_CX_100k.onnx", backend=Backend.TRT(fp16=True,device_id=0,num_streams=1,verbose=True,use_cuda_graph=False,workspace=1073741824,builder_optimization_level=3,engine_folder="J:/TRT"))
# resizing 2560x1408 to 1920x1056
# adjusting resizing
clip = core.resize.Bicubic(clip=clip, format=vs.RGBS, range_s="full")
clip = core.fmtc.resample(clip=clip, w=1920, h=1056, kernel="spline64", interlaced=False, interlacedd=False)
# changing range from full to limited range for vsVSMLRT
clip = core.resize.Bicubic(clip, range_in_s="full", range_s="limited")
# adjusting output color from: RGBS to YUV420P10 for NVEncModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, matrix_s="470bg", range_s="limited", dither_type="error_diffusion")
# set output frame rate to 25fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# output
clip.set_output()
Preview looked fine.
Encoding also had no green flickering. (stepped VLSMRT/VSGAN really slow)


Cu Selur
Reply


Messages In This Thread
RE: Resize Keeps Changing on its own when Starting a Batch Queue, Please fix this. - by Selur - 16.10.2024, 15:03

Forum Jump:


Users browsing this thread: 12 Guest(s)