Add Linux stats to Readme.md

This commit is contained in:
2025-10-01 22:10:10 +02:00
parent 3fde5f919c
commit 9ece75e541

237
Readme.md
View File

@@ -1,116 +1,123 @@
## Upscale ## Upscale
Automatically upscale and interpolate video files. Automatically upscale and interpolate video files.
### Table of Contents ### Table of Contents
- [Usage](#usage) - [Usage](#usage)
- [Configuration](#configuration) - [Configuration](#configuration)
- [Stats](#stats) - [Stats](#stats)
- [Real-ESRGAN](#real-esrgan) - [Real-ESRGAN](#real-esrgan)
- [RIFE](#rife) - [RIFE](#rife)
- [SVT-AV1](#svt-av1) - [SVT-AV1](#svt-av1)
- [Requirements](#requirements) - [Requirements](#requirements)
- [Requirements for 1080p, 1080p@48, 4k](#requirements-for-1080p-1080p48-4k) - [Requirements for 1080p, 1080p@48, 4k](#requirements-for-1080p-1080p48-4k)
- [Requirements for 4k48fps](#requirements-for-4k48fps) - [Requirements for 4k48fps](#requirements-for-4k48fps)
- [Installation](#installation) - [Installation](#installation)
- [Windows](#windows) - [Windows](#windows)
- [Arch Linux](#arch-linux) - [Arch Linux](#arch-linux)
## Usage ## Usage
1. Preparing video file (MKVToolNix) 1. Preparing video file (MKVToolNix)
- Make sure video file does NOT have an image attachment - Make sure video file does NOT have an image attachment
- Video file should have ONE `ass` subtitle file - Video file should have ONE `ass` subtitle file
- Name video file similar to the following: `Your Title - 01.mkv` - Name video file similar to the following: `Your Title - 01.mkv`
2. Place `.mkv` file inside `0-Source` folder 2. Place `.mkv` file inside `0-Source` folder
3. Execute `python Start.py` 3. Execute `python Start.py`
## Configuration ## Configuration
The `Start.py` file has two options INSIDE, edit in text editor: The `Start.py` file has two options INSIDE, edit in text editor:
- `INTERPOLATE_4K`: `True` or `False` (wether or not 4k48fps should be outputted) - `INTERPOLATE_4K`: `True` or `False` (wether or not 4k48fps should be outputted)
- `MAX_INPUT_WIDTH`: `'720'` (downscales the video to this width, as 1080p upscaling would be insane) - `MAX_INPUT_WIDTH`: `'720'` (downscales the video to this width, as 1080p upscaling would be insane)
## Stats ## Stats
#### Real-ESRGAN _Note: The VRAM usage is the one reported in `nvidia-smi` and is system wide. Subtract ~1GB for OS._
| Input | Output | VRAM | RAM | GPU | FPS | OS |
| :------: | :-------: | :----: | :----: | :----------: | :-------: | :-----: | #### Real-ESRGAN
| 1280x720 | 2120x2880 | ~4.4GB | ~1,8GB | 3090 (@360W) | ~13.56fps | Windows | | Input | Output | VRAM | RAM | GPU | FPS | OS |
| :------: | :-------: | :----: | :----: | :----------: | :-------: | :------: |
#### RIFE | 1280x720 | 2120x2880 | ~4.4GB | ~1.8GB | 3090 (@360W) | ~13.56fps | Windows |
| Input | Output | VRAM | RAM | GPU | FPS | OS | | 1280x720 | 2120x2880 | ~4.4GB | ~2.4GB | 3090 (@350W) | ~13.73fps | Linux 🐧 |
| :----------: | :----------: | :----: | :----: | :----------: | :----: | :-----: |
| 1080p@23.976 | 1080p@47.952 | ~6.6GB | ~4.0GB | 3090 (@360W) | ~60fps | Windows | #### RIFE
| 2160p@23.976 | 2160p@47.952 | <span style="color:red">~19.4GB</span> | ~8.0GB | 3090 (@360W) | ~18fps | Windows | | Input | Output | VRAM | RAM | GPU | FPS | OS |
| :-------------: | :-------------: | :----: | :----: | :----------: | :----: | :------: |
#### SVT-AV1 | 1080p 23.976fps | 1080p 47.952fps | ~6.6GB | ~4.0GB | 3090 (@360W) | ~60fps | Windows |
Settings: CRF 26, Preset 6. See [encodeCDN.py](/utils/encodeCDN.py). | 1080p 23.976fps | 1080p 47.952fps | ~7.6GB | ~8.4GB | 3090 (@350W) | ~64fps | Linux 🐧 |
| 2160p 23.976fps | 2160p 47.952fps | <span style="color:red">~19.4GB</span> | ~8.0GB | 3090 (@360W) | ~18fps | Windows |
| Input | RAM | FPS | CPU | OS | | 2160p 23.976fps | dnf | n/a | <span style="color:red">~31.0GB (run out of memory)</span> | 3090 (@360W) | n/a | Linux 🐧 |
| :-------: | :-----: | :-----: | :-----------------: | :-----: |
| 1920x1080 | ~3.9GB | ~76fps | Ryzen 7900x (@130W) | Windows | #### SVT-AV1
| 3840x2160 | <span style="color:gold">~12.3GB</span> | ~35fps | Ryzen 7900x (@130W) | Windows | Settings: CRF 26, Preset 6. See [encodeCDN.py](/utils/encodeCDN.py).
## Requirements | Input | RAM | FPS | CPU | OS |
- **OS**: Windows or Linux | :-------: | :-----: | :-----: | :-----------------: | :------: |
- **Python**: >=3.12 (Windows) or Python 3.13 (Linux) | 1920x1080 | ~3.9GB | ~76fps | Ryzen 7900x (@130W) | Windows |
- **RAM**: Min: 16GB - Recommended: 32GB | 1920x1080 | ~4.8GB | ~80fps | Ryzen 7900x (@130W) | Linux 🐧 |
| 3840x2160 | <span style="color:gold">~12.3GB</span> | ~35fps | Ryzen 7900x (@130W) | Windows |
#### Requirements for 1080p, 1080p@48, 4k | 3840x2160 | <span style="color:gold">~13.0GB</span> | ~37fps | Ryzen 7900x (@130W) | Linux 🐧 |
- **GPU**: NVIDIA GPU with 8GB+ of VRAM
## Requirements
#### Requirements for 4k48fps - **OS**: Windows or Linux
- **GPU**: NVIDIA GPU with 24GB of VRAM - **Python**: >=3.12 (Windows) or Python 3.13 (Linux)
- **RAM** (Linux): 48GB (there is a memory leak in VapourSynth) - **RAM**: Min: 16GB - Recommended: 32GB
## Installation #### Requirements for 1080p, 1080p@48, 4k
- **GPU**: NVIDIA GPU with 8GB+ of VRAM
#### Windows
1. Download and install [Python 3.12](https://www.python.org/ftp/python/3.12.8/python-3.12.8-amd64.exe) - Check option to add to path #### Requirements for 4k48fps
2. Download and install [Imagemagick](https://imagemagick.org/script/download.php#windows) - Check option to install legacy tools (Required for creating player previews `thumbs.vtt` and `sprite.jpg`) - **GPU**: NVIDIA GPU with 24GB of VRAM
3. Download and install [MKVToolNix](https://mkvtoolnix.download/downloads.html#windows) - **Add to system path environment manually** - **RAM** (Linux): 48GB (there is a memory leak in VapourSynth)
4. Download [ffmpeg](https://www.gyan.dev/ffmpeg/builds/#release-builds) - Either place it inside the MKVToolNix install directory or create a new directory somewhere and **add it to system path environment**
5. Download and install [VapourSynth R72](https://github.com/vapoursynth/vapoursynth/releases) - Check options to install vsrepo, avisynth support not required ## Installation
6. Install `vsrepo` packages, in Terminal (cmd, NOT Powershell!):
```cmd #### Windows
:: FFmpeg Source Plugin 1. Download and install [Python 3.12](https://www.python.org/ftp/python/3.12.8/python-3.12.8-amd64.exe) - Check option to add to path
vsrepo.py install ffms2 2. Download and install [Imagemagick](https://imagemagick.org/script/download.php#windows) - Check option to install legacy tools (Required for creating player previews `thumbs.vtt` and `sprite.jpg`)
3. Download and install [MKVToolNix](https://mkvtoolnix.download/downloads.html#windows) - **Add to system path environment manually**
:: (optional) Miscfilters Plugin, used for scenedetection in vsrife 4. Download [ffmpeg](https://www.gyan.dev/ffmpeg/builds/#release-builds) - Either place it inside the MKVToolNix install directory or create a new directory somewhere and **add it to system path environment**
:: Unsure if it even works 5. Download and install [VapourSynth R72](https://github.com/vapoursynth/vapoursynth/releases) - Check options to install vsrepo, avisynth support not required
vsrepo.py install misc 6. Install `vsrepo` packages, in Terminal (cmd, NOT Powershell!):
``` ```cmd
7. Install `pip` packages :: FFmpeg Source Plugin
```cmd vsrepo.py install ffms2
pip install packaging setuptools wheel
pip install pymediainfo python-dateutil :: (optional) Miscfilters Plugin, used for scenedetection in vsrife
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126 :: Unsure if it even works
pip install vsrealesrgan vsrife vsrepo.py install misc
``` ```
8. Install models used by `vsrealesrgan` and `vsrife` 7. Install `pip` packages
```ps ```cmd
python -m vsrealesrgan pip install packaging setuptools wheel
python -m vsrife pip install pymediainfo python-dateutil
``` pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
pip install vsrealesrgan vsrife
#### Arch Linux ```
Sadly there is some sort of memory leak in vsrife or vapoursynth under Linux. 8. Install models used by `vsrealesrgan` and `vsrife`
```ps
If you have 32GB of RAM it should suffice for everything EXCEPT 4k48p, there you probably need 48GB or 64GB of RAM. python -m vsrealesrgan
python -m vsrife
```bash ```
# System Packages
sudo pacman -S python vapoursynth ffms2 ffmpeg mkvtoolnix-cli mediainfo imagemagick #### Arch Linux
Sadly there is some sort of memory leak in vsrife or vapoursynth under Linux.
# Setup virtual environment (in upscale dirctory)
python -m venv .venv If you have 32GB of RAM it should suffice for everything EXCEPT 4k48p, there you probably need 48GB or 64GB of RAM.
source .venv/bin/activate
```bash
# Install pip dependencies # System Packages
pip install typing-extensions packaging setuptools wheel sudo pacman -S python vapoursynth ffms2 ffmpeg mkvtoolnix-cli mediainfo imagemagick
pip install pymediainfo python-dateutil
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126 # Setup virtual environment (in upscale dirctory)
pip install vsrealesrgan vsrife python -m venv .venv
source .venv/bin/activate
# Install models
python -m vsrealesrgan # Install pip dependencies
python -m vsrife pip install typing-extensions packaging setuptools wheel
pip install pymediainfo python-dateutil
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
pip install vsrealesrgan vsrife
# Install models
python -m vsrealesrgan
python -m vsrife
``` ```