Jellyfin AI Upscalerv1.6.1.16

Features

Every user-visible feature, grouped by subsystem.

Upscaling engine

30+ ONNX models

Real-ESRGAN family (x4plus / x2plus / anime), SwinIR (M/L), HAT (S/M/L), EDVR-M, RealBasicVSR, AnimeSR v2, Anime Compact, RIFE frame-interp (v4.7/v4.8/v4.9), FSRCNN, Waifu2x.

4 hardware backends

NVIDIA CUDA + TensorRT, Intel OpenVINO, AMD ROCm, CPU-only. Auto-detected on service startup, routed per-model based on benchmark history.

5 processing strategies

Real-time (per-frame passthrough), Frame-by-Frame (batch of N frames), Batch (multi-segment), Multi-Frame (temporal), Real-Time AI (throttled queue).

Pre-processing cache

Upscaled frames persist to disk keyed by (file hash, model, scale). Replaying a processed video costs zero GPU cycles.

Stream-copy codec path

When you only want filters applied without re-encoding, stream-copy mode keeps the original video bitstream and copies audio 1:1.

Hardware-accel encoder defaults

12 codec options, each with tuned parameters — libsvtav1 -preset 6 -crf 30, libaom-av1 -cpu-used 4, NVENC -cq per H/HEVC/AV1, QSV global_quality.

In-player quick menu

Tabbed overlay

[Models · Filters · Realtime] opens from the Upscaler button next to subtitles. Non-modal — keeps playing while you tune.

Live CSS filter sliders

Brightness · Contrast · Saturation — change the <video> element's CSS filter at 60fps, no server round-trip.

15 preset looks

Cinematic · Vintage · Vivid · Sepia · Cyberpunk · Teal & Orange · Drama · Soft Glow · Sharp HD · Retro Game · Pastel · Noir · Night Vision · Thermal · Custom.

Live status strip

Active-dot + state (ACTIVE/STANDBY/IDLE/DISABLED) + mode (Server/WebGL) + FPS + active model — polls every 500ms while menu is open.

Per-model state icons

Ready · Download · Busy · Error — with inline spinner during load. Menu stays open so you see progress.

Auto-Mode (optional)

Plugin picks model + filter per video based on genre tags. Session-override leaves saved prefs untouched.

Docker AI service

Operator dashboard

Grafana/Linear/Vercel-inspired UI at :5000. Sticky topbar, 4 tabs (Overview/Models/Hardware/API), KPI tiles with tabular-num typography, inline SVG latency sparkline.

OpenAPI explorer

Built-in endpoint browser — every route shown with method+path+tags, pulled from live /openapi.json.

Log streaming console

SSE-based log tail inside the UI — tail the service without docker logs.

Model catalog browser

Live table of the 30+ models with search + status filter, one-click download/load/unload.

Hardware panel

Per-provider chips sourced from /hardware + /gpus. Tells you exactly what Onnxruntime sees.

Live metrics

/metrics endpoint (Prometheus-compatible) with per-model latency, queue depth, VRAM usage.

Library scan & batch processing

Scheduled nightly task

Scan & Upscale Library runs via Jellyfin's scheduler. Daily trigger configurable in standard Jellyfin UI.

Select libraries

Chip-based picker lets you target specific Jellyfin virtual folders — no more "scan everything every night".

Progress-aware

Per-item progress surfaced via Jellyfin's standard scheduled-task UI ([42/70] Processing: ...).

Skip already-upscaled

Output files named *_upscaled.mp4 are detected on re-scan — no duplicate work.

Face restoration (v1.6.1.7+)

GFPGAN v1.4 / CodeFormer

Both models shipped, switchable via config. CodeFormer gives sharper faces; GFPGAN is more forgiving on blurry sources.

Haar-cascade detection

OpenCV face detection runs before the restoration pass. Min face size and max-faces-per-frame configurable.

Feathered alpha-blend

Restored faces are blended back into the upscaled frame with configurable feather width — no hard edges.

Resolution guard

Skip faces below a threshold so you don't waste compute on tiny distant heads.

Comparison view

Internationalisation

The operator-facing UI (both plugin settings and Docker console) ships with six languages out of the box:

EnglishDeutschFrançais中文Русский日本語