# Jasna GPU Video Mosaic Restoration for NVIDIA and AMD

> Jasna is a Python desktop and CLI tool for restoring mosaics in videos and still images through a GPU-only pipeline. Its NVIDIA path is more complete, while AMD support and some paid restoration models carry clear limits.

**Kruk2/jasna** — JAV video restoration tool

- Repository: https://github.com/Kruk2/jasna
- Stars: 3,509 · Forks: 271
- Language: Python
- License: AGPL-3.0
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/kruk2-jasna

## Jasna's Restoration Scope and Target Hardware

Jasna addresses a specific media-processing problem: identifying mosaic regions in video and replacing them through a restoration pipeline. It is intended for users who want to run that processing locally on a supported GPU, either through a desktop application or the `jasna` command. The README also places experimental still-image restoration through SD 1.5 within the same project, although that path is tied to an extra model rather than the standard video workflow.

The supported hardware boundary is narrower than the phrase GPU restoration may suggest. On NVIDIA, Jasna requires compute capability 7.5 or newer. The README identifies GTX 16-series and RTX 20-series cards or newer as the usable range, while GTX 10-series cards such as the GTX 1050, 1060, 1070, and 1080 are explicitly excluded. Drivers must be version 610 or newer on Windows or 580 or newer on Linux.

AMD support is experimental rather than equivalent to the NVIDIA path. It requires a ROCm-supported device, with the README listing Radeon RX 7000 and 9000 series cards, Radeon 780M, 760M, and 740M parts, and Ryzen AI integrated GPUs. Windows users are told to update the AMD Adrenalin driver to 26.8.1 or newer. This distinction matters because secondary restoration is currently unavailable on AMD.

Jasna also manages graphics memory automatically. When VRAM becomes constrained, frames waiting for processing can be moved temporarily into system RAM. That behavior reduces the likelihood of an immediate out-of-memory failure, but it does not remove the need to tune clip size when memory pressure remains high.

## Detection, Temporal Clips, and NVIDIA TensorRT Processing

Based on the README, the processing pipeline begins with mosaic detection and then applies restoration within tracked video regions. The default detector is `rfdetr-v6`, selected because the project describes it as fast. Users can choose a larger RF-DETR variant or the Lada and ZeLeFans YOLO models instead. This makes detector choice a real project decision rather than a hidden implementation detail, especially when detection speed, mask coverage, or model compatibility matters.

The GPU path is implemented with NVIDIA TensorRT. The optional NVIDIA dependencies in `pyproject.toml` include pinned `torch`, `torchvision`, `tensorrt`, `torch-tensorrt`, `nvidia-vfx`, and `python_vali` packages. AMD takes a different route: the repository configuration says RF-DETR runs through its PyTorch model under ROCm rather than ONNX or MIGraphX. That distinction explains why the AMD feature set does not mirror the NVIDIA workflow.

Temporal behavior receives specific attention. Jasna supports frame-accurate ranges, processes tracked clips, and reduces boundary flicker with temporal overlap and crossfade. It also detects hard scene cuts and ends a tracked clip at the cut so restoration is not blended across unrelated scenes. Those mechanisms address a common weakness in segment-based video processing, where independent frame groups can produce visible seams or mix content from two shots.

For side-by-side VR180 input, Jasna processes each eye and can select different mosaic-restoration settings for different studios. The Segment Editor is available to preview the options. The project does not claim identical treatment for both eyes. Instead, it exposes a per-studio decision within its VR180 workflow.

## Release Installation and a Real Restoration Run

The README directs users to download a release package for the operating system and GPU vendor, then extract it into a directory whose path contains only English letters and numbers. That path restriction is mandatory, not a naming suggestion, because Jasna prepares GPU-specific files during its first run.

For Windows, start the extracted application by opening `jasna.exe`. For Linux with an NVIDIA GPU, run the `jasna` file. For Linux with an AMD GPU, run `run_jasna_amd.sh`. The first launch prepares model files for the exact GPU. The documentation states that this normally takes 15 to 60 minutes on NVIDIA and substantially less on AMD. The resulting files are cached under `model_weights` and reused on later runs. They can also be copied from an older Jasna version when moving to a newer one.

Close browsers and other GPU-heavy applications before preparation, and do not use the computer while it runs. After the cache is ready, add a video, choose the detector and restoration settings, select the output location, and start processing. Every GUI setting has a tooltip marked by an information icon, while the linked GUI guide covers presets, queue behavior, output patterns, and media actions.

The CLI supports individual videos, still images, and directories. These are the README's basic examples:

```bash
jasna --input input.mp4 --output output.mkv
jasna --input photo.png --output restored.png
jasna --input input_folder --output output_folder
```

The first command is the normal starting point for a video restoration. The second invokes the documented still-image path, which depends on the experimental SD 1.5 image model. The third places supported inputs from a folder into an output folder. Run `jasna --help` for the complete option list because this README section does not enumerate every flag.

## Segment Editing, Previewing, and Restored-Frame Playback

Jasna is not limited to submitting an entire file and waiting for an encoded result. Its Segment Editor provides zoom and pan inspection, restoration previews, built-in mosaic scanning, and suggestions for better masks. Frame-accurate ranges can also be selected, with NVIDIA and AMD listed as supported platforms for that capability.

A native GUI video player supports full-screen playback and seeking through restored frames before an output file exists. This matters when a user needs to inspect a small region, compare restoration choices, or confirm whether a mask is appropriate before committing to a full export. The project also supports full-queue reruns, queue reordering, and saved presets according to the GUI documentation index.

Optional NVIDIA secondary restoration adds another stage after the main restoration. Supported choices include `unet-4x`, RTX Super Resolution, and Topaz Video AI. The README says these models sharpen restored regions, with particular value for large mosaics, close-ups, and 4K video. The `unet-4x` upscaler and experimental SD 1.5 image model require a key purchased through one of the two authorized links listed by the project. They are described as supporter-funded extras, so the base application and paid-model feature set should be evaluated separately.

Jasna can stream restored video to its built-in browser player or to a supported Stash fork. Streaming changes how a result can be inspected, but the README does not claim lower processing time or weaker output quality for this path. It remains another output route for reviewing restored media while processing.

## VRAM Limits, Platform Gaps, and Failure Modes

The clearest documented recovery step for VRAM exhaustion is to reduce max clip size, with the README using a reduction from `180` to `60` as its example. Longer clips retain more temporal context and participate in overlap and crossfade, but the documentation does not provide a universal value that fits every card, resolution, detector, or secondary model. Treat that number as an example rather than a default recommendation.

Users with NVIDIA GTX 10-series or older hardware face a hard compatibility boundary because compute capability below 7.5 is not supported. Installing the application alone cannot overcome that requirement. The driver minimums are another early failure point, particularly on Windows and Linux, where different versions are required.

AMD has two separate limitations. ROCm support is explicitly experimental, and secondary restoration is unavailable on that platform. A feature described as an NVIDIA secondary model should not be interpreted as an AMD option. The repository's optional AMD dependencies also include comments about ROCm wheel compatibility, but the displayed `pyproject.toml` ends before the complete list. It would therefore be unsafe to reconstruct a full source installation procedure from that visible section.

The first-run cache is an operational cost. NVIDIA preparation can occupy the machine for 15 to 60 minutes and requires the computer to remain otherwise idle. If a user needs immediate processing on a shared workstation, that requirement can be decisive even when the GPU itself qualifies.

## AGPL Licensing, Paid Models, and Maintenance Cost

The repository identifies the project under the AGPL-3.0 license. `LICING.md` is also present at the repository root, alongside `NOTICE`, but the README licensing section continues beyond its visible content. It would be inaccurate to add file-exception details or make a legal interpretation without reading those files. Anyone redistributing modified or networked deployments should inspect them directly rather than assuming that the repository description settles the obligations.

The base Jasna application is described as free. A separate key unlocks the supporter-funded `unet-4x` secondary upscaler and experimental SD 1.5 image restoration model. The README says genuine paid-model keys are available only through the listed Buy Me a Coffee and Unifans links. This creates a practical distinction: users can use the core tool without those extras, but NVIDIA users who need paid secondary models must account for key access and the additional processing path.

The repository is not archived, and the last push was on 2026-10-15. Recent releases include v0.10.0 on 2026-08-11, v0.9.1 on 2026-07-28, and v0.9.0 on 2026-07-27. The repository configuration lists package version `0.11.0`, while the release list does not identify a v0.11.0 release. That difference is relevant during upgrades because `pyproject.toml` can represent source intended for a later version rather than the newest listed package.

GPU-specific first-run caches can reduce repeat preparation, and the README says they may be copied between Jasna versions. It does not guarantee compatibility for every cache across every release. Users should check the project's release documentation before replacing an application directory or carrying cached files into a new build.

## Conclusion

Jasna fits users with supported NVIDIA hardware who need a local GUI, CLI access, range-based processing, previews, or restored-video playback. It is less suitable for CPU-only systems, older GTX cards, or AMD users who need secondary restoration, because the project does not offer those capabilities. Before adoption, verify that the GPU meets the stated compute and driver requirements, that the installation path contains only English letters and numbers, and that the first-run preparation can be completed without disrupting other GPU work.

## FAQ

### What hardware does Jasna require for mosaic restoration?

Jasna requires an NVIDIA GPU with compute capability 7.5 or newer and the stated Windows or Linux driver minimum. AMD support is experimental and requires a listed ROCm-supported GPU, while secondary restoration remains unavailable on AMD.

### How do I install Jasna and restore my first video?

Download the release package for the correct OS and GPU vendor, extract it into a path containing only English letters and numbers, and launch the documented executable or script. After one-time GPU preparation, add a video in the GUI or run `jasna --input input.mp4 --output output.mkv`.

### Does Jasna work without NVIDIA, and which features are limited on AMD?

Jasna has experimental AMD support through ROCm for specified Radeon and Ryzen AI devices. Secondary restoration is currently unavailable on AMD, so the NVIDIA and AMD feature sets are not equivalent.

### What should I do if Jasna runs out of VRAM?

The README directs users to reduce max clip size first, giving `180` to `60` as an example. Jasna can also move waiting frames to system RAM automatically, but that does not eliminate the need to reduce clip size under sustained memory pressure.

### Are Jasna's unet-4x and SD 1.5 models included for free?

No. The README describes a supporter key as necessary for the `unet-4x` secondary upscaler and experimental SD 1.5 image restoration model. It states that genuine keys for the paid models are available through its listed Buy Me a Coffee and Unifans links.

## Sources

- [Issues](https://github.com/Kruk2/jasna/issues)
- [Kruk2/jasna on GitHub](https://github.com/Kruk2/jasna)
- [License: AGPL-3.0](https://github.com/Kruk2/jasna/blob/main/LICENSE)
- [README](https://github.com/Kruk2/jasna/blob/main/README.md)
- [Releases](https://github.com/Kruk2/jasna/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kruk2-jasna
