From 0b1ced8378f7a9c48b5c851c5d6317c41f49f95c Mon Sep 17 00:00:00 2001 From: LightArrowsEXE Date: Mon, 13 Jul 2026 14:35:18 +0200 Subject: [PATCH] RB: Force SampleGridoModel.MATCH_EDGES descale and rescale calls --- vodesfunc/rescale_ext/regular_rescale.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/vodesfunc/rescale_ext/regular_rescale.py b/vodesfunc/rescale_ext/regular_rescale.py index a769b3f..6f91602 100644 --- a/vodesfunc/rescale_ext/regular_rescale.py +++ b/vodesfunc/rescale_ext/regular_rescale.py @@ -1,7 +1,7 @@ from jetpytools import KwargsT from typing import Any from vstools import vs -from vskernels import BorderHandling +from vskernels import BorderHandling, SampleGridModel from vsscale import ScalingArgs from .base import RescaleBase @@ -18,6 +18,11 @@ def _scaling_args(self, **kwargs: Any) -> ScalingArgs: kwargs = kwargs | dict(sample_grid_model=self.sample_grid_model) return ScalingArgs.from_args(**kwargs) + def _kernel_kwargs(self, kwargs: KwargsT) -> KwargsT: + if self.sample_grid_model: + kwargs = kwargs | dict(sample_grid_model=SampleGridModel.MATCH_EDGES) + return kwargs + def _non_fieldbased_descale( self, clip: vs.VideoNode, @@ -37,6 +42,8 @@ def _non_fieldbased_descale( if isinstance(self.ignore_mask, vs.VideoNode): args = args | dict(ignore_mask=self.ignore_mask) + args = self._kernel_kwargs(args) + self.post_crop = sc_args.kwargs(2) self.rescale_args = sc_args.kwargs() @@ -67,7 +74,9 @@ def _descale_step(workclip: vs.VideoNode, order: str) -> vs.VideoNode: return self.kernel.descale( workclip, - **(sc_args_direction.kwargs() | dict(border_handling=self.border_handling, ignore_mask=ignore_mask) | direction), + **self._kernel_kwargs( + sc_args_direction.kwargs() | dict(border_handling=self.border_handling, ignore_mask=ignore_mask) | direction + ), ) self.descaled = clip @@ -79,7 +88,8 @@ def _descale_step(workclip: vs.VideoNode, order: str) -> vs.VideoNode: self.descaled = self.kernel.descale(clip, **args) self.rescaled = self.kernel.rescale( - self.descaled, **(self.rescale_args | dict(width=clip.width, height=clip.height, border_handling=self.border_handling)) + self.descaled, + **self._kernel_kwargs(self.rescale_args | dict(width=clip.width, height=clip.height, border_handling=self.border_handling)), ) def _raw_non_fieldbased_descale(