100 lines
2.3 KiB
Python
100 lines
2.3 KiB
Python
import vapoursynth as vs
|
|
|
|
from vivy_common import (VivyConfig, VivySource, antialias, deband, denoise,
|
|
finalize, fsrcnnx_rescale, letterbox_edgefix, letterbox_refix, regrain)
|
|
|
|
from yt_common.automation import SelfRunner
|
|
from yt_common.chapters import Chapter
|
|
from yt_common.source import waka_replace
|
|
|
|
from lvsfunc.types import Range
|
|
from lvsfunc.dehardsub import HardsubLine, HardsubSignFade, HardsubMask, bounded_dehardsub
|
|
|
|
from typing import List
|
|
|
|
import os
|
|
|
|
core = vs.core
|
|
|
|
|
|
EPNUM: int = int(os.path.basename(os.path.splitext(__file__)[0]))
|
|
CONFIG: VivyConfig = VivyConfig(EPNUM)
|
|
SOURCE: VivySource = VivySource(CONFIG)
|
|
|
|
CHAPTERS: List[Chapter] = [
|
|
Chapter("Intro", 0),
|
|
Chapter("OP", 4221),
|
|
Chapter("Part A", 6379),
|
|
Chapter("Part B", 11820),
|
|
Chapter("ED", 31528),
|
|
Chapter("PV", 33686),
|
|
]
|
|
|
|
WAKA_REPLACE: List[List[Range]] = [
|
|
[(31528, 32331)],
|
|
[],
|
|
]
|
|
SIGNS_RU: List[HardsubMask] = [
|
|
HardsubLine([
|
|
(4227, 6341),
|
|
], ((283, 844), (1349, 204))),
|
|
HardsubLine([
|
|
(3242, 3290),
|
|
]),
|
|
HardsubSignFade([
|
|
(33949, 34045),
|
|
(22337, 22403),
|
|
(22500, 22583),
|
|
]),
|
|
HardsubSignFade([
|
|
(6402, 6522),
|
|
], expand=9),
|
|
]
|
|
|
|
PIXELSHIT: List[Range] = [
|
|
(1466, 1507),
|
|
(11820, 12005),
|
|
(17270, 17329),
|
|
]
|
|
NOSCALE: List[Range] = [
|
|
]
|
|
NOSCALE += PIXELSHIT
|
|
AA_NONE: List[Range] = [
|
|
]
|
|
AA_NONE += PIXELSHIT
|
|
AA_STRONGER: List[Range] = [
|
|
]
|
|
LETTERBOX: List[Range] = [
|
|
]
|
|
LETTERBOX_FADES: List[Range] = [
|
|
]
|
|
|
|
|
|
def filter_basic() -> vs.VideoNode:
|
|
wakas, ref = SOURCE.dhs_source()
|
|
waka = wakas[0]
|
|
waka, wakas = waka_replace(waka, wakas[1:], WAKA_REPLACE)
|
|
src = bounded_dehardsub(waka, ref, SIGNS_RU, wakas)
|
|
src.set_output(1)
|
|
return src
|
|
|
|
|
|
def filter() -> vs.VideoNode:
|
|
src = filter_basic()
|
|
den = denoise(src)
|
|
rescale = fsrcnnx_rescale(den, NOSCALE)
|
|
edgefix = letterbox_edgefix(rescale, crops=LETTERBOX, fades=LETTERBOX_FADES)
|
|
deb = deband(edgefix)
|
|
aa = antialias(deb, stronger=AA_STRONGER, noaa=AA_NONE)
|
|
refix = letterbox_refix(aa, deb, LETTERBOX)
|
|
grain = regrain(refix)
|
|
final = finalize(grain)
|
|
final.set_output(0)
|
|
return final
|
|
|
|
|
|
if __name__ == "__main__":
|
|
SelfRunner(CONFIG, SOURCE, filter, filter_basic, chapters=CHAPTERS)
|
|
else:
|
|
filter()
|