Selur's Little Message Board

Full Version: Rektlvls
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Liebe Freunde der Videokompression,

ich würde gerne in meiner Filterchain dirty lines mittels rektlvls entfernen, ähnlich wie in diesem Guide.
In dem Ordner "C:\Program Files\Hybrid\64bit\vsscripts" befindet sich zwar ein script mit dem Namen rekt.py, jedoch fehlen rektaa.py, rekt_fast.py und rektlvls.py von dieser Repo.
Ich habe die entsprechenden Dateien in den "vsscripts" Ordner kopiert und versucht rektlvls vor meinem letzten Filter, GrainFactory, zu importieren, was in einem Error resultierte, als ich das Vapoursynth preview öffnen wollte.
[Image: grafik.png]
Wahrscheinlich liegt hier ein fundamentales Missverständnis meinserseits vor, wie Vapoursynth und Python funktionieren, also sorry schonmal davon dass ich von nichts eine Ahnung habe. Kann das überhaupt klappen was ich hier versuche?

Beste Grüße!
Kann es gerade nicht testen, aber aus dem Bauch heraus würde ich sagen, dass Du:
1. den kompletten 'rekt' Ordner (aus dem Projekt) importieren musst, d.h. entweder in vsscripts kopieren, oder explizit im Skript den Suchpfad entsprechend erweitern, wie Hybrid es für den vscripts Ordner macht.
2. anstatt 'import rektlvls' musst Du denke ich ein 'from rekt import rektlvls' verwenden
kann ich später aber mal testen und Genaueres zu sagen.

Falls Du Filter beschleunigen willst, dadurch dass Du das machst und der Filtercode nicht in der Custom Sektion ist wird das nicht klappen. Smile
Wenn Du eine Beschleunigung haben willst, dadruch, dass Du nur Teile des Bildes filterst solltest Du:
1. 'Filtering->Vapoursynth->Misc->UI->Show 'Only on region'-controls' aktivieren
2. bei dem entsprechenden Filter den Bereich im 'Only on region'-Bereich konfigurieren.
(dafür muss auch nichts Weiteres Importiert werden)


Cu Selur
Sorry, voll übersehen was Du erreichen wolltest. Smile
a. Falls die Linien am Rand sind, würde ich vermutlich eher erst mal die Filter unter "Filtering->Vapoursynth->Frame->Edge" antesten.
b. Habe es gerade mal getestet:
Den rekt-Ordner in vsscripts kopieren und dann in einem Custom-Bereich:
Code:
from rekt import rektlvls
fix = rektlvls(clip, rownum=None, rowval=None, colnum=None, colval=None, prot_val=[16, 235])
aufrufen (Parameter musst Du an Deine Bedürfnisse anpassen), klappt hier ohne Probleme.

Cu Selur
(02.10.2025, 14:07)Selur Wrote: [ -> ]a. Falls die Linien am Rand sind, würde ich vermutlich eher erst mal die Filter unter "Filtering->Vapoursynth->Frame->Edge" antesten.

Danke für die Antwort!

Nachdem ich es ausgetestet habe bin ich da voll bei dir, Balance/fill Borders ist viel angemessener für dirty lines.

Ich bin auch sehr begeistert von der ApplyOnlyTo Funktion, da der Film an dem ich arbeite scheinbar auf irgendeinem Format aufgenommen wurde wo der obere Rand des Bildes sich am physischen oberem Rand vom Negativfenster befindet (also nicht Matte). Dementsprechend verändert sich der Bedarf für Fillmargins von Szene zu Szene leicht. Mit ApplyOnlyTo habe ich die Möglichkeit Fillmargins für bestimmte Szenen aus- oder einzuschalten, jedoch bleiben die Einstellungen immer gleich. Könnte man auch irgendwie verschiedene Werte für verschiedene Szenen einstellen?
Quote:Könnte man auch irgendwie verschiedene Werte für verschiedene Szenen einstellen?
Du kannst einen Filter mehr als 1x in der Filter Queue haben (musst aber von FilterOrder zu FilterQueue wechseln, siehe: [INFO] About Vapoursynth Filter Order/Queue ). Smile
Sprich Du kannst z.B. einen Filter 1x mit Settings Y auf Szenen A, B, E anwenden und 1x mit Setting W auf Szenen C, D.
Gibt da einiges, was man machen kann und was nicht in den Standardeinstellungen möglich ist:
[Image: grafik.png]
Da aber die meisten Leute an sich schon Probleme mit der Oberfläche haben, gibt es 'Filtering->Vapoursynth->Misc->UI' und 'Filtering->Vapoursynth->Misc->Filter Order/Queue' und ein paar Optionen optional zu haben.

Cu Selur
(02.10.2025, 15:43)Selur Wrote: [ -> ]Da aber die meisten Leute an sich schon Probleme mit der Oberfläche haben, gibt es 'Filtering->Vapoursynth->Misc->UI' und 'Filtering->Vapoursynth->Misc->Filter Order/Queue' und ein paar Optionen optional zu haben.

Ich finde im standart "Filter Order" Modus ist Hybrid sehr übersichtlich wenn man bedenkt wie viele Funktionen es in sich vereint. Wem das zu viel ist ist zu raten zu Handbrake zu wechseln und sich mit den Fehlen von Filtern abzufinden.

Ich bin gerade nicht zuhause und kann das nicht checken, aber wenn ich von order zu queue wechsele, werden dann die Filter die ich bereits gesetzt habe bzw. die in meiner Config sind übernommen?

Beste Grüße
Quote: Ich bin gerade nicht zuhause und kann das nicht checken, aber wenn ich von order zu queue wechsele, werden dann die Filter die ich bereits gesetzt habe bzw. die in meiner Config sind übernommen?
Gibt einen Button "Reset 'Filter Queue' to 'Filter Order'", wenn man den drückt, werden die aktuellen Einstellungen in die FilterQueue übernommen.

Cu Selur
(02.10.2025, 15:43)Selur Wrote: [ -> ]Gibt einen Button "Reset 'Filter Queue' to 'Filter Order'", wenn man den drückt, werden die aktuellen Einstellungen in die FilterQueue übernommen.

Danke! Leider scheint es bei dieser Übernahme einen kleinen Bug zu geben:

[Image: grafik.png]

Da der Bug wohl mit GrainFactory zusammenhängt hänge ich dir nochmal meine entsprechenden Einstellungen an.

[Image: grafik.png]

Und hier nochmal das ganze Script: 
Code:
# Imports
import vapoursynth as vs
# getting Vapoursynth core
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 plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SharpenFilter/AWarpSharp2/libawarpsharp2.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/Support/libvs_placebo.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeblockFilter/DeblockPP7/DeblockPP7.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/Support/RemapFramesVapoursynth.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libfillborders.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/akarin.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/SourceFilter/d2vSource/DGDecode.dll")
# defining beforeGrainFactory-function - START
def beforeGrainFactory(clip):
  from rekt import rektlvls
  fix = rektlvls(clip, rownum=[803, 802, 801, 800], rowval=[-100, -100, -100, -100])
  return clip
# defining beforeGrainFactory-function - END

# Import scripts
import addGrain
import dehalo
import sharpen
import edge
import validate
# Source: 'C:\Users\jopro\Downloads\vid_1029837442356038.ts'
# Current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, frame rate: 25fps, scanorder: progressive, yuv luminance scale: limited, matrix: 709, format: mpeg-2
# Loading C:\Users\jopro\Downloads\vid_1029837442356038.ts using DGDecode
clip = core.dgdecode.MPEG2Source("C:/Users/jopro/AppData/Local/Temp/ts_bee59dd3f81fcda54f6dedccf966712b_853323747.d2v",info=3)# 25 fps, scanorder: progressive
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_BT709), if it is not set.
if validate.primariesIsInvalid(clip):
  clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT709)
# 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
clip = core.tivtc.TFM(clip=clip, mode=5, slow=2)
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
# Fix bright and dark line artifacts near the border of an image using BalanceBorders
clip = edge.bbmod(c=clip,cLeft=7,cTop=4,cRight=2,cBottom=0,thresh=100,blur=1400)
# Fill borders using FillBorders
clip = core.remap.Rfs(baseclip=clip, sourceclip=core.fb.FillBorders(clip=clip,mode="fillmargins",top=8), mappings="[0 500]")
# applying delocking using Deblock
clip = core.deblock.Deblock(clip=clip, quant=10)
# applying deblocking using DeblockPP7
clip = core.pp7.DeblockPP7(clip=clip, mode=2)
clip = core.std.Crop(clip=clip, left=2, right=2, top=4, bottom=8)# cropping to 1916x1068
# applying debanding using vs-placebo.Deband
clip = core.placebo.Deband(clip=clip, radius=8.00, iterations=2, grain=2.00, planes=1)
# sharpening using FineSharp
clip = sharpen.FineSharp(clip=clip, sstr=3.50)
clip = dehalo.EdgeCleaner(c=clip, strength=13, rmode=1)
clip = beforeGrainFactory(clip)
# adding grain using GrainFactory3
clip = addGrain.GrainFactory3(clp=clip, g1str=4.50, g1shrp=35, g1size=2.20, g2str=2.70, g2shrp=43, g2size=1.70, g3str=2.10, g3shrp=55, g3size=1.30, temp_avg=65, ontop_grain=1.70)
# set output frame rate to 25fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# output
clip.set_output()

Ich bin übrigens die selbe Person die dir auf den Doom9 Foren eine PN geschickt hat bezöglich eines Bugs beim dem Temporal Average Parameter von GrainFactory. Vielleicht ist der Fix nicht kompatibel mit der Übernahme der Einstellungen von Filter Order zu Filter Queue?

LG
Bin verwirrt, in dem Skript steht:
Code:
clip = addGrain.GrainFactory3(clp=clip, g1str=4.50, g1shrp=35, g1size=2.20, g2str=2.70, g2shrp=43, g2size=1.70, g3str=2.10, g3shrp=55, g3size=1.30, temp_avg=65, ontop_grain=1.70)
Kann das hier nicht nachstellen.
Versuch mal mit der aktuellen dev (Hybrid_dev_2025.10.02-1800) und erstell mal einen Debug output davon, vielleicht sieht man dann was da schief geht.

Bei mir wird auch mit aktivierter FilterQueue im Skript korrekt:
Code:
clip = addGrain.GrainFactory3(clp=clip, g1str=4.50, g1shrp=35, g1size=2.20, g2str=2.70, g2shrp=43, g2size=1.70, g3str=2.10, g3shrp=55, g3size=1.30, temp_avg=65, ontop_grain=1.70)
generiert und der Preview geht.
Der zugehörige FilterQueue Eintrag sieht auch richtig aus.
Code:
AddGrain - GrainFactory:*,*:vsGrainFactoryDarkMidEnd;56:*,*:vsGrainFactoryDarkMidStart;24:*,*:vsGrainFactoryG1Sharpness;35:*,*:vsGrainFactoryG1Size;2.20:*,*:vsGrainFactoryG1Strength;4.50:*,*:vsGrainFactoryG2Sharpness;43:*,*:vsGrainFactoryG2Size;1.70:*,*:vsGrainFactoryG2Strength;2.70:*,*:vsGrainFactoryG3Sharpness;55:*,*:vsGrainFactoryG3Size;1.30:*,*:vsGrainFactoryG3Strength;2.10:*,*:vsGrainFactoryMidBrightEnd;160:*,*:vsGrainFactoryMidBrightStart;128:*,*:vsGrainFactoryOnTopGrain;1.70:*,*:vsGrainFactoryTempAverage;65:*,*:vsUseGrainFactory3;true:*,*:vsGrainFactoryUseMasked;false:*,*:vsGrainFactoryMaskName;LimitMask:*,*:vsGrainFactoryMaskStack;:*,*:vsGrainFactoryLimitMaskLimit;30:*,*:vsGrainFactoryLimitMaskFilterBelow;true:*,*:vsGrainFactoryLimitMaskShow;false:*,*:vsGrainFactoryMaskApplyCount;0:*,*:vsGrainFactoryRetinexEdgeMaskTCSigma;1.00:*,*:vsGrainFactoryCartoonEdgesLow;0:*,*:vsGrainFactoryCartoonEdgesHigh;255:*,*:vsGrainFactoryRobertsEdgesLow;0:*,*:vsGrainFactoryRobertsEdgesHigh;255:*,*:vsGrainFactoryRectangleMaskShow;false:*,*:vsGrainFactoryRectangleMaskInvert;false:*,*:vsGrainFactoryRectangleMaskCropLeft;0:*,*:vsGrainFactoryRectangleMaskCropTop;0:*,*:vsGrainFactoryRectangleMaskCropRight;0:*,*:vsGrainFactoryRectangleMaskCropBottom;0:*,*:vsGrainFactoryMotionMaskTh1;10:*,*:vsGrainFactoryMotionMaskTh2;10:*,*:vsGrainFactoryMotionMaskT;15:*,*:vsGrainFactoryFinegrainMaskFilterMode;RemoveGrain:*,*:vsGrainFactoryRetinexEdgeMaskInvert;false:*,*:vsGrainFactoryRetinexEdgeMaskShow;false:*,*:vsGrainFactoryRetinexEdgeMaskBinarize;false:*,*:vsGrainFactoryRetinexEdgeMaskBinarizeThreshold;0.500:*,*:vsGrainFactoryRetinexEdgeMaskScaleF;false:*,*:vsGrainFactoryRetinexEdgeMaskScaleFactor;1.00:*,*:vsGrainFactoryKirschEdgeMaskInvert;false:*,*:vsGrainFactoryKirschEdgeMaskShow;false:*,*:vsGrainFactoryKirschEdgeMaskBinarize;false:*,*:vsGrainFactoryKirschEdgeMaskBinarizeThreshold;0.500:*,*:vsGrainFactoryKirschEdgeMaskScaleF;false:*,*:vsGrainFactoryKirschEdgeMaskScaleFactor;1.00:*,*:vsGrainFactorySobelFastEdgeMaskInvert;false:*,*:vsGrainFactorySobelFastEdgeMaskShow;false:*,*:vsGrainFactorySobelFastEdgeMaskBinarize;false:*,*:vsGrainFactorySobelFastEdgeMaskBinarizeThreshold;0.500:*,*:vsGrainFactorySobelFastEdgeMaskScaleF;false:*,*:vsGrainFactorySobelFastEdgeMaskScaleFactor;1.00:*,*:vsGrainFactoryBloatedEdgeMaskInvert;false:*,*:vsGrainFactoryBloatedEdgeMaskShow;false:*,*:vsGrainFactoryBloatedEdgeMaskBinarize;false:*,*:vsGrainFactoryBloatedEdgeMaskBinarizeThreshold;0.500:*,*:vsGrainFactoryBloatedEdgeMaskScaleF;false:*,*:vsGrainFactoryBloatedEdgeMaskScaleFactor;1.00:*,*:vsGrainFactorySobelEdgeMaskInvert;false:*,*:vsGrainFactorySobelEdgeMaskShow;false:*,*:vsGrainFactorySobelEdgeMaskBinarize;false:*,*:vsGrainFactorySobelEdgeMaskBinarizeThreshold;0.500:*,*:vsGrainFactorySobelEdgeMaskScaleF;false:*,*:vsGrainFactorySobelEdgeMaskScaleFactor;1.00:*,*:vsGrainFactoryPrewittEdgeMaskInvert;false:*,*:vsGrainFactoryPrewittEdgeMaskShow;false:*,*:vsGrainFactoryPrewittEdgeMaskBinarize;false:*,*:vsGrainFactoryPrewittEdgeMaskBinarizeThreshold;0.500:*,*:vsGrainFactoryPrewittEdgeMaskScaleF;false:*,*:vsGrainFactoryPrewittEdgeMaskScaleFactor;1.00:*,*:vsGrainFactoryCartoonEdgesInvert;false:*,*:vsGrainFactoryCartoonEdgesShow;false:*,*:vsGrainFactoryCartoonEdgesBinarize;false:*,*:vsGrainFactoryCartoonEdgesBinarizeThreshold;0.500:*,*:vsGrainFactoryCartoonEdgesScaleF;false:*,*:vsGrainFactoryCartoonEdgesScaleFactor;1.00:*,*:vsGrainFactoryRobertsEdgesInvert;false:*,*:vsGrainFactoryRobertsEdgesShow;false:*,*:vsGrainFactoryRobertsEdgesBinarize;false:*,*:vsGrainFactoryRobertsEdgesBinarizeThreshold;0.500:*,*:vsGrainFactoryRobertsEdgesScaleF;false:*,*:vsGrainFactoryRobertsEdgesScaleFactor;1.00:*,*:vsGrainFactoryFinegrainMaskInvert;false:*,*:vsGrainFactoryFinegrainMaskShow;false:*,*:vsGrainFactoryFinegrainMaskBinarize;false:*,*:vsGrainFactoryFinegrainMaskBinarizeThreshold;0.500:*,*:vsGrainFactoryFinegrainMaskScaleF;false:*,*:vsGrainFactoryFinegrainMaskScaleFactor;1.00:*,*:vsGrainFactoryMotionMaskInvert;false:*,*:vsGrainFactoryMotionMaskShow;false:*,*:vsGrainFactoryMotionMaskBinarize;false:*,*:vsGrainFactoryMotionMaskBinarizeThreshold;0.500:*,*:vsGrainFactoryMotionMaskScaleF;false:*,*:vsGrainFactoryMotionMaskScaleFactor;1.00:*,*:vsGrainFactoryUseMerge;false:*,*:vsGrainFactoryMergeY;0.000:*,*:vsGrainFactoryMergeU;0.000:*,*:vsGrainFactoryMergeV;0.000:*,*:vsGrainFactoryMergeYUV;true:*,*:vsGrainFactoryMergeYUVValue;0.000:*,*:vsGrainFactoryApplyOnlyTo;false:*,*:vsGrainFactoryOnlyRange;false:*,*:vsGrainFactoryRanges;:*,*:vsGrainFactoryApplyOnlyToEvery;false:*,*:vsGrainFactoryApplyOnlyToEveryOffsets;:*,*:vsGrainFactoryApplyOnlyToEveryCycle;5:*,*:vsGrainFactoryOnRegion;false:*,*:vsGrainFactoryOnRegionX;0:*,*:vsGrainFactoryOnRegionY;0:*,*:vsGrainFactoryOnRegionWidth;0:*,*:vsGrainFactoryOnRegionHeight;0:*,*:vsGrainFactoryGimmick;false:*,*:vsGrainFactoryGimmickFlipVertical;false:*,*:vsGrainFactoryGimmickFlipHorizontal;false:*,*:vsGrainFactoryGimmickResize;false:*,*:vsGrainFactoryGimmickResizeX;48:*,*:vsGrainFactoryGimmickResizeY;48:*,*:vsGrainFactoryGimmickResizer;cubic:*,*:vsGrainFactoryGimmickResizerUndo;true:*,*:vsGrainFactoryGimmickRestrictBitdepth;do not:*,*:vsGrainFactoryGimmickPreColor;false:*,*:vsGrainFactoryGimmickPreColorValue;no change:*,*:vsGrainFactoryGimmickRotate;off:*,*:vsGrainFactoryGimmickCompareEffect;false

Etwas lesbarer formatiert:

ParameterWert
AddGrain - GrainFactoryvsGrainFactory
vsGrainFactoryDarkMidEnd56
vsGrainFactoryDarkMidStart24
vsGrainFactoryG1Sharpness35
vsGrainFactoryG1Size2.20
vsGrainFactoryG1Strength4.50
vsGrainFactoryG2Sharpness43
vsGrainFactoryG2Size1.70
vsGrainFactoryG2Strength2.70
vsGrainFactoryG3Sharpness55
vsGrainFactoryG3Size1.30
vsGrainFactoryG3Strength2.10
vsGrainFactoryMidBrightEnd160
vsGrainFactoryMidBrightStart128
vsGrainFactoryOnTopGrain1.70
vsGrainFactoryTempAverage65
vsUseGrainFactory3true
vsGrainFactoryUseMaskedfalse
vsGrainFactoryMaskNameLimitMask
vsGrainFactoryMaskStack*leer*
vsGrainFactoryLimitMaskLimit30
vsGrainFactoryLimitMaskFilterBelowtrue
vsGrainFactoryLimitMaskShowfalse
vsGrainFactoryMaskApplyCount0
vsGrainFactoryRetinexEdgeMaskTCSigma1.00
vsGrainFactoryCartoonEdgesLow0
vsGrainFactoryCartoonEdgesHigh255
vsGrainFactoryRobertsEdgesLow0
vsGrainFactoryRobertsEdgesHigh255
vsGrainFactoryRectangleMaskShowfalse
vsGrainFactoryRectangleMaskInvertfalse
vsGrainFactoryRectangleMaskCropLeft0
vsGrainFactoryRectangleMaskCropTop0
vsGrainFactoryRectangleMaskCropRight0
vsGrainFactoryRectangleMaskCropBottom0
vsGrainFactoryMotionMaskTh110
vsGrainFactoryMotionMaskTh210
vsGrainFactoryMotionMaskT15
vsGrainFactoryFinegrainMaskFilterModeRemoveGrain
vsGrainFactoryRetinexEdgeMaskInvertfalse
vsGrainFactoryRetinexEdgeMaskShowfalse
vsGrainFactoryRetinexEdgeMaskBinarizefalse
vsGrainFactoryRetinexEdgeMaskBinarizeThreshold0.500
vsGrainFactoryRetinexEdgeMaskScaleFfalse
vsGrainFactoryRetinexEdgeMaskScaleFactor1.00
vsGrainFactoryKirschEdgeMaskInvertfalse
vsGrainFactoryKirschEdgeMaskShowfalse
vsGrainFactoryKirschEdgeMaskBinarizefalse
vsGrainFactoryKirschEdgeMaskBinarizeThreshold0.500
vsGrainFactoryKirschEdgeMaskScaleFfalse
vsGrainFactoryKirschEdgeMaskScaleFactor1.00
vsGrainFactorySobelFastEdgeMaskInvertfalse
vsGrainFactorySobelFastEdgeMaskShowfalse
vsGrainFactorySobelFastEdgeMaskBinarizefalse
vsGrainFactorySobelFastEdgeMaskBinarizeThreshold0.500
vsGrainFactorySobelFastEdgeMaskScaleFfalse
vsGrainFactorySobelFastEdgeMaskScaleFactor1.00
vsGrainFactoryBloatedEdgeMaskInvertfalse
vsGrainFactoryBloatedEdgeMaskShowfalse
vsGrainFactoryBloatedEdgeMaskBinarizefalse
vsGrainFactoryBloatedEdgeMaskBinarizeThreshold0.500
vsGrainFactoryBloatedEdgeMaskScaleFfalse
vsGrainFactoryBloatedEdgeMaskScaleFactor1.00
vsGrainFactorySobelEdgeMaskInvertfalse
vsGrainFactorySobelEdgeMaskShowfalse
vsGrainFactorySobelEdgeMaskBinarizefalse
vsGrainFactorySobelEdgeMaskBinarizeThreshold0.500
vsGrainFactorySobelEdgeMaskScaleFfalse
vsGrainFactorySobelEdgeMaskScaleFactor1.00
vsGrainFactoryPrewittEdgeMaskInvertfalse
vsGrainFactoryPrewittEdgeMaskShowfalse
vsGrainFactoryPrewittEdgeMaskBinarizefalse
vsGrainFactoryPrewittEdgeMaskBinarizeThreshold0.500
vsGrainFactoryPrewittEdgeMaskScaleFfalse
vsGrainFactoryPrewittEdgeMaskScaleFactor1.00
vsGrainFactoryCartoonEdgesInvertfalse
vsGrainFactoryCartoonEdgesShowfalse
vsGrainFactoryCartoonEdgesBinarizefalse
vsGrainFactoryCartoonEdgesBinarizeThreshold0.500
vsGrainFactoryCartoonEdgesScaleFfalse
vsGrainFactoryCartoonEdgesScaleFactor1.00
vsGrainFactoryRobertsEdgesInvertfalse
vsGrainFactoryRobertsEdgesShowfalse
vsGrainFactoryRobertsEdgesBinarizefalse
vsGrainFactoryRobertsEdgesBinarizeThreshold0.500
vsGrainFactoryRobertsEdgesScaleFfalse
vsGrainFactoryRobertsEdgesScaleFactor1.00
vsGrainFactoryFinegrainMaskInvertfalse
vsGrainFactoryFinegrainMaskShowfalse
vsGrainFactoryFinegrainMaskBinarizefalse
vsGrainFactoryFinegrainMaskBinarizeThreshold0.500
vsGrainFactoryFinegrainMaskScaleFfalse
vsGrainFactoryFinegrainMaskScaleFactor1.00
vsGrainFactoryMotionMaskInvertfalse
vsGrainFactoryMotionMaskShowfalse
vsGrainFactoryMotionMaskBinarizefalse
vsGrainFactoryMotionMaskBinarizeThreshold0.500
vsGrainFactoryMotionMaskScaleFfalse
vsGrainFactoryMotionMaskScaleFactor1.00
vsGrainFactoryUseMergefalse
vsGrainFactoryMergeY0.000
vsGrainFactoryMergeU0.000
vsGrainFactoryMergeV0.000
vsGrainFactoryMergeYUVtrue
vsGrainFactoryMergeYUVValue0.000
vsGrainFactoryApplyOnlyTofalse
vsGrainFactoryOnlyRangefalse
vsGrainFactoryRanges*leer*
vsGrainFactoryApplyOnlyToEveryfalse
vsGrainFactoryApplyOnlyToEveryOffsets*leer*
vsGrainFactoryApplyOnlyToEveryCycle5
vsGrainFactoryOnRegionfalse
vsGrainFactoryOnRegionX0
vsGrainFactoryOnRegionY0
vsGrainFactoryOnRegionWidth0
vsGrainFactoryOnRegionHeight0
vsGrainFactoryGimmickfalse
vsGrainFactoryGimmickFlipVerticalfalse
vsGrainFactoryGimmickFlipHorizontalfalse
vsGrainFactoryGimmickResizefalse
vsGrainFactoryGimmickResizeX48
vsGrainFactoryGimmickResizeY48
vsGrainFactoryGimmickResizercubic
vsGrainFactoryGimmickResizerUndotrue
vsGrainFactoryGimmickRestrictBitdepthdo not
vsGrainFactoryGimmickPreColorfalse
vsGrainFactoryGimmickPreColorValueno change
vsGrainFactoryGimmickRotateoff
vsGrainFactoryGimmickCompareEffectfalse



Cu Selur
(02.10.2025, 20:04)Selur Wrote: [ -> ]Versuch mal mit der aktuellen dev (Hybrid_dev_2025.10.02-1800) und erstell mal einen Debug output davon, vielleicht sieht man dann was da schief geht.

Jo, jetzt klappts.

Nochmal tausend Dank, du bist echt ein super Dev/Maintainer, aktiv und hilfsbereitSmile

Beste Grüße!