Configuration reference
The settings page is organised into six tabs. Every control here maps 1:1 to a key in PluginConfiguration.cs.
Settings tab
AI Service connection
| Field | Default | Notes |
|---|---|---|
AI Service URL | — | Full URL to the Docker AI service. Typically http://localhost:5000 or http://<host>:5000. |
AI Service API Token | empty | Shared secret. Plugin attaches it as X-Api-Token to every call. Must match the container's API_TOKEN env var. |
Test Connection | — | Fires GET /health — shows online/offline + auth posture. |
Library scan
Enabled Libraries | all | Chip picker. Empty = scan all; picks limit to specific virtual folders (added in v1.6.1.14 for issue #64). |
Min Width / Min Height | 1920 / 1080 | Threshold for what counts as "low-resolution". OR-logic: a video qualifies if either dimension is below. |
Output Codec | libx264 | 12 options: libx264/libx265/libsvtav1/libaom-av1/libvpx-vp9 (software), h264/hevc/av1_nvenc (NVIDIA), h264/hevc/av1_qsv (Intel), plus stream-copy. |
Target Scale | 2x | 1x–4x. 3x is the sweet spot for 480p→1440p source material. |
Auto Model Selection
New in v1.6.1.15. When enabled, the plugin calls /Upscaler/recommend-model at playback start and picks both model and color-filter preset per video based on genre tags.
- Anime →
animesr-v2-x4/anime-compact-x4+ Vivid filter - Horror/thriller →
realesrgan-x4plus+ Drama - Sci-fi →
hat-x4+ Cyberpunk - Documentary/low-res →
swinir-m-x4+ Sharp HD - Multi-frame batch →
edvr-m-x4/realbasicvsr-x4
AI Models tab
Live model catalog pulled from /models. Each row shows:
- Status dot — available / downloaded / loaded / unavailable
- Scale factor — 2×, 3×, 4×
- VRAM estimate — based on benchmark
- Actions — Download, Load/Unload, Benchmark
Filter bar: search-by-name + status filter (all / available / downloaded / loaded / unavailable). See the model catalog for the full list.
Filters tab
15 camera-style presets that can be applied either as live CSS overlay (no re-transcode, 60fps) or as server-side FFmpeg filter chain (persists in the output file).
- Cinematic · vintage film look
- Vintage · low saturation + warm
- Vivid · saturated + contrast boost
- Sepia · monochrome warm
- Cyberpunk · neon teal/magenta
- Teal & Orange · Hollywood colour-grade
- Drama · high contrast desaturate
- Soft Glow · bloom on highlights
- Sharp HD · edge enhance + clarity
- Retro Game · slight scanline
- Pastel · low saturation pastel
- Noir · grayscale high-contrast
- Night Vision · green-channel
- Thermal · false-colour
- Custom · 6 FFmpeg params exposed
Advanced filter params
Under Advanced you get 6 FFmpeg filter knobs that persist across sessions via POST /Upscaler/filter-config:
| Param | Range | FFmpeg filter |
|---|---|---|
| Gamma | 0.5 – 2.0 | eq=gamma=... |
| Sharpness | 0 – 5 | unsharp=5:5:... |
| Colour Temperature | -100 – +100 K | colortemperature |
| Vignette | 0 – 1 | vignette |
| Film Grain | 0 – 30 | noise=alls=... |
| Denoise | 0 – 10 | hqdn3d=... |
Face Restoration tab
New in v1.6.1.7. GFPGAN / CodeFormer passes for restoring faces in low-res footage.
Enable Face Restoration | off |
Model | gfpgan-v1.4 or codeformer |
Max Faces Per Frame | 5 (guard rail) |
Min Face Size (px) | 48 |
Alpha Feather (px) | 12 |
Hardware tab
Read-only view of what the AI service detected on the container host — useful for debugging why a model isn't loading.
- Execution providers (CUDA / OpenVINO / DirectML / ROCm / CPU) with version strings
- GPU list with VRAM, driver, CUDA/compute capability
- Last benchmark timestamp + FPS per model
- Onnxruntime version + build flags
Advanced tab
| Field | Purpose |
|---|---|
Max Concurrent Streams | Cap on parallel AI jobs. 1 for single-GPU, 2+ only if you have VRAM headroom. |
Enable Pre-Processing Cache | Stores upscaled frames on disk so a replay doesn't re-run inference. |
Enable Remote Transcoding | Lets Jellyfin hand off transcoding to the AI service host over SSH (see Deployment). |
Enable Performance Metrics | Collect per-frame timing; visible on Hardware tab. |
Log Level | Information / Debug / Trace. Affects plugin logs in jellyfin.log. |