updating scripts
This commit is contained in:
parent
b01c0cada7
commit
90cd40688a
4
.gitignore
vendored
4
.gitignore
vendored
@ -4,3 +4,7 @@
|
||||
*.flac
|
||||
*.ffindex
|
||||
*.png
|
||||
*.aac
|
||||
cudnn_data/
|
||||
*.webm
|
||||
ffmpeg2pass*.log
|
@ -2,7 +2,7 @@ import vapoursynth as vs
|
||||
import fag3kdb
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
import vsTAAmbk as taa
|
||||
import vsTAAmbk as vstaa
|
||||
|
||||
core = vs.get_core()
|
||||
core.max_cache_size = 16384
|
||||
@ -19,7 +19,7 @@ resam = core.fmtc.resample(resam, css="444", kernel="lanczos")
|
||||
fil = core.knlm.KNLMeansCL(resam, d=1, a=2, h=0.4, channels="YUV", device_type='gpu', device_id=0)
|
||||
|
||||
#episode doesnt really have any aliasing but it doesnt hurt and doesnt eat cpu time at all relatively
|
||||
taa = taa.TAAmbk(fil,aatype='Nnedi3')
|
||||
taa = vstaa.TAAmbk(fil,aatype='Nnedi3')
|
||||
|
||||
#flash3kyuu_deband
|
||||
#retinex_edgemask merge is used to help preserve details on edges
|
||||
|
23
02/ac.py
Normal file
23
02/ac.py
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import vapoursynth as vs
|
||||
import audiocutter
|
||||
from subprocess import call
|
||||
|
||||
core = vs.core
|
||||
|
||||
ts = "cap/Senki Zesshou Symphogear XV - 02 (MX).d2v"
|
||||
src = core.d2v.Source(ts)
|
||||
src = src.vivtc.VFM(1).vivtc.VDecimate()
|
||||
|
||||
ac = audiocutter.AudioCutter()
|
||||
|
||||
audio = ac.split(src, [(799, 2557, "Intro"), (2558, 4947, "OP"), (6625, 20267, "Part A"),
|
||||
(21706, 35252, "Part B"), (35253, 37409, "ED"), (37410, 37963, "Part C")])
|
||||
|
||||
ac.ready_qp_and_chapters(audio)
|
||||
|
||||
audio.set_output(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
ac.cut_audio("mx_audio.m4a", audio_source="cap/mx_adjusted.m4a")
|
18
02/x264.vpy
Normal file
18
02/x264.vpy
Normal file
@ -0,0 +1,18 @@
|
||||
import vapoursynth as vs
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
from nnedi3_rpow2 import nnedi3_rpow2
|
||||
core = vs.core
|
||||
core.max_cache_size = 32768
|
||||
|
||||
src = core.ffms2.Source("[HorribleSubs] Symphogear XV - 02 [1080p].mkv")
|
||||
src = fvf.Depth(src, 16)
|
||||
scaled = kgf.inverse_scale(src, height=872, kernel="lanczos", taps=5, mask_detail=True)
|
||||
scaled = nnedi3_rpow2(scaled).resize.Spline36(1920, 1080, format=vs.YUV420P16)
|
||||
denoise = kgf.hybriddenoise(scaled, knl=0.5, sigma=1, radius1=0)
|
||||
db = denoise.f3kdb.Deband(range=12, y=60, cb=40, cr=40, grainy=15, grainc=0, output_depth=16)
|
||||
mask = kgf.retinex_edgemask(denoise)
|
||||
final = core.std.MaskedMerge(db, denoise, mask)
|
||||
final = kgf.adaptive_grain(final)
|
||||
final = fvf.Depth(final, 10)
|
||||
final.set_output()
|
23
03/ac.py
Normal file
23
03/ac.py
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import vapoursynth as vs
|
||||
import audiocutter
|
||||
from subprocess import call
|
||||
|
||||
core = vs.core
|
||||
|
||||
ts = "cap/Senki Zesshou Symphogear XV - 03 (MX).d2v"
|
||||
src = core.d2v.Source(ts)
|
||||
src = src.vivtc.VFM(1).vivtc.VDecimate()
|
||||
|
||||
ac = audiocutter.AudioCutter()
|
||||
|
||||
audio = ac.split(src, [(810, 1554, "Intro"), (1555, 3951, "OP"), (5630, 18386, "Part A"),
|
||||
(19826, 35815, "Part B"), (35816, 37973, "ED")])
|
||||
|
||||
ac.ready_qp_and_chapters(audio)
|
||||
|
||||
audio.set_output(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
ac.cut_audio("mx_audio.m4a", audio_source="cap/mx_adjusted.m4a")
|
21
03/x264.vpy
Normal file
21
03/x264.vpy
Normal file
@ -0,0 +1,21 @@
|
||||
import vapoursynth as vs
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
import vsTAAmbk as vstaa
|
||||
from nnedi3_rpow2 import nnedi3_rpow2
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 32768
|
||||
|
||||
src = core.ffms2.Source("[HorribleSubs] Symphogear XV - 03 [1080p].mkv")
|
||||
src = fvf.Depth(src, 16)
|
||||
scaled = kgf.inverse_scale(src, height=872, kernel="lanczos", taps=5, mask_detail=True)
|
||||
scaled = nnedi3_rpow2(scaled).resize.Spline36(1920, 1080, format=vs.YUV420P16)
|
||||
denoise = kgf.hybriddenoise(scaled, knl=0.5, sigma=1, radius1=0)
|
||||
taa = vstaa.TAAmbk(denoise,aatype='Nnedi3')
|
||||
db = taa.f3kdb.Deband(range=12, y=60, cb=40, cr=40, grainy=15, grainc=0, output_depth=16)
|
||||
mask = kgf.retinex_edgemask(denoise)
|
||||
final = core.std.MaskedMerge(db, taa, mask)
|
||||
final = kgf.adaptive_grain(final)
|
||||
final = core.fmtc.bitdepth(final, bits=10, dmode=3)
|
||||
final.set_output()
|
102
03/x265_w2x_svp.vpy
Normal file
102
03/x265_w2x_svp.vpy
Normal file
@ -0,0 +1,102 @@
|
||||
import vapoursynth as vs
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
import vsTAAmbk as vstaa
|
||||
import adjust
|
||||
from nnedi3_rpow2 import nnedi3_rpow2
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 32768
|
||||
|
||||
#source
|
||||
src = core.ffms2.Source("[HorribleSubs] Symphogear XV - 03 [1080p].mkv")
|
||||
src = src.std.Trim(first=8730, last=9815)
|
||||
src = src.std.AssumeFPS(fpsnum=24000, fpsden=1001)
|
||||
|
||||
#deblock
|
||||
src = core.fmtc.bitdepth(src, bits=16)
|
||||
deblock = core.deblock.Deblock(src, quant=16)
|
||||
|
||||
#rescale
|
||||
#Y, U, V = kgf.split(deblock)
|
||||
#Y = kgf.inverse_scale(Y, height=872, kernel="bicubic", b=1/3, c=1/3, mask_detail=True)
|
||||
#Y = nnedi3_rpow2(Y).resize.Spline36(1920, 1080, format=vs.GRAY16)
|
||||
#scaled = core.std.ShufflePlanes([Y, U, V], planes=[0], colorfamily=vs.YUV)
|
||||
scaled = kgf.inverse_scale(deblock, height=872, kernel="bicubic", b=1/3, c=1/3, mask_detail=True)
|
||||
scaled = core.fmtc.resample(scaled, css="420", kernel="lanczos")
|
||||
scaled = core.fmtc.bitdepth(scaled, bits=16)
|
||||
|
||||
#denoise, let w2x do this?
|
||||
#denoisechroma = core.knlm.KNLMeansCL(scaled, d=1, a=2, h=0.45, channels="UV", device_type='gpu', device_id=0)
|
||||
#denoiseluma = core.knlm.KNLMeansCL(scaled, d=3, a=2, h=0.4, channels="Y", device_type='gpu', device_id=0)
|
||||
#denoise = core.std.ShufflePlanes([denoiseluma, denoisechroma], planes=[0, 1, 2], colorfamily=vs.YUV)
|
||||
|
||||
#taa
|
||||
taa = vstaa.TAAmbk(scaled,aatype='Nnedi3')
|
||||
|
||||
#deband
|
||||
db = taa.f3kdb.Deband(range=16, y=40, cb=32, cr=32, grainy=24, grainc=0, output_depth=16)
|
||||
mask = kgf.retinex_edgemask(taa)
|
||||
maskmerge = core.std.MaskedMerge(db, taa, mask)
|
||||
|
||||
#w2x
|
||||
upscalewx = core.fmtc.bitdepth(maskmerge, bits=32)
|
||||
upscalewx = core.fmtc.resample(upscalewx, css="444", kernel="lanczos")
|
||||
upscalewx = core.caffe.Waifu2x(upscalewx, noise=0, scale=4, block_w=218, block_h=218, model=3, cudnn=True, processor=0, tta=False, batch=9)
|
||||
upscalewx = core.fmtc.bitdepth(upscalewx, bits=16, dmode=3)
|
||||
upscalewx = core.resize.Spline36(upscalewx,width=3840,height=2160)
|
||||
upscalewx = core.fmtc.resample(upscalewx, css="420", kernel="lanczos")
|
||||
|
||||
#svp
|
||||
svp = core.fmtc.bitdepth(upscalewx, bits=8, dmode=3)
|
||||
svp1superparams = """{
|
||||
pel:4,
|
||||
gpu:1
|
||||
}"""
|
||||
svp1vectorsparams = """{
|
||||
block: {
|
||||
w: 16,
|
||||
h: 16,
|
||||
overlap: 3
|
||||
},
|
||||
main: {
|
||||
coarse: {
|
||||
width: 3840,
|
||||
satd: true,
|
||||
trymany: true
|
||||
}
|
||||
},
|
||||
penalty: {
|
||||
lambda: 40.0,
|
||||
plevel: 4.0
|
||||
},
|
||||
refine: [{
|
||||
thsad:400
|
||||
}]
|
||||
}"""
|
||||
svp2smoothparams = """{
|
||||
rate: {
|
||||
num: 48,
|
||||
den: 1,
|
||||
abs: true
|
||||
},
|
||||
algo: 13,
|
||||
mask: {
|
||||
cover: 150,
|
||||
area: 100
|
||||
},
|
||||
scene: {
|
||||
mode: 3
|
||||
}
|
||||
}"""
|
||||
|
||||
super = core.svp1.Super(svp, svp1superparams)
|
||||
vectors= core.svp1.Analyse(super["clip"], super["data"], svp, svp1vectorsparams)
|
||||
smooth = core.svp2.SmoothFps(svp, super["clip"], super["data"], vectors["clip"], vectors["data"], svp2smoothparams)
|
||||
svp = core.std.AssumeFPS(smooth, fpsnum=smooth.fps_num, fpsden=smooth.fps_den)
|
||||
|
||||
final = kgf.adaptive_grain(svp)
|
||||
final = core.fmtc.bitdepth(final, bits=10)
|
||||
|
||||
final.set_output()
|
||||
#vspipe -y "x265_w2x_svp.vpy" - | ffmpeg -i pipe: -c:v libx265 -tune animation -crf 17 -preset slower -x265-params aq-mode=3 -pix_fmt yuv420p10le -y "x265_w2x_svp_2.mp4"
|
23
04/ac.py
Normal file
23
04/ac.py
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import vapoursynth as vs
|
||||
import audiocutter
|
||||
from subprocess import call
|
||||
|
||||
core = vs.core
|
||||
|
||||
ts = "cap/Senki Zesshou Symphogear XV - 04 (MX).d2v"
|
||||
src = core.d2v.Source(ts)
|
||||
src = src.vivtc.VFM(1).vivtc.VDecimate()
|
||||
|
||||
ac = audiocutter.AudioCutter()
|
||||
|
||||
audio = ac.split(src, [(139, 1395, "Intro"), (1396, 3783, "OP"), (5462, 16826, "Part A"),
|
||||
(18265, 35143, "Part B"), (35144, 37302, "ED")])
|
||||
|
||||
ac.ready_qp_and_chapters(audio)
|
||||
|
||||
audio.set_output(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
ac.cut_audio("mx_audio.m4a", audio_source="cap/mx_adjusted.m4a")
|
44
04/x264 - w2x.vpy
Normal file
44
04/x264 - w2x.vpy
Normal file
@ -0,0 +1,44 @@
|
||||
import vapoursynth as vs
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
import vsTAAmbk as vstaa
|
||||
from nnedi3_rpow2 import nnedi3_rpow2
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 32768
|
||||
|
||||
src = core.ffms2.Source("[HorribleSubs] Symphogear XV - 04 [1080p].mkv")
|
||||
src = core.fmtc.bitdepth(src, bits=16)
|
||||
scaled = kgf.inverse_scale(src, height=872, kernel="lanczos", taps=5, mask_detail=True)
|
||||
|
||||
#upscalenn = nnedi3_rpow2(scaled).resize.Spline36(1920, 1080, format=vs.YUV420P16)
|
||||
#denoise = kgf.hybriddenoise(upscalenn, knl=0.5, sigma=1, radius1=0)
|
||||
#taa = vstaa.TAAmbk(denoise,aatype='Nnedi3')
|
||||
#db = taa.f3kdb.Deband(range=16, y=40, cb=32, cr=32, grainy=24, grainc=0, output_depth=16)
|
||||
#mask = kgf.retinex_edgemask(denoise)
|
||||
#finalnn = core.std.MaskedMerge(db, taa, mask)
|
||||
#finalnn = kgf.adaptive_grain(finalnn)
|
||||
#finalnn = core.fmtc.bitdepth(finalnn, bits=10, dmode=3)
|
||||
|
||||
|
||||
upscalewx = core.fmtc.bitdepth(scaled, bits=32)
|
||||
upscalewx = core.fmtc.resample(upscalewx, css="444", kernel="lanczos")
|
||||
upscalewx = core.caffe.Waifu2x(upscalewx, noise=1, scale=1, block_w=387, block_h=387, model=3, cudnn=True, processor=0, tta=False, batch=7)
|
||||
#upscalewx = core.resize.Spline16(upscalewx,width=1920,height=1080)
|
||||
upscalewx = core.fmtc.bitdepth(upscalewx, bits=16, dmode=3)
|
||||
upscalewx = nnedi3_rpow2(upscalewx).resize.Spline36(1920, 1080, format=vs.YUV444P16)
|
||||
taa = vstaa.TAAmbk(upscalewx,aatype='Nnedi3')
|
||||
db = taa.f3kdb.Deband(range=16, y=40, cb=32, cr=32, grainy=24, grainc=0, output_depth=16)
|
||||
mask = kgf.retinex_edgemask(upscalewx)
|
||||
finalwx = core.std.MaskedMerge(db, taa, mask)
|
||||
finalwx = kgf.adaptive_grain(finalwx)
|
||||
finalwx = core.fmtc.resample(finalwx, css="420", kernel="lanczos")
|
||||
finalwx = core.fmtc.bitdepth(finalwx, bits=10, dmode=3)
|
||||
|
||||
|
||||
#stack1 = core.std.StackHorizontal([finalnn, finalwx])
|
||||
#final = stack1
|
||||
#final = core.fmtc.bitdepth(final, bits=10, dmode=3)
|
||||
finalwx.set_output()
|
||||
|
||||
#vspipe -y "x264.vpy" - | ffmpeg -i pipe: -c:v libx264 -tune animation -crf 16 -preset slower -pix_fmt yuv420p10le -y "x264.mp4"
|
23
04/x264.vpy
Normal file
23
04/x264.vpy
Normal file
@ -0,0 +1,23 @@
|
||||
import vapoursynth as vs
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
import vsTAAmbk as vstaa
|
||||
from nnedi3_rpow2 import nnedi3_rpow2
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 32768
|
||||
|
||||
src = core.ffms2.Source("[HorribleSubs] Symphogear XV - 04 [1080p].mkv")
|
||||
src = fvf.Depth(src, 16)
|
||||
scaled = kgf.inverse_scale(src, height=872, kernel="lanczos", taps=5, mask_detail=True)
|
||||
scaled = nnedi3_rpow2(scaled).resize.Spline36(1920, 1080, format=vs.YUV420P16)
|
||||
denoise = kgf.hybriddenoise(scaled, knl=0.5, sigma=1, radius1=0)
|
||||
taa = vstaa.TAAmbk(denoise,aatype='Nnedi3')
|
||||
db = taa.f3kdb.Deband(range=12, y=60, cb=40, cr=40, grainy=15, grainc=0, output_depth=16)
|
||||
mask = kgf.retinex_edgemask(denoise)
|
||||
final = core.std.MaskedMerge(db, taa, mask)
|
||||
final = kgf.adaptive_grain(final)
|
||||
final = core.fmtc.bitdepth(final, bits=10, dmode=3)
|
||||
final.set_output()
|
||||
|
||||
#vspipe -y "x264.vpy" - | ffmpeg -i pipe: -c:v libx264 -tune animation -crf 16 -preset slower -pix_fmt yuv420p10le -y "x264.mp4"
|
22
05/ac.py
Normal file
22
05/ac.py
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import vapoursynth as vs
|
||||
import audiocutter
|
||||
from subprocess import call
|
||||
|
||||
core = vs.core
|
||||
|
||||
ts = "cap/Senki Zesshou Symphogear XV - 05 (MX).d2v"
|
||||
src = core.d2v.Source(ts)
|
||||
src = src.vivtc.VFM(1).vivtc.VDecimate()
|
||||
|
||||
ac = audiocutter.AudioCutter()
|
||||
|
||||
audio = ac.split(src, [(151, 3819), (5498, 19211), (20649, 37313)])
|
||||
|
||||
ac.ready_qp_and_chapters(audio)
|
||||
|
||||
audio.set_output(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
ac.cut_audio("mx_audio.m4a", audio_source="cap/mx_adjusted.m4a")
|
43
05/x264.vpy
Normal file
43
05/x264.vpy
Normal file
@ -0,0 +1,43 @@
|
||||
import vapoursynth as vs
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
import vsTAAmbk as vstaa
|
||||
import adjust
|
||||
from nnedi3_rpow2 import nnedi3_rpow2
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 32768
|
||||
|
||||
src = core.ffms2.Source("[Erai-raws] Senki Zesshou Symphogear XV - 05 [1080p][Multiple Subtitle].mkv")
|
||||
src = core.fmtc.bitdepth(src, bits=16)
|
||||
deblock = core.deblock.Deblock(src, quant=16)
|
||||
Y, U, V = kgf.split(deblock)
|
||||
Y = kgf.inverse_scale(Y, height=872, kernel="bicubic", b=1/3, c=1/3, mask_detail=True)
|
||||
Y = nnedi3_rpow2(Y).resize.Spline36(1920, 1080, format=vs.GRAY16)
|
||||
scaled = core.std.ShufflePlanes([Y, U, V], planes=[0], colorfamily=vs.YUV)
|
||||
|
||||
dim1 = adjust.Tweak(scaled, sat=1.35, cont=1.35)
|
||||
dim2 = adjust.Tweak(scaled, sat=1.20, cont=1.20)
|
||||
dim3 = adjust.Tweak(scaled, sat=1.15, cont=1.15)
|
||||
undim = fvf.rfs(scaled, dim1, mappings="[23298 23322] 23339")
|
||||
undim = fvf.rfs(undim, dim2, mappings="[2888 2931]")
|
||||
undim = fvf.rfs(undim, dim3, mappings="[27161 27166]")
|
||||
|
||||
denoisechroma = core.knlm.KNLMeansCL(undim, d=1, a=2, h=0.45, channels="UV", device_type='gpu', device_id=0)
|
||||
denoiseluma = core.knlm.KNLMeansCL(undim, d=3, a=2, h=0.4, channels="Y", device_type='gpu', device_id=0)
|
||||
denoise = core.std.ShufflePlanes([denoiseluma, denoisechroma], planes=[0, 1, 2], colorfamily=vs.YUV)
|
||||
taa = vstaa.TAAmbk(denoise,aatype='Nnedi3')
|
||||
db = taa.f3kdb.Deband(range=16, y=40, cb=32, cr=32, grainy=24, grainc=0, output_depth=16)
|
||||
mask = kgf.retinex_edgemask(denoise)
|
||||
final = core.std.MaskedMerge(db, taa, mask)
|
||||
final = kgf.adaptive_grain(final)
|
||||
final = core.fmtc.bitdepth(final, bits=10, dmode=3)
|
||||
final.set_output()
|
||||
|
||||
#vspipe -y "x264.vpy" - | ffmpeg -i pipe: -c:v libx264 -tune animation -crf 16 -preset slower -aq-mode 3 -pix_fmt yuv420p10le -x264-params no-dct-decimate:no-fast-pskip -y "x264.mp4"
|
||||
|
||||
#vspipe -y "x264.vpy" -s 13500 -e 13800 - | ffmpeg -i pipe: -c:v hevc_nvenc -profile:v 1 -b:v 3.5M -maxrate:v 4.5M -preset slow -rc vbr_hq -cq 1 -spatial_aq true -temporal_aq true -rc-lookahead 32 -aq-strength 12 -gpu 0 -pix_fmt p010le -y "x265_gpu.mp4"
|
||||
|
||||
#vspipe -y "x264.vpy" -s 13500 -e 13800 - | ffmpeg -i pipe: -c:v libx265 -tune animation -crf 16 -preset slower -x265-params aq-mode=3 -pix_fmt yuv420p10le -y "x265.mp4"
|
||||
|
||||
#vspipe -y "x264.vpy" -s 27900 -e 28200 - | ffmpeg -i pipe: -c:v libx264 -preset veryslow -crf 16 -g 480 -keyint_min 23 -refs 16 -bf 16 -aq-mode 3 -aq-strength 0.70 -qcomp 0.70 -psy-rd 0.72 -x264-params no-dct-decimate:no-fast-pskip -pix_fmt yuv420p10le -y "x264_newline.mp4"
|
22
06/ac.py
Normal file
22
06/ac.py
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import vapoursynth as vs
|
||||
import audiocutter
|
||||
from subprocess import call
|
||||
|
||||
core = vs.core
|
||||
|
||||
ts = "cap/Senki Zesshou Symphogear XV - 06 (BS11).d2v"
|
||||
src = core.d2v.Source(ts)
|
||||
src = src.vivtc.VFM(1).vivtc.VDecimate()
|
||||
|
||||
ac = audiocutter.AudioCutter()
|
||||
|
||||
audio = ac.split(src, [(680, 4805), (6484, 20773), (22211, 37844)])
|
||||
|
||||
ac.ready_qp_and_chapters(audio)
|
||||
|
||||
audio.set_output(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
ac.cut_audio("bs11_audio.m4a", audio_source="cap/bs11_adjusted.m4a")
|
41
06/x264.vpy
Normal file
41
06/x264.vpy
Normal file
@ -0,0 +1,41 @@
|
||||
import vapoursynth as vs
|
||||
import kagefunc as kgf
|
||||
import fvsfunc as fvf
|
||||
import vsTAAmbk as vstaa
|
||||
import adjust
|
||||
from nnedi3_rpow2 import nnedi3_rpow2
|
||||
|
||||
core = vs.core
|
||||
core.max_cache_size = 32768
|
||||
|
||||
opstart, edstart = 1726, 31888
|
||||
|
||||
src = core.ffms2.Source("[HorribleSubs] Symphogear XV - 06 [1080p].mkv")
|
||||
src = core.fmtc.bitdepth(src, bits=16)
|
||||
deblock = core.deblock.Deblock(src, quant=16)
|
||||
Y, U, V = kgf.split(deblock)
|
||||
Y = kgf.inverse_scale(Y, height=872, kernel="bicubic", b=1/3, c=1/3, mask_detail=True,
|
||||
descale_mask_zones=f"[{opstart} {opstart+3000}] [{edstart} {edstart+2159}]")
|
||||
Y = nnedi3_rpow2(Y).resize.Spline36(1920, 1080, format=vs.GRAY16)
|
||||
scaled = core.std.ShufflePlanes([Y, U, V], planes=[0], colorfamily=vs.YUV)
|
||||
|
||||
dim1 = adjust.Tweak(scaled, sat=1.35, cont=1.35)
|
||||
dim2 = adjust.Tweak(scaled, sat=1.12, cont=1.12)
|
||||
dim3 = adjust.Tweak(scaled, sat=1.20, cont=1.20)
|
||||
|
||||
undim = fvf.rfs(scaled, dim1, mappings=f"[{opstart+1613} {opstart+1659}]]")
|
||||
undim = fvf.rfs(undim, dim2, mappings=f"[{opstart+1665} {opstart+1693}] [25567 26014]")
|
||||
undim = fvf.rfs(undim, dim3, mappings="[26254 26283]")
|
||||
|
||||
denoisechroma = core.knlm.KNLMeansCL(undim, d=1, a=2, h=0.45, channels="UV", device_type='gpu', device_id=0)
|
||||
denoiseluma = core.knlm.KNLMeansCL(undim, d=3, a=2, h=0.4, channels="Y", device_type='gpu', device_id=0)
|
||||
denoise = core.std.ShufflePlanes([denoiseluma, denoisechroma], planes=[0, 1, 2], colorfamily=vs.YUV)
|
||||
taa = vstaa.TAAmbk(denoise,aatype='Nnedi3')
|
||||
db = taa.f3kdb.Deband(range=16, y=40, cb=32, cr=32, grainy=24, grainc=0, output_depth=16)
|
||||
mask = kgf.retinex_edgemask(denoise)
|
||||
final = core.std.MaskedMerge(db, taa, mask)
|
||||
final = kgf.adaptive_grain(final)
|
||||
final = core.fmtc.bitdepth(final, bits=10, dmode=3)
|
||||
final.set_output()
|
||||
|
||||
#vspipe -y "x264.vpy" - | ffmpeg -i pipe: -c:v libx264 -tune animation -crf 16 -preset slower -aq-mode 3 -pix_fmt yuv420p10le -x264-params no-dct-decimate:no-fast-pskip -y "x264.mp4"
|
Loading…
x
Reference in New Issue
Block a user