Log in

View Full Version : rife install and setup questions


BabaG
7th February 2024, 06:00
i'd like to try to set up rife for some interpolation tests but am unsure both of my hardware and of the setup process.

my system is old, very workable, but old. probably the device that's most marginal is my graphics card. it's an nvidia gtx760 with 2gb of memory and 1152 cuda cores. can i even run rife in avisynth on this machine? i'm ok with slow but if it won't work at all i guess i can stop now.

if i can run it, i'm unsure of the setup process for use with avisynth. i haven't really found any info as basic as a walkthrough of what to download, where to put it, and such. some things i've seen seem to call for compiling, which will definitely be beyond me. frankly, i'm not even sure if rife is something standalone or an avisynth plugin or something in between.

i checked my avisynth+ version and it seems to be current enough to work 3.7.3 r4003 i think.

any guidance in getting into this is much appreciated.

thanks,
babag

kedautinh12
7th February 2024, 06:03
If your GPU support Vulkan so you can
https://github.com/Asd-g/AviSynthPlus-RIFE

BabaG
7th February 2024, 06:09
thanks for the quick response, kedautinh12.

i believe the card is vulkan capable. no idea what to do with the link, though. it seems to require compiling(?) which is going to be well out of my wheelhouse.

edit:
just downloaded rife 1.1.0 7z file from here:
https://github.com/Asd-g/AviSynthPlus-RIFE/releases/

currently downloading models from same page.

thanks again,
babag

poisondeathray
7th February 2024, 06:17
Check GPU-z , a checkbox will be checkmarked if your GPU supports vulkcan

Compiled release and models
https://github.com/Asd-g/AviSynthPlus-RIFE/releases/tag/1.1.0

takla
7th February 2024, 16:44
thanks for the quick response, kedautinh12.

i believe the card is vulkan capable. no idea what to do with the link, though. it seems to require compiling(?) which is going to be well out of my wheelhouse.

edit:
just downloaded rife 1.1.0 7z file from here:
https://github.com/Asd-g/AviSynthPlus-RIFE/releases/

currently downloading models from same page.

thanks again,
babag

Set up and working it should look something like this:

LWLibavVideoSource("C:\Users\Admin\Downloads\New folder\005.mkv", format="GBRP16")
ConvertBits(32)
RIFE(model=44, factor_num=1, factor_den=1, fps_num=60, fps_den=1)
Prefetch(2)

On your old GPU, you probably don't want Prefetch(2) but on newer GPUs it can double performance.

BabaG
7th February 2024, 20:55
thanks for the responses. plugging away with it.

@takla:
i tried your code copied exactly. did change the file name and path obviously. got error that:

Couldn't locate decompressor for format '[0][0][0][0]' (unknown)

then it says something about virtualdub requiring a vfw compatible codec to decompress the video. source video is proreshq quicktime mov.

thanks,
babag

poisondeathray
7th February 2024, 22:23
For prores use LSmashVideoSource("video.mov")

BabaG
7th February 2024, 22:32
thanks, pdr. now get:

Avisynth open failure: RIFE: only RGB 32-bit planar format supported

tried pasting ", format="GBRP16"" at the end of the lsmash line:

LSMASHVideoSource("TESTCLIP.mov", format="GBRP16")

but then get the same error as before about:

Couldn't locate decompressor for format '[0][0][0][0]' (unknown)

thanks again,
babag

poisondeathray
7th February 2024, 22:37
format="GBRP16" is unsuitable for Prores . Prores will usually be 10bit422 , unless it's XQ4444.


LSmashVideoSource("video.mov") #prores will usually be 10bit422
Z_ConvertFormat(pixel_type="RGBPS", colorspace_op="709:709:709:l=>rgb:709:709:f") #convert to RGB 32bit float for RIFE
RIFE()


There is also RIFEWrap I mentioned in your other thread . It automates the conversion of pixel type and back to source pixel type, also sets the props

LSmashVideoSource("video.mov")
RIFEWrap()

takla
7th February 2024, 23:20
I use AvsPmod which works just fine with the settings I've posted.

poisondeathray
7th February 2024, 23:53
Couldn't locate decompressor for format '[0][0][0][0]' (unknown)



That error is because of vdub2 not supporting float RGB . You can use avspmod to preview, or you can convert back to YUV422P10 or some other pixel type . RifeWRAP will do it automatically, or add


Z_ConvertFormat(pixel_type="YUV422P10", colorspace_op="rgb:709:709:f=>"709:709:709:l")

BabaG
8th February 2024, 01:29
some progress. thanks to you both.

first, @pdr, i was getting an error with your line:Z_ConvertFormat(pixel_type="YUV422P10", colorspace_op="rgb:709:709:f=>"709:709:709:l")
when i changed:
"rgb:709:709:f=>"709:709:709:l")
to:
"rgb:709:709:f=>709:709:709:l")
it worked. just a typo i'm sure. once fixed i was able to load into vdub2.

i'm getting nothing but crashes once i load the file now. it loads and i can navigate vdub settings and such but if i touch the file, such as by trying to seek to a frame, i get a crash. same if i just go straight to render. hoping it's not the ancient graphics card as that's not fixable at the moment.

this is the code i currently have that, as i say, does load the file:
LoadPlugin("Path/To/RIFE.dll")
LSMASHVideoSource("TESTCLIP_ORIG.mov")

ConvertToPlanarRGB()
ConvertBits(32)

RIFE(model=44, factor_num=1, factor_den=1, fps_num=72, fps_den=1) # quadruples number of frames, sets framerate to 72fps from 18fps.
#RIFE(model=44, factor_num=8, factor_den=2) # quadruples number of frames, sets framerate to 72fps from 18fps.
#SelectEvery(3, 1)

Z_ConvertFormat(pixel_type="YUV422P10", colorspace_op="rgb:709:709:f=>709:709:709:l")

i have two lines for rife that seem to produce the same result. i'm taking the pdr advice on getting from 18fps to 24fps by first interpolating up to 72, then taking every third frame.

right now, if i uncomment the 'SelectEvery' function, i get a crash as soon as the file loads. never get the chance to try anything.

edit:
just tried adding this line in place of the 'SelectEvery' line:RIFE(model=44, factor_num=1, factor_den=3)

it does load, though seeking continues to crash. it also does get the number of frames and framerate to their proper place of 24fps. guessing it adds an extra, and probably unwanted, level of interpolation though over the SelectEvery method.

thanks,
babag

poisondeathray
8th February 2024, 01:47
It might be that you're out of GPU memory because you're interpolating twice.

It's unnecessary for rife models 4.x , you can go directly to 24 /1 with less memory, and you should get very similar if not the same results. fps_num=24, fps_den=1

Or it might be vulkan not working > I don't see your card here .

https://developer.nvidia.com/vulkan-driver

If GPU-z has the empty vulkan box, the AVS version is not going to work for you

There are CUDA versions of RIFE, but not for avisynth .

You can try a GUI such as flowframes to quickly test if CUDA RIFE works for you , then decide if you're willing to learn vapoursynth or just use one of the RIFE GUI's that don't use vulkan

poisondeathray
8th February 2024, 02:14
4x then SelectEvery(3, 1) instead of SelectEvery(3, 0) will just take the 2nd frame to start instead of the 1st for every group of 3 . Each frame will be slightly later in time compared to SelectEvery(3,0). And SelectEvery(3,2) would be shifted slightly later than SelectEvery(3, 1) . The time / distance spacing between frames will be the same, just offset 1/3 of a frame . Direct interpolation 18 to 24 gives the same results as 4x (18 to 72) then SelectEvery(3,0) - so direct takes the 1st frame. Surprisingly the GPU and CPU memory consumption was actually similar on my test - but the direct interpolation method was 20-25% faster. Not sure if one method is necessarily better - they look the same just offset.

In some ways, Direct, or 4x then SelectEvery(3,0) is better because it keeps the original starting frame timing. Pretend you were filming a race and the 1st frame has the race on exactly on the start line . If you interpolate using 4x then SelectEvery(3,1), the contestants would be beyond the start line to begin with

BabaG
8th February 2024, 02:25
vulkaninfo seems to produce a huge amount of info so i seem to have it on the system in some fashion. i'd thought i saw someplace that my card was compatible but i don't know.

didn't know what gpu-z is. just installed it via wine and, funnily enough, it does check the box for vulkan. cuda is not checked though. go figure. i know i have 1152 cores.

i looked at vapoursynth some time ago and found it confounding. didn't find a binary at that time and had to compile things. was really too much for me. seems better now so maybe that's a possibility. my python version is 3.10 and it wants 3.11 though. so that's the first step down a slippery slope for me.

thanks for the tips. i'll look into rife gui's and see what i can find to try.

babag

poisondeathray
8th February 2024, 02:38
Wine + drivers could be the issue ... I'm surprised you've got most of the things actually working in the first place

Also try interpolating smaller test first - eg. SD frame size to see if RIFE works at all

BabaG
8th February 2024, 03:33
well, you're right about that! made a copy of the original test file downsized to 720x540 and used it for the rife test and it processed fine. best interpolation i've seen so far of all the various things i've tried too. now what?

poisondeathray
8th February 2024, 03:50
At least you know it works, but the lack of meaningful error messages does not help

Likely has to do with memory, I'm guessing GPU memory, but not necessarily

There is a UHD mode for RIFE, not sure if it will help .
- uhd<br>
Enable UHD mode.<br>
Default: False.

There is a dedicated UHD model for RIFE, but the quality is generally lower on most content. It's model=2 - you can look at the readme for the models . I'm not sure of the impact on memory consumption

IIRC was it AVS x86 ? It could be host memory related. These days there is no reason to use x86 . x64 is better and faster . Even a straight encode without any filters or memory bottleneck is faster with x64. And , if there was some obscure x86 only plugin, you could use it with mp_pipeline in a x64 avs host.

If you get it working and are using it through RIFE directly - not a wrapper function like FramerateConverter or RIFEWrap - don't forget scenechange is disabled by default


Borrow a friend's / family member computer ?

Hushpower
16th May 2024, 08:15
I've been using RIFE on and off for the last few months, but have recently come a cropper on models that accept a FPS change. Here's my script (a modded Jagabo) and attached error message.

LWLibavVideoSource("I:\Cine\Aerial 04\97 Pilots Cse.avi")
AssumeTFF()
QTGMC(Edithreads=8)
FlipVertical() # verified this is correct
SRestore(framerate/3.0) # to 16.667 fps

z_ConvertFormat(pixel_type="RGBPS", colorspace_op="709:709:709:l=>rgb:709:709:f") # RIFE only works with RGB floats
Rife(gpu_thread=1, model=9, fps_num=50000, fps_den=1000, sc=true, sc_threshold=0.12) # motion interpolate to 50 fps
z_ConvertFormat(pixel_type="YUV420P8", colorspace_op="rgb:709:709:f=>709:709:709:l") # back to YV12


Prefetch(24)

Since this script worked a few months ago with "model=9", I assume my issue relates (I think) to the newish "models" layout. The current wiki says, for the models item:

int model = 5
Model to use.
models must be located in the same folder as RIFE.dll.
0: rife
1: rife-HD
2: rife-UHD
3: rife-anime
4: rife-v2
5: rife-v2.3
6: rife-v2.4
7: rife-v3.0
8: rife-v3.1
9: rife-v4
Default: 5.

Clearly, this needs modification because there are now numerous sub-models for each model number eg 4.1, 4.2 (and there are "fast" and "quality" options now for most submodels).

My question is, what general code should I now use for "models". I've tried:

model=4_ensembleFalse

but got an error message "script error, expected a, or )" on the RIFE line, I assume because AVISynth doesn't know what 4_ensembleFalse means.

Can anybody shed some light on the exact syntax for the RIFE model for use with the new models?

Thanks a lot.

DTL
16th May 2024, 12:23
model is integer param - https://github.com/Asd-g/AviSynthPlus-RIFE/blob/307c6b76d207a5d6a48c8eb14cab15ba197d6b8d/src/plugin.cpp#L936 . You can not send text string. You can try to use list of extended constants to 56 -

std::make_pair(0, "/rife"),
std::make_pair(1, "/rife-HD"),
std::make_pair(2, "/rife-UHD"),
std::make_pair(3, "/rife-anime"),
std::make_pair(4, "/rife-v2"),
std::make_pair(5, "/rife-v2.3"),
std::make_pair(6, "/rife-v2.4"),
std::make_pair(7, "/rife-v3.0"),
std::make_pair(8, "/rife-v3.1"),
std::make_pair(9, "/rife-v3.9_ensembleFalse_fastTrue"),
std::make_pair(10, "/rife-v3.9_ensembleTrue_fastFalse"),
std::make_pair(11, "/rife-v4_ensembleFalse_fastTrue"),
std::make_pair(12, "/rife-v4_ensembleTrue_fastFalse"),
std::make_pair(13, "/rife-v4.1_ensembleFalse_fastTrue"),
std::make_pair(14, "/rife-v4.1_ensembleTrue_fastFalse"),
std::make_pair(15, "/rife-v4.2_ensembleFalse_fastTrue"),
std::make_pair(16, "/rife-v4.2_ensembleTrue_fastFalse"),
std::make_pair(17, "/rife-v4.3_ensembleFalse_fastTrue"),
std::make_pair(18, "/rife-v4.3_ensembleTrue_fastFalse"),
std::make_pair(19, "/rife-v4.4_ensembleFalse_fastTrue"),
std::make_pair(20, "/rife-v4.4_ensembleTrue_fastFalse"),
std::make_pair(21, "/rife-v4.5_ensembleFalse"),
std::make_pair(22, "/rife-v4.5_ensembleTrue"),
std::make_pair(23, "/rife-v4.6_ensembleFalse"),
std::make_pair(24, "/rife-v4.6_ensembleTrue"),
std::make_pair(25, "/rife-v4.7_ensembleFalse"),
std::make_pair(26, "/rife-v4.7_ensembleTrue"),
std::make_pair(27, "/rife-v4.8_ensembleFalse"),
std::make_pair(28, "/rife-v4.8_ensembleTrue"),
std::make_pair(29, "/rife-v4.9_ensembleFalse"),
std::make_pair(30, "/rife-v4.9_ensembleTrue"),
std::make_pair(31, "/rife-v4.10_ensembleFalse"),
std::make_pair(32, "/rife-v4.10_ensembleTrue"),
std::make_pair(33, "/rife-v4.11_ensembleFalse"),
std::make_pair(34, "/rife-v4.11_ensembleTrue"),
std::make_pair(35, "/rife-v4.12_ensembleFalse"),
std::make_pair(36, "/rife-v4.12_ensembleTrue"),
std::make_pair(37, "/rife-v4.12_lite_ensembleFalse"),
std::make_pair(38, "/rife-v4.12_lite_ensembleTrue"),
std::make_pair(39, "/rife-v4.13_ensembleFalse"),
std::make_pair(40, "/rife-v4.13_ensembleTrue"),
std::make_pair(41, "/rife-v4.13_lite_ensembleFalse"),
std::make_pair(42, "/rife-v4.13_lite_ensembleTrue"),
std::make_pair(43, "/rife-v4.14_ensembleFalse"),
std::make_pair(44, "/rife-v4.14_ensembleTrue"),
std::make_pair(45, "/rife-v4.14_lite_ensembleFalse"),
std::make_pair(46, "/rife-v4.14_lite_ensembleTrue"),
std::make_pair(47, "/rife-v4.15_ensembleFalse"),
std::make_pair(48, "/rife-v4.15_ensembleTrue"),
std::make_pair(49, "/rife-v4.15_lite_ensembleFalse"),
std::make_pair(50, "/rife-v4.15_lite_ensembleTrue"),
std::make_pair(51, "/rife-v4.16_lite_ensembleFalse"),
std::make_pair(52, "/rife-v4.16_lite_ensembleTrue"),
std::make_pair(53, "/sudo_rife4_ensembleFalse_fastTrue"),
std::make_pair(54, "/sudo_rife4_ensembleTrue_fastFalse"),
std::make_pair(55, "/sudo_rife4_ensembleTrue_fastTrue")


Or plugin supports string param "model_path" - you can try model_path="4_ensembleFalse" (or put exact path from current working dir relative or from root drive letter absolute).

From the description:
model_path
RIFE model path.
Supersedes model parameter if specified.
Default: Not specified.

Hushpower
16th May 2024, 13:12
Thanks DTL, so instead of typing

model=9

what should I type?

poisondeathray
16th May 2024, 14:19
Enter the number that you want. Only 4.x models can achieve arbitrary framerates instead of powers of 2. Notice that "9" is no longer a 4.x model . Now it's 11 and above

The list of models

https://github.com/Asd-g/AviSynthPlus-RIFE


model
Model to use.
models must be located in the same folder as RIFE.dll.
Some of the models have two versions: speed oriented (ensemble=False / fast=True) and quality oriented (ensemble=True / fast=False).
0: rife
1: rife-HD
2: rife-UHD
3: rife-anime
4: rife-v2
5: rife-v2.3
6: rife-v2.4
7: rife-v3.0
8: rife-v3.1
9: rife-v3.9_ensembleFalse_fastTrue
10: rife-v3.9_ensembleTrue_fastFalse
11: rife-v4_ensembleFalse_fastTrue
12: rife-v4_ensembleTrue_fastFalse
13: rife-v4.1_ensembleFalse_fastTrue
14: rife-v4.1_ensembleTrue_fastFalse
15: rife-v4.2_ensembleFalse_fastTrue
16: rife-v4.2_ensembleTrue_fastFalse
17: rife-v4.3_ensembleFalse_fastTrue
18: rife-v4.3_ensembleTrue_fastFalse
19: rife-v4.4_ensembleFalse_fastTrue
20: rife-v4.4_ensembleTrue_fastFalse
21: rife-v4.5_ensembleFalse
22: rife-v4.5_ensembleTrue
23: rife-v4.6_ensembleFalse
24: rife-v4.6_ensembleTrue
25: rife-v4.7_ensembleFalse
26: rife-v4.7_ensembleTrue
27: rife-v4.8_ensembleFalse
28: rife-v4.8_ensembleTrue
29: rife-v4.9_ensembleFalse
30: rife-v4.9_ensembleTrue
31: rife-v4.10_ensembleFalse
32: rife-v4.10_ensembleTrue
33: rife-v4.11_ensembleFalse
34: rife-v4.11_ensembleTrue
35: rife-v4.12_ensembleFalse
36: rife-v4.12_ensembleTrue
37: rife-v4.12_lite_ensembleFalse
38: rife-v4.12_lite_ensembleTrue
39: rife-v4.13_ensembleFalse
40: rife-v4.13_ensembleTrue
41: rife-v4.13_lite_ensembleFalse
42: rife-v4.13_lite_ensembleTrue
43: rife-v4.14_ensembleFalse
44: rife-v4.14_ensembleTrue
45: rife-v4.14_lite_ensembleFalse
46: rife-v4.14_lite_ensembleTrue
47: rife-v4.15_ensembleFalse
48: rife-v4.15_ensembleTrue
49: rife-v4.15_lite_ensembleFalse
50: rife-v4.15_lite_ensembleTrue
51: rife-v4.16_lite_ensembleFalse
52: rife-v4.16_lite_ensembleTrue
53: sudo_rife4_ensembleFalse_fastTrue
54: sudo_rife4_ensembleTrue_fastFalse
55: sudo_rife4_ensembleTrue_fastTrue
Default: 5.

DTL
16th May 2024, 14:39
Thanks DTL, so instead of typing

model=9

what should I type?

As I see the model files are flownet.bin and flownet.params located in some named subfolder of the 'models' folder.

Compiled RIFE.dll has internally some pre-defined by integers subfolders names (see table).

Also you can add more models so some differently named subfolders.

To load the model to use you either (download and unpack models in folders 1..5x) set pre-defined model index via model=(integer index) or set model_path=(subfolder name of 1 level below rife_root\models).

Here we have also at least 2 ways to load any model located in the (flownet.bin and flownet.params) files:

1. Put your desired model in the pre-defined folder name and use via index in model= param.
2. Put your desired model in any differently named subdolder in the 'models' folder and set this name (without path ?) in the text string param model_path.

About 4_ensembleFalse model - I do not see this name in the pre-defined names. The only closest is rife-v4_ensembleFalse_fastTrue . So it is either some error or some custom model name (or from old versions with different models subfolders names).

If you sure you have subfolder named 4_ensembleFalse in the 'models' folder - you can not load it via index and models= param and only way to load it via model_path=4_ensembleFalse .

Other way is take (flownet.bin and flownet.params) files from your model folder and replace same files in any pre-defined models subfolders (see list above) and use its index via model=(index). Maybe make backup copy of the original model files if they are required.

Hushpower
16th May 2024, 14:55
Arr So, got it now. Thanks both.

The wiki needs updating and I see even the Github page list doesn't match the current rife folder list; the "anime" folder has moved up two.

I am going to look into moving my models folder to keep things a bit more under control.

Edit: no I won't; the rife sub folders aren't numbered.

poisondeathray
16th May 2024, 16:16
The wiki needs updating and I see even the Github page list doesn't match the current rife folder list; the "anime" folder has moved up two.

It's up to date
The alphabetical order does not necessarily correspond to the model number




I am going to look into moving my models folder to keep things a bit more under control.

Edit: no I won't; the rife sub folders aren't numbered.

Keep the model data in their folder structure - In the plugins directory, there should be a models directory. Make one if there isn't. Within that models directory, you unzip the models archive. Each model has it's own folder

The model numbers for "model=x" are arbitrary and can change at anytime - just like you've seen with model=9 is no longer 4.0. - but the snapshots of the models themselves will be the same

StvG
16th May 2024, 20:43
Btw there is mlrt_RIFE (https://github.com/Asd-g/avs-mlrt/blob/main/scripts/mlrt_RIFE.avsi) (models (https://github.com/AmusementClub/vs-mlrt/releases/tag/external-models), models (https://github.com/AmusementClub/vs-mlrt/releases/tag/v14) (models.v14.7z)).

Hushpower
17th May 2024, 01:37
It's up to date
It (the wiki) is not up to date, as per the attached. I'm only mentioning it because it is misleading for us newbys trying to work all this out. Let's face it, it's the only reason I'm here now. Had the wiki been up to date, I would have seen the new model numbers and probably worked it out myself.

The alphabetical order does not necessarily correspond to the model number
OK, not logical but it's not my trainset! :)

Each model has it's own folder
Understood, but there's no easy way of telling which model number belongs to which folder and I've tried pointing "model_path" at a 'models' folder located elsewhere but it doesn't work. It seems I have to point it at the subfolder for the particular model I want to use, but because there's no indication of the model number for each folder, it can't be done easily. I'll just have to leave "models" in the plugins folder. I was trying to offload my C drive but not to worry.

poisondeathray
17th May 2024, 02:26
It (the wiki) is not up to date, as per the attached.

Ah, you mean the avisynth wiki on avisynth.nl




Understood, but there's no easy way of telling which model number belongs to which folder and I've tried pointing "model_path" at a 'models' folder located elsewhere but it doesn't work. It seems I have to point it at the subfolder for the particular model I want to use, but because there's no indication of the model number for each folder, it can't be done easily. I'll just have to leave "models" in the plugins folder. I was trying to offload my C drive but not to worry.

Personally I've setup my avs plugins directory on a non c: drive anyways

For this plugin, I think if you have the models in the same directory as a manually loaded RIFE.dll (LoadPlugin("PATH\RIFE.dll") on a different drive, it should work too


`models` must be located in the same folder as RIFE.dll

Hushpower
17th May 2024, 03:06
Thanks PDR.

wonkey_monkey
4th March 2026, 00:12
I'm trying RIFE for blending frames, using high framerates, but so far I'm finding the results of the models either a bit jerky or a bit "wobbly" (e.g. model = 11; like it's underwater, if that makes sense). I assumed the models were for generating vectors, then the pixels were interpolated along the vectors by varying amounts (i.e. the vectors for one pair of frames would remain constant, no matter which intermediate frame you were trying to generate - like mflowfps would do). Is that not the case? Does the model instead take the new time position as an input as well?

Is there any particular model that's more likely to give a smooth, consistent interpolation between a pair of frames?

wonkey_monkey
4th March 2026, 02:03
PS I'm getting corrupt output with list_gpu = true about 80% of the time. Maybe a string isn't being saved properly somewhere?

Emulgator
4th March 2026, 11:15
Is there any particular model that's more likely to give a smooth, consistent interpolation between a pair of frames?
On my system models 46 (for splashy), or 48 (for smooth) run well.
Just left Topaz Chronos in the drawer from then on.
P.S. Well, 71 is my new favourite now.
...corrupt output with list_gpu = true about 80% of the time
I did not use list_gpu=true, just tried:
gpu_id=0 uses the dGPU (nVidia 3080RTX), can use gpu_thread=8
gpu_id=1 uses the iGPU (Intel UHD750), can only use gpu_thread=1

This Just In: Thank you Asd-g ! 5 hours ago he fixed it !
(from the changelog) ##### 1.3.2: Fixed `list_gpu`.

Frank62
4th March 2026, 11:51
I use GimmVFI for this meanwhile. Maybe someone could port it to Avisynth?
https://github.com/kijai/ComfyUI-GIMM-VFI

wonkey_monkey
4th March 2026, 12:29
gpu_id=0 uses the dGPU (nVidia 3080RTX), can use gpu_thread=8
gpu_id=1 uses the iGPU (Intel UHD750), can only use gpu_thread=1


In my experience, the ordering depends on which GPU the parent program has been assigned to in Windows settings. I would suggest to Asd-g to take a string filter to select GPUs rather than an ID, since that can change (if you specify a gpu_id according to the list, but later switch to another program, or change the graphics settings for the program, then your calls to RIFE will use a different GPU).

My plugins' strategy is to take an optional string (e.g. "intel", "nvidia", "RTX"), filter out any GPUs whose names don't contain the string, then choose the first dedicated GPU (or first integrated, if no dedicated GPUs pass the filter).

Emulgator
4th March 2026, 14:02
This might be the safer approach.
I felt unsafe about he numbering too, in my system hwinfo had assigned GPU IDs the other way around, iGPU=0, dGPU=1