17.09.2026, 20:03
Uploaded a new dev with a reworked "filldrops.ReplaceFlagged" which should be a lot faster. 
so using:
inside the custom section is way more usable. 
Remember to also add Denoiser->QTGMC.
(Maybe I'll add some ui elements for this into the Hybrid next week.)
Cu Selur

so using:
# Separate branch used only to calculate properties.
stats = core.std.PlaneStats(clip, plane=0)
# Calculate which frames need replacing
# A frame is marked for replacement if its average luma is higher than the previous and below the next.
# This way one frame flashes should get detected.
def set_interp_flag(n, f):
f = f.copy()
use = False
if 0 < n < clip.num_frames - 1:
cur = f.props["PlaneStatsAverage"]
prev = stats.get_frame(n - 1).props["PlaneStatsAverage"]
nxt = stats.get_frame(n + 1).props["PlaneStatsAverage"]
use = cur > prev and cur > nxt
f.props["_UseInterp"] = int(use)
return f
# Input = original frames, prop source = stats
flagged = core.std.ModifyFrame(clip, stats, set_interp_flag)
# do the actual replacement of the flagged frames
import filldrops
clip = filldrops.ReplaceFlagged(flagged, method="mv")
Remember to also add Denoiser->QTGMC.
(Maybe I'll add some ui elements for this into the Hybrid next week.)
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.

