Selur's Little Message Board

Full Version: Vapoursynth->Waifu2x nvk Encode Crash on Win7 (Upd: not bug, fixed on user side)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
OS: Windows 7 SP1
Hybrid Version: 2021.01.31; 2020.12.13
Intention: OBS-recorded MP4 video, crop & upsize via Waifu2x nvk, encode to x264.

Problem: Waifu2x nvk crashes immediately. (attached relevant debug.log)
  • y4m [error]: bad sequence header magic
  • x264 [error]: could not open input file `-'
Waifu2x and Anime4KCPP works, but both are not preferred due to Waifu2x being a-ton slow, and Anime4KCPP producing unfavorable/sub-standard result compared to the two Waifu2x.

Oddly, my laptop with Win10 1803 has no problems running it. It has an older NVidia driver 451.67, too. (attached debug.log for reference)
I wish to use the desktop instead because it has GTX 1080 while my laptop only has GTX 960m.

I wonder if it's a Vapoursynth or w2xnvk problem instead.

'Vapoursynth Filter 
Preview' error
Code:
Failed to evaluate the script:
Python exception: Waifu2x-NCNN-Vulkan: invalid 'gpu_id'

Traceback (most recent call last):
  File "src\cython\vapoursynth.pyx", line 2244, in vapoursynth.vpy_evaluateScript
  File "src\cython\vapoursynth.pyx", line 2245, in vapoursynth.vpy_evaluateScript
  File "C:\Users\ACES\AppData\Local\Temp\tempPreviewVapoursynthFile05_44_22_620.vpy", line 31, in <module>
    clip = core.w2xnvk.Waifu2x(clip=clip, scale=2, model=0, tile_size=240, gpu_thread=2)
  File "src\cython\vapoursynth.pyx", line 2069, in vapoursynth.Function.__call__
vapoursynth.Error: Waifu2x-NCNN-Vulkan: invalid 'gpu_id'


Fix Attempts in vain:
  • Change various Waifu2x nvk parameters (GPU_ID, threads, tilesize, model, noise, resizer)
  • Change video src; no cropping; turned on x264 OpenCL(?).
  • Update NVidia GPU driver (452.xx -> 461.40)
  • Install Python 3.8.9  (I thought it was a Python thing)
  • Reinstallation + settings reset


Unrelated but other bugs encountered/Suggestion:
  • - Every startup, the x264 Quantizer Max defaults to 51 & is maxed out at 51 even though it's supposed to be 69 (8bit) or 81 (10bit). This is despite saving/loading it on x264 profiles and MainTab/Window defaults.
    Workaround: Change APC Profile to any other profile, then back. (v2020.12.13 & v2021.01.31; Win7 & Win10-1803)
  • + Ability to directly edit Output File textbox for easy name changing, like say in several outputs from one video src.
Please, read the 'Infos needed to fix&reproduce bugs,..'-sticky before you post about a problem.
Regarding Waifu2x: "invalid 'gpu_id'" usually comes when Waifu2x can't find/access under the selected gui_id.
When having multiple cards in the system changing the id should help it it doesn't it's usually a driver issue.
Try completely uninstalling and after that reinstalling the NVIDIA drivers (from NVIDIA), important thing is to uninstall the drivers completely before the reinstall. Every now and then installing a different NVIDIA driver breaks the existing support for opencl/cuda/nvenc.

Regarding 'x264 Quantizer Max defaults':
I tried to reproduce this by:
  • start Hybrid
  • setting AVC/Profile to High10 and Calculation precision to 10-bit
  • saving those as default
  • restarting Hybrid
for me the Quantizer max was properly saved.
-> Can't reproduce.

Regarding the renaming: Not happening, I'll not change the current behavior.

Cu Selur

Ps.: I'm using the 461.40 drivers with a GeForce GTX 1070ti, so the drivers itself should be fine.
Oh, it worked! It seems I did have to DDU (Display Driver Uninstaller) the thing. It's able to detect the GPUs properly now.
Thank you!


Meanwhile, although the "x264 Quantizer Max defaults" problem exists in v2021.01.31 even after a fresh config, it seems it was fixed in the dev version I was handed with in another thread.

For the destination naming right out of the textbox, oh that's a shame. Eh, I can deal with this bit of inconvenience.
Quote:For the destination naming right out of the textbox, oh that's a shame. Eh, I can deal with this bit of inconvenience.
I know min/max ToolTips of SpinBoxes and DoubleSpinBoxes don't get updated in case min/max changes.
(not going to implement that, since it would slow down the whole gui a lot .... looked at it again, may be will fix in the future)

Cu Selur
(14.03.2021, 19:45)Selur Wrote: [ -> ]
Quote:For the destination naming right out of the textbox, oh that's a shame. Eh, I can deal with this bit of inconvenience.
I know min/max ToolTips of SpinBoxes and DoubleSpinBoxes don't get updated in case min/max changes.
(not going to implement that, since it would slow down the whole gui a lot .... looked at it again, may be will fix in the future)

Cu Selur

SpinBoxes? I don't mean to have the Output name box as something like that.

Oh wait, I must be misunderstood. I meant this one, as a live text-editable textbox.

Like, should I need several outputs (hence different filenames) from just one input, I can queue the first one, then adjust to the next; so that I don't have to bring up the "Set output file" dialogue window everytime.
[attachment=1353]

For example, from just this one input above; I wish to have several processed outputs and be able to just change a part in its filename from that textbox:
  • Cut 0-440 frames will be                            "F:\Videos\ArpieL\2021-0314 0540-23ArpieL 0-440.mp4"        ; queue this 1st job.
  • W/o changing input, Cut 2637-3169 will be "F:\Videos\ArpieL\2021-0314 0540-23ArpieL 2637-3169.mp4" ; queue 2nd job.
  • Same input, Cut xxxx-yyyy will be              "F:\Videos\ArpieL\2021-0314 0540-23ArpieL xxxx-yyyy.mp4"  ; queue Nth job, and so on.
Ahh,... so what you are asking for is an additional option under Config->Filternames->Output Filename Generation, to add '_StartFrame-EndFrame' to the generated file name?

Cu Selur

Ps.: send you a link to a dev version which adds this.
(14.03.2021, 20:29)Selur Wrote: [ -> ]Ahh,... so what you are asking for is an additional option under Config->Filternames->Output Filename Generation, to add '_StartFrame-EndFrame' to the generated file name?

Cu Selur

Aaa it could work for that use case (actually now that I think about it, that'd work well for some automation, with also the option of zero-padding---wait aaa you're so quick!), but not quite.

Aside from cuts, perhaps different encode settings of the same video, should I'd like to test different video encodes first before I batch-process videos with it. Something like, but not limited to encoding settings:
  • [Path]\[Filename] CRF19[.ext]
  • [Path]\[Filename] CRF19 qcomp70[.ext]
  • [Path]\[Filename] CRF19 720p[.ext]
  • [Path]\[Filename] CRF19 qcomp70 720p[.ext]
  • [Path]\[Filename] CRF20[.ext]
  • [Path]\[Filename] CRF20 qcomp70[.ext]
  • [Path]\[Filename] CRF20 720p[.ext]
  • [Path]\[Filename] CRF20 qcomp70 720p[.ext]
Some other remote use-case I could think of; for when one can't just chapterize a video for user-friendly file selection or something.
  • [Path]\[Filename] -Complete[.ext]
  • [Path]\[Filename] -Performance only[.ext]
  • [Path]\[Filename] -Highlight only[.ext]
Simply, the goal is to quickly typing in the preferred filename to differentiate the next output from the previous one, from that one input, w/o opening the "Set output file" everytime.


I wonder though... Perhaps making it an editable textbox would have that risk/complication of accidentally(?) editing on the path instead of just the filename; Hybrid might either create those non-existing directory/ies, or prompt that the path is non-existent, etc.

I swear though, for almost everytime I'm not using the auto-generate filename, it occurs to me to wish I could just edit the output filename straight from that textbox, instead of having to click a button to have the thing brought up.
(I might have repeated myself already, please excuse me)



Extra:
Pardon about earlier, I thought the post preview just derped hence I went with the straight-copypasta'd screenshot crop that's shown in the message composition box. Of course the preview is WYSIWYG; I've been silly. xD
Attached it instead.
Not going to allow direct editing of the output file name. (Yes, validating it would be a pain.)
Also not adding an option to add parts of the encoding settings to the output name. (to many options for too many different encoders)
So you probably have to live with the way it is now of use another tool which offers what you want. Smile

Cu Selur
(14.03.2021, 21:36)Selur Wrote: [ -> ]Not going to allow direct editing of the output file name. (Yes, validating it would be a pain.)
Also not adding an option to add parts of the encoding settings to the output name. (to many options for too many different encoders)
So you probably have to live with the way it is now of use another tool which offers what you want. Smile

Cu Selur
Yeah, Validation, that's the word.
And I agree with not including the various x264 options for an output naming scheme; too much to put in there, hence my examples were only a handful of the options I'm focused on for that instance. Others may have that, but they don't have as robust available features as Hybrid.

It's fine. Like I mentioned, I can deal with this little inconvenience. xD
Actually, this '_StartFrame-EndFrame' Output Filename Generation is already a big help, and the testing works like a charm for me. Thank you!