Log in

View Full Version : gradfun3 not working


ENunn
18th March 2025, 17:49
i'm having issues with f3kdb where my encodes have random glitches at random points. it only happens when i have f3kdb in my script, and they don't show up in the avspmod preview.
https://i.imgur.com/PaSU9Uc.png

so i wanted to try something else. i downloaded gradfun3, but whenever i try to use it, i get this error:
https://i.imgur.com/1dsCv0P.png

is there a fix for this? i'm running 64-bit avisynth+ 3.7.3 r4003

VoodooFX
18th March 2025, 18:30
Where is that script?

ENunn
18th March 2025, 18:52
here you go!

v = lwlibavvideosource("i:\virtualdub\tape transfers\breathasize breathing program.mkv", fpsnum=30000,fpsden=1001)
a = lwlibavaudiosource("i:\recordings\breathasize breathing program.flac")
audiodub(v,a)
#delayaudio(.150)
assumetff().converttoyuv422(matrix="rec601", interlaced=true).convertbits(10)
#Crop(8, 4, -24, -6_
Levels(60, 1,860, 0, 1020, coring=false,dither=true).tweak(bright=0, cont=1.00, hue=-0, sat=0.850, coring=false, dither=true).convertbits(8)
#turnRight().Histogram().TurnLeft()
Trim(535, 83649)
bob()
FineDehalo(rx=2.5, ry=1.0)
LSFplus(ss_x=1.5, ss_y=1.5, secure=false, Spwr=2, SdmpHi=0, soothe=false, keep=25)
separatefields().selectevery(4,0,3).weave()
separatefields()
neo_dfttest(sigma=35, tbsize=5)
weave()
gradfun3()
converttoyv12(matrix="rec601", interlaced=true)
prefetch(6)

real.finder
18th March 2025, 19:02
try use https://github.com/HomeOfAviSynthPlusEvolution/neo_f3kdb and https://gitlab.com/uvz/AviSynthPlus-Plugins-Scripts/-/blob/master/plugins64%2B/dither.dll

and there are GradFun3plus by Dogway

ENunn
18th March 2025, 19:33
thanks. neo_f3kdb has the same problem as f3kdb and gradfun3plus doesn't seem to do anything.

real.finder
18th March 2025, 19:42
neo_f3kdb has the same problem as f3kdb

can you post original video sample so the devs can fix it if it has a bug

ENunn
18th March 2025, 20:45
can you post original video sample so the devs can fix it if it has a bug

unfortunately my issue happens at random points in the encode. sometimes it doesn't happen at all. it only happens when i encode the video, either with ffmpeg or virtualdub. i don't think a small sample would show the issue. would it be ok if i sent you the full capture and my script?

real.finder
18th March 2025, 21:06
unfortunately my issue happens at random points in the encode. sometimes it doesn't happen at all. it only happens when i encode the video, either with ffmpeg or virtualdub. i don't think a small sample would show the issue. would it be ok if i sent you the full capture and my script?

in this case how did you know that it's f3kdb/neo_f3kdb? anyway if you can share the full capture and the script here https://github.com/HomeOfAviSynthPlusEvolution/neo_f3kdb/issues

ENunn
18th March 2025, 21:12
in this case how did you know that it's f3kdb/neo_f3kdb? anyway if you can share the full capture and the script here https://github.com/HomeOfAviSynthPlusEvolution/neo_f3kdb/issues

because i looked through the file with and without f3kdb, and there's no issues without f3kdb while the glitches were there with f3kdb. i'll see if i can send a bug report.

hello_hello
19th March 2025, 06:51
thanks. neo_f3kdb has the same problem as f3kdb and gradfun3plus doesn't seem to do anything.

Are you aware you have to do the conversion to 16 bit and back yourself for GradFun3plus?
I'd probably also do the conversion to YV12 in 16 bit, or at least do it before GradFun3.

ConvertBits(16)
ConvertToYV12(matrix="rec601", interlaced=true)
GradFun3plus()
ConvertBits(8, dither=0) # or dither=1

ENunn
20th March 2025, 07:10
Are you aware you have to do the conversion to 16 bit and back yourself for GradFun3plus?
I'd probably also do the conversion to YV12 in 16 bit, or at least do it before GradFun3.

ConvertBits(16)
ConvertToYV12(matrix="rec601", interlaced=true)
GradFun3plus()
ConvertBits(8, dither=0) # or dither=1

i am not. but i did try what you posted, but there's hardly a difference. i can't even notice it unless i do a direct comparison while zoomed in.

hello_hello
21st March 2025, 08:39
i am not. but i did try what you posted, but there's hardly a difference. i can't even notice it unless i do a direct comparison while zoomed in.

That's possibly a good thing if the source doesn't actually contain banding. f3kdb probably makes a more noticeable difference as I'm pretty sure it adds a fair bit of grain by default.

I thought I'd check though, given I've been using GradFun3plus a bit myself. More to prevent the encoder causing banding though, than to fix existing banding. I didn't have a source handy with banding as such, so I found something with a bit of encoder blocking to test it on.

With the threshold arguments cranked up much higher than you normally would:

A = Spline36Resize(1920,1080).Crop(124,124,296,296).Tweak(bright=15)
B = A.Gradfun3(thr=2, thrc=2)
C = A.ConvertBits(16).GradFun3plus(thr=2, thrc=2).ConvertBits(8, dither=0)

D = Compare(B, A)
E = Compare(C, A)

StackHorizontal(A, D, E)

https://i.ibb.co/WNwtCVvy/gradfun3.png