Log in

View Full Version : How do you convert YUV420 P8 to single precision? IfeelBloated Plum


Reclusive Eagle
13th January 2022, 16:32
I am trying to get Ifeelbloated's Plum working.

However the clip source I have is NTSC YUV420 P8.
Plum requires "the sample type of src has to be single precision!"

Setting a bit depth of 32 with:
clip = core.fmtc.bitdepth(clip, bits=32)

Results in:

Plum.py", line 16, in __init__
self.MSuper = vs.core.mvsf.Super
File "src\cython\vapoursynth.pyx", line 2385, in vapoursynth._CoreProxy.__getattr__
File "src\cython\vapoursynth.pyx", line 2228, in vapoursynth.Core.__getattr__
AttributeError: No attribute with the name mvsf exists. Did you mistype a plugin namespace?

I have both:

libmvtools
and libmvtools_sf_em64t


So I don't understand what's the issue.
I've tried this on multiple versions of Vapoursynth across 3 different versions of Python. I still have the same issue

ChaosKing
13th January 2022, 18:49
Is libmvtools_sf_em64t really loaded? CPU needs to support AVX btw.
You could try VSRepoGUI (see link in signature) it has a tab "Diagnose Problems", there you should see if libmvtools_sf_em64t is loaded correcly or not. Or just do it manually in python in powershell/cmd.

Reclusive Eagle
15th January 2022, 19:04
Is libmvtools_sf_em64t really loaded? CPU needs to support AVX btw.
You could try VSRepoGUI (see link in signature) it has a tab "Diagnose Problems", there you should see if libmvtools_sf_em64t is loaded correcly or not. Or just do it manually in python in powershell/cmd.

Yup its loaded.
I even forced loaded it with core.std.LoadPlugin and it told me it was already loaded.

My CPU has everything but AVX 512 support.
So Intel® SSE4.1, Intel® SSE4.2, Intel® AVX2

i5 9600k

Reclusive Eagle
15th January 2022, 19:11
Tried to get the VSRepoGUI working. Not detecting Vapoursynth installations.

I am using the portable version of Vapoursynth along with the portable embedded python.

Are there any commands for the gui to point it to an installation?

Reclusive Eagle
15th January 2022, 20:55
Ok so I solved the problem
Turns out for some stupid reason libmvtools_sf_em64t needs libfftw3f-3 in the same folder because it can't load the one from system 32 like every other plugin can.

However. Now I have a new problem:
ref = Plum.Basic(clip) results in

Plum.py", line 19, in __init__
self.MDegrainN = vs.core.mvsf.Degrain
File "src\cython\vapoursynth.pyx", line 2413, in vapoursynth.Plugin.__getattr__
AttributeError: There is no function named Degrain

ChaosKing
15th January 2022, 22:45
Tried to get the VSRepoGUI working. Not detecting Vapoursynth installations.

I am using the portable version of Vapoursynth along with the portable embedded python.

Are there any commands for the gui to point it to an installation?

For a portable mode you need to create a "vsrepogui.json" text file in the same folder as the exe with the following contents:
(relative paths are now also supported)
Code:
{
"Bin":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\vsrepo.py",
"win32": {
"Binaries":"abc d\\p32",
"Scripts":"..\\scripts"
},
"win64": {
"Binaries":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\p64",
"Scripts":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\scripts"
}
}


There is a "new" and "old" mvsf. r10 pre version is a rewrite with different function / syntax.
I think for the latest Plum version you also need mvsf r10.

Reclusive Eagle
15th January 2022, 23:18
I think for the latest Plum version you also need mvsf r10.

I had r9, upgraded to pre-release r10 and now I get a new error:

Plum.py", line 225, in Basic
core = get_core()
File "C:\Users\Reclusive Eagle\Downloads\Tools\Video Tools\VapourSynth\Core\vapoursynth64\scripts\Plum.py", line 25, in __init__
self.FQSharp = vs.core.vcm.fqSharp
File "src\cython\vapoursynth.pyx", line 2413, in vapoursynth.Plugin.__getattr__
AttributeError: There is no function named fqSharp

Do you have a compiled version of r10 instead of a pre-release?
I don't have visual studios installed and I really really don't want to spend 5 hours setting it up just to get the dependencies etc for the wrong version then needing to do the same thing again for the right year etc.

ChaosKing
16th January 2022, 00:52
vs.core.vcm.fqSharp => namespace = vcm = vcm plugin by vcmohan. Install with "vsrepo install vcm" or download it here http://www.avisynth.nl/users/vcmohan/

r10 = compiled version, the pre-release is just a tag by github :D No, I don't have another version.

Reclusive Eagle
16th January 2022, 03:43
vs.core.vcm.fqSharp => namespace = vcm = vcm plugin by vcmohan. Install with "vsrepo install vcm" or download it here http://www.avisynth.nl/users/vcmohan/

r10 = compiled version, the pre-release is just a tag by github :D No, I don't have another version.

Yup, I have VCM installed. Did both the 32bit and 64 bit.
I have every libfftw.dll etc and all the dependencies of everything.
Still have the same error

To be honest I've Never been able to get anything from IFeelBloated working. Which sucks because all their stuff is extremely useful

ChaosKing
16th January 2022, 10:51
After having the same problems I tried a simple core.vcm.fqSharp() or core.vcm.hist()
Both do not work, why? These are outdated! Correct would be core.vcm.Hist() and there is no fqSharp() anymore, but there's F2QSharp(). Not sure if it's 100% compatible....

I guess you need to port the script to the new function names or just find the last working vcm version.

Reclusive Eagle
16th January 2022, 14:29
After having the same problems I tried a simple core.vcm.fqSharp() or core.vcm.hist()
Both do not work, why? These are outdated! Correct would be core.vcm.Hist() and there is no fqSharp() anymore, but there's F2QSharp(). Not sure if it's 100% compatible....

I guess you need to port the script to the new function names or just find the last working vcm version.

So I looked at VCM src turns out there is no fq2sharp. fq2sharp identified as fqsharp?
I just tried changing fqSharp to FQSharp, fqsharp all combinations of f2qsharp etc in Plum.py still the same thing.

VCM is working because I can use F2QSharp
clip= core.vcm.F2QSharp(clip , line = 0, wn = 0.05,x = 2, y = 2, scale = 0.45 ,yuv = [1, 0, 0] )
works

At this point I don't know what the issue is

Reclusive Eagle
16th January 2022, 14:45
After having the same problems I tried a simple core.vcm.fqSharp() or core.vcm.hist()
Both do not work, why? These are outdated! Correct would be core.vcm.Hist() and there is no fqSharp() anymore, but there's F2QSharp(). Not sure if it's 100% compatible....

I guess you need to port the script to the new function names or just find the last working vcm version.

Actually I think I just fixed it???
I just said "fk it" and replaced every fqSharp with F2QSharp in both Plum.py and PlumAlpha.py including self.F2QSharp.

I also had to remove fr=fr in self.F2QSharp(code stuff) because that's an Avisynth definition.

Edit Yup its fixed!:

Anyone who has issues getting Plum working here is my temp fix on github https://github.com/ReclusiveEagle/Plum-temp-fix until it is updated.
This is working as of January 2022 with MVSF R10 beta and the 2021 version of Plum

ChaosKing
16th January 2022, 16:17
The question now left is, was it worth it? :D

Reclusive Eagle
16th January 2022, 16:43
The question now left is, was it worth it? :D

I'll tell you if VapourSynth ever renders the first frame 😂
Still though, thanks for your help ChaosKing!

Won't have gotten it working otherwise

ChaosKing
16th January 2022, 19:59
I'll tell you if VapourSynth ever renders the first frame 😂

Hahaha ikr :D