### # SimpleToon v0.1 # # Demonstrational fast and simple version of mfToon # Made for NightMare, thanks to Kurosu for making me # understand how his new MaskTools work. # function SimpleToon(clip orig, int "dstren", int "drange", float "dboost", \ int "dlimit", float "lgamma", int "lcorrect") { dstren = Default(dstren, 255) # detail strength, 0-255 drange = Default(drange, 64) # detail range, 0-255 dboost = Default(dboost, 10.0) # detail boost, 0.0-10.0 dlimit = Default(dlimit, 30) # detail limiter, 0-255 lgamma = Default(lgamma, 0.6) # line darkening gamma lcorrect = Default(lcorrect, 245) # line darkening overall luma correction origdarkened = orig.Levels(0, lgamma, lcorrect, 0, 255) detailmaskpre = orig.EdgeMask(3, 255, 255, 255, "sobel", Y=3, V=1, U=1) \ .Tweak(0.0, 1.0, drange, 1.0).Levels(60, dboost, 255, 0, 255) \ .Levels(0, dboost, dlimit, 255, 0).GreyScale().ConvertToYUY2() detailmaskpre2 = Layer(detailmaskpre, detailmaskpre, "mul", 255).Blur(1.0) detailmask = Layer(detailmaskpre2, detailmaskpre2, "mul", 255).Levels(0, 1.0, 189, 0, 255) \ .ConvertToYV12().Inflate() white = orig.Binarize(Y=-255,U=-128,V=-128) linemask = MaskedMerge(white, detailmask, orig) dark = MaskedMerge(orig, origdarkened, linemask, Y=3, U=2, V=2) return dark }