lvsfunc.dehardsub

Dehardsubbing functions and wrappers.

lvsfunc.dehardsub.bounded_dehardsub(hrdsb, ...)

Apply a list of lvsfunc.dehardsub.HardsubSign

lvsfunc.dehardsub.get_all_masks(hrdsb, ref, ...)

Get a clip of lvsfunc.dehardsub.HardsubSign masks.

lvsfunc.dehardsub.hardsub_mask(hrdsb, ref[, ...])

Zastin's spatially-aware hardsub mask.

class lvsfunc.dehardsub.HardsubMask(ranges=None, bound=None, *, blur=False, refframes=None)

Bases: lvsfunc.mask.DeferredMask, abc.ABC

Dehardsub masking interface.

Provides extra functions potentially useful for dehardsubbing.

Parameters
  • range – A single range or list of ranges to replace, compatible with lvsfunc.misc.replace_ranges

  • bound (Union[BoundingBox, Tuple[Tuple[int, int], Tuple[int, int]], None]) – A lvsfunc.mask.BoundingBox or a tuple that will be converted. (Default: None, no bounding)

  • blur (bool) – Blur the bounding mask (Default: True)

  • refframe – A single frame number to use to generate the mask or a list of frame numbers with the same length as range

get_progressive_dehardsub(hrdsb, ref, partials)

Dehardsub using multiple superior hardsubbed sources and one inferior non-subbed source.

Parameters
  • hrdsb (VideoNode) – Hardsub master source (eg Wakanim RU dub)

  • ref (VideoNode) – Non-subbed reference source (eg CR, Funi, Amazon)

  • partials (List[VideoNode]) – Sources to use for partial dehardsubbing (eg Waka DE, FR, SC)

Return type

Tuple[List[VideoNode], List[VideoNode]]

Returns

Dehardsub stages and masks used for progressive dehardsub

apply_dehardsub(hrdsb, ref, partials)

Apply dehardsubbing to a clip.

Parameters
  • hrdsb (VideoNode) – Hardsubbed source

  • ref (VideoNode) – Non-hardsubbed source

  • partials (Optional[List[VideoNode]]) – Other hardsubbed sources

Return type

VideoNode

Returns

Dehardsubbed clip

class lvsfunc.dehardsub.HardsubSign(*args, thresh=0.06, minimum=1, expand=8, inflate=7, **kwargs)

Bases: lvsfunc.dehardsub.HardsubMask

Hardsub scenefiltering helper using Zastin’s hardsub mask.

Parameters
  • thresh (float) – Binarization threshold, [0, 1] (Default: 0.06)

  • expand (int) – std.Maximum iterations (Default: 8)

  • inflate (int) – std.Inflate iterations (Default: 7)

thresh: float
minimum: int
expand: int
inflate: int
class lvsfunc.dehardsub.HardsubSignKgf(*args, highpass=5000, expand=8, **kwargs)

Bases: lvsfunc.dehardsub.HardsubMask

Hardsub scenefiltering helper using kgf.hardsubmask_fades.

Dependencies:

  • kagefunc

Parameters
  • highpass (int) – Highpass filter for hardsub detection (16-bit, Default: 5000)

  • expand (int) – kgf.hardsubmask_fades expand parameter (Default: 8)

highpass: int
expand: int
class lvsfunc.dehardsub.HardsubLine(*args, expand=None, **kwargs)

Bases: lvsfunc.dehardsub.HardsubMask

Hardsub scenefiltering helper using kgf.hardsubmask.

Dependencies:

  • kagefunc

Parameters

expand (Optional[int]) – kgf.hardsubmask expand parameter (Default: clip.width // 200)

expand: int | None
class lvsfunc.dehardsub.HardsubLineFade(ranges, *args, refframe=0.5, **kwargs)

Bases: lvsfunc.dehardsub.HardsubLine

Hardsub scenefiltering helper using kgf.hardsubmask. Similar to lvsfunc.dehardsub.HardsubLine but automatically sets the reference frame to the range’s midpoint.

Parameters

refframe (float) – Desired reference point as a percent of the frame range. 0 = first frame, 1 = last frame, 0.5 = midpoint (Default)

ref_float: float
get_mask(clip, ref)

Get the bounded mask.

Parameters
  • clip (VideoNode) – Source

  • ref (VideoNode) – Reference clip

Return type

VideoNode

Returns

Bounded mask

class lvsfunc.dehardsub.HardsubASS(filename, *args, fontdir=None, shift=None, **kwargs)

Bases: lvsfunc.dehardsub.HardsubMask

Generate a mask using an ass script, such as for dehardubbing AoD with CR DE.

Parameters
  • filename (str) – Path to ASS script.

  • fontdir (Optional[str]) – Extra fonts path.

  • shift (Optional[int]) – Offset to apply to the script, in frames. May misbehave due to timestamp rounding.

filename: str
fontdir: str | None
shift: int | None
class lvsfunc.dehardsub.HardsubSignFade(ranges, *args, refframe=0.5, **kwargs)

Bases: lvsfunc.dehardsub.HardsubSign

Hardsub scenefiltering helper using Zastin’s sign mask. Similar to lvsfunc.dehardsub.HardsubSign but automatically sets the reference frame to the range’s midpoint.

Parameters

refframe (float) – Desired reference point as a percent of the frame range. 0 = first frame, 1 = last frame, 0.5 = midpoint (Default)

get_mask(clip, ref)

Get the bounded mask.

Parameters
  • clip (VideoNode) – Source

  • ref (VideoNode) – Reference clip

Return type

VideoNode

Returns

Bounded mask

ref_float: float
lvsfunc.dehardsub.bounded_dehardsub(hrdsb, ref, signs, partials=None)

Apply a list of lvsfunc.dehardsub.HardsubSign

Parameters
Return type

VideoNode

Returns

Dehardsubbed clip

lvsfunc.dehardsub.get_all_masks(hrdsb, ref, signs)

Get a clip of lvsfunc.dehardsub.HardsubSign masks.

Parameters
Return type

VideoNode

Returns

Clip of all hardsub masks

lvsfunc.dehardsub.hardsub_mask(hrdsb, ref, thresh=0.06, minimum=1, expand=8, inflate=7)

Zastin’s spatially-aware hardsub mask.

Parameters
  • hrdsb (VideoNode) – Hardsubbed source

  • ref (VideoNode) – Reference clip

  • thresh (float) – Binarization threshold, [0, 1] (Default: 0.06)

  • minimum (int) – Times to minimize the max (Default: 1)

  • expand (int) – Times to maximize the mask (Default: 8)

  • inflate (int) – Times to inflate the mask (Default: 7)

Return type

VideoNode

Returns

Hardsub mask