Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/TNTwise/Rife-ESRGAN-App-Linux

A simple GUI for Rife Vulkan on Linux.
https://github.com/TNTwise/Rife-ESRGAN-App-Linux

Last synced: about 2 months ago
JSON representation

A simple GUI for Rife Vulkan on Linux.

Awesome Lists containing this project

README

        

# NOTICE: This repo is being moved to https://github.com/TNTwise/Rife-ESRGAN-App-Linux-QT, This repo will be archived.



## A simple GUI for Frame Interpolation and Upscaling on Linux
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](https://github.com/TNTwise/Rife-ESRGAN-App-Linux#dependencies)

[Building](https://github.com/TNTwise/Rife-ESRGAN-App-Linux/#building)

[Errors](https://github.com/TNTwise/Rife-ESRGAN-App-Linux/#errors)

[TODO](https://github.com/TNTwise/Rife-ESRGAN-App-Linux/#todo)

## Dependencies:
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.

## Installing Dependencies

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".

## Building
Install needed dependencies
```
yay -S pyinstaller
```
run GUI.py at least once to install PIP dependencies
```
make
```
# Compile Appimage
```
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
```

## Errors
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
```

## TODO
### 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.