NOTICE: This repo is being moved to https://github.com/TNTwise/Rife-ESRGAN-App-Linux-QT, This repo will be archived.
This project aims to accomplish a simple frame interpolation experience on linux, while also using open technologies that rely on Vulkan to allow for seemless compatibility with a wide range of hardware.
rife-ncnn-vulkan: https://github.com/nihui/rife-ncnn-vulkan
Real-ESRGAN-ncnn-vulkan: https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan
Dependencies
Building
Errors
TODO
OpenCV
Tkinter
Xterm
To run this program, you can just click on "Start".
There is a new install.sh script in the install directory that you can run that will install it to your system.
You can either search for Rife in your destop enfironment, or can run rife-gui from your terminal.
This install method will copy everything to the home folder, and execute from there.
On Ubuntu
sudo apt install python3-opencv ffmpeg python3-tk konsole libavfilter-dev libavfilter8 libswscale-dev python3-pil.imagetk
On Arch/Arch based Distros
sudo pacman -S tk opencv konsole ffmpeg python-pip wget
On SteamOS/Steam Deck
Run "Start"
As of latest SteamOs 3.4, it does not error out when launching it from "Start".
Install needed dependencies
yay -S pyinstaller
run GUI.py at least once to install PIP dependencies
make
git clone https://github.com/TNTwise/Rife-ESRGAN-App-AppImage.git
replace GUIPortable.temp with the compiled GUIPortable
chmod +x Rife-ESRGAN-App.AppDir/AppRun
appimagetool Rife-ESRGAN-App.AppDir
vkQueueSubmit failed and vkAllocateMemory failed happens when there isn't enough VRAM for the current frame.
Lower the system load if you see these errors or if the output video is corrupted.
If RealESRGAN does not seem to be working, or Rife is slow, make sure you have the vulkan package installed based on your hardware.
For example:
Intel:
sudo pacman -S vulkan-intel
AMD:
sudo pacman -S vulkan-radeon
NVIDIA:
sudo pacman -S nvidia-utils
Before all this, The next release will use QT instead of Tkinter. I will also split GUI.py into multiple, easier to manage scripts. The code which this app is based on is bad, so I will attempt to re-write most of it.
Maybe add a chooser for which modules to install??
add pop up when closing app to ask to kill rife/realesrgan or not
add fullscreen button for preview
automatic detection of max usage per system, do this by having a test video render at 1080p, 4k, and 8k and detect the max settings the system can run without erroring out with a not enough vram error.
make anime progress bar dynamic, have the first section be the fps out of the fps + 30.
fix missing riff tag when using anything other than png, try converting the frames to webp using ffmpeg
Have animeintterpolation interpolate regularly until the last iteration and then lower to 30 and interpolate.
make an option that allows for changing of extracted image type.
Fix issue where output video errors out if codec is not right, even if filename is .mp4
Add CLI support for basic interpolation.
For next release, add advanced settings tab.
Add support for changing between yuv420p yuv422p yuv244p rgb24 pix_fmt
Add automatic conversion to supported format
Maybe add a message to ask if user wants to save last output files if greater than 2x interpolation.
Add a try except function for reading settings
Add a function that deletes already processced files (check if file num x 2 exists in output_folder)
Fix CPU + GPU combo not working with realsrgan
Add shutdown when done
Disable tabs when on a certain upscale mode
Add realesrgan support to upscale video resolution, make app more general purpose
Set up queue system
Add scalability to GUI
fix brogressbar not showing somtimes when animation profile is selected.
Use less temp files
Check if done file exists, and if not, throw error
Add in built terminal
Add stop button for interpolation
Make portable installer, that is just one file to install the program
Remodel the entire GUI
Fix start executable not working on SteamOS
Add more models, add drop downs for selecting different rife variations (cuda, vulkan, standard) add DAIN and CAIN too.
Add selector for default directory to process frames, this could help people with low disk space.
Make rife version and interpolation multiplier dropdown menus
Make settings menu a tab instead of a window
Add ETA for video interpolation
Toggle between stable and testing branch (Dropdown Menu)
Add suspend/resume feature
Add uninstall button
Support Dain Vulkan
Clean up files
Add progressbar for update (Note: Will have to make update function run in a new thread to have progressbar update.)
Fix pop up showing wrong password, even when password is right (only happens if window is re-launched from install button.)
Clean up GUI, Maybe switch to .pack instead of .grid?
Add a default rife version selector.
Add a default interpolation option selector
Add longer dependencies section.
Show errors on GUI itself, so i can remove the xterm dependency.