DE-censoring JAV with Free Open source LADA application

Another experiment! There are some films that are only available with mosaic removed. Often it has been done rather poorly. What to do? Well, how about re-applying a mosaic and then using Jasna (or LADA) to remove it and reconstruct the area properly? I tried this and the results were only slightly better then the earlier poor effort but still not that good. Maybe it's possible to do better with different size mosaic pixels or some other factor. Of course it's a lot of work.

I used Wondershare Filmora, AI Motion Tracking to place a box in the relevant area, then selected a suitable mosaic and saved the result which was then worked on by Jasna.
 
Last edited:
Another experiment! There are some films that are only available with mosaic removed. Often it has been done rather poorly. What to do? Well, how about re-applying a mosaic and then using Jasna (or LADA) to remove it and reconstruct the area properly? I tried this and the results were only slightly better then the earlier poor effort but still not that good. Maybe it's possible to do better with different size mosaic pixels or some other factor. Of course it's a lot of work.

I used Wondershare Filmora, AI Motion Tracking to place a box in the relevant area, then selected a suitable mosaic and saved the result which was then worked on by Jasna.
'Probably need to download the original film and start from scratch. That's what I've done and am quite pleased with the results.

Although just be aware that usually there's a SD version and a higher-quality version of the Jav you may choose to download. HQ version will take a fair amount of time to process.
 
For Jasna I've paid my support money and been sent an approximately 230 letter key-code. The key code box on the 'Activate Jasna' window won't allow paste. Am I really expected to type in 230 plus letter etc.? It's also difficult to tell 1 from I (capital i) or l (small L). How did you activate Jasna?

I can't get on Discord and I don't see how to contact the author direct.
Really? I copy/pasted my code with no problem.
 
ChitraMaya
GPU-accelerated mosaic restoration studio for video — with a real-time visual editor


Hi all — first time posting about this here, so a proper introduction.

ChitraMaya is a Windows app that restores mosaic-censored video on your own NVIDIA GPU. What sets it apart from the batch-and-pray tools is that it is built as an interactive editor: you load a video, preview the restoration on your actual frames, tune it, and only commit to a full encode once it looks right. No blind overnight runs that turn out wrong.

Everything runs on the GPU end to end — NVDEC decode, TensorRT-accelerated BasicVSR++ restoration, NVENC encode — and there is no Python and nothing to configure. Download, run, done.


Why it's different

  • Test a single frame instantly. Park the playhead on any frame, hit Test Frame, and see each detected region as Mosaic → Restored side by side. Change a setting, test again — the loop is seconds, not a full encode.
  • Live segment preview. Mark a range, preview just that, decide before committing the whole file.
  • Compiles for YOUR card. No models are bundled — you download the checkpoints and compile TensorRT engines for your exact GPU, all from inside the app.
  • Built for VR / SBS. Per-eye detection for side-by-side video, so each eye is handled at full resolution.



★ New in v1.2 ★

1. SBS View — a 3D compare viewer
Side-by-side VR footage looks like two distorted halves in a flat player. SBS View projects it the way a headset would — drag to look around, wheel to zoom — right on your desktop. The killer part: a draggable wipe divider with the original on one side and your restored result on the other, playing in sync. Drag it across a restored region and watch it flip between censored and clean. Pick either eye, slow it to 0.1x for close inspection, step frame by frame.


2. Add Mosaic
The reverse operation, for making shareable/SFW clips: draw up to three rectangles right on the video and pixelate them. For SBS content, draw on one eye and it mirrors to the other automatically. (The demo images in this post were made with it.)



Requirements

  • GPU: NVIDIA RTX — native builders for 50-series (Blackwell), 40-series (Ada), and 30-series (Ampere)
  • OS: Windows 10 / 11 with a current NVIDIA driver
  • That's it — CUDA, TensorRT, ffmpeg and Python are all bundled


Download & Install

⚠ IMPORTANT — the installer is THREE files. You need ALL THREE.

The .exe by itself is NOT the program — it is only the unpacker for the other two parts and cannot install anything without them. Grab all three into the same folder:

  • ChitraMaya-install.7z.001
  • ChitraMaya-install.7z.002
  • ChitraMaya-install.exe

…then run ChitraMaya-install.exe — it reassembles and extracts automatically. If the install fails right away, the fix is almost always a missing part: check that all three downloaded and are sitting together.

▶ Releases / download: github.com/seatv/ChitraMaya/releases
▶ Project & docs: github.com/seatv/ChitraMaya


Terms: By downloading or using this software you agree to use it only for purposes lawful in your jurisdiction. You are solely responsible for what you create with it and for complying with all applicable laws (privacy, consent, publicity, defamation, and intellectual property). The authors accept no responsibility and shall not be held liable for any use of the software or anything produced with it. If unsure whether a use is lawful where you are, consult a legal professional first.

Feedback, bug reports, and GPU results welcome — happy to answer questions in the thread.
;"} ;"} ;"} ;"} ;"}
 

Attachments

  • InAction-FramePreview.png
    InAction-FramePreview.png
    1.5 MB · Views: 10
  • InAction-RestoreAndSave.png
    InAction-RestoreAndSave.png
    1.7 MB · Views: 12
  • ModelManagement.png
    ModelManagement.png
    177.3 KB · Views: 10
  • InAction-LowRes.png
    InAction-LowRes.png
    1.4 MB · Views: 9
  • InAction-RestoreAndSave-LowRes.png
    InAction-RestoreAndSave-LowRes.png
    540.1 KB · Views: 9
  • Like
Reactions: Walle12
Interesting. I will try it once I return from vacation. Can you comment on speed of restoration vs LADA?
Is there a particular card that you want me to compare? Test have been run on the following, 3060Ti(8GB), 3060(6GB), 3060(12GB), 4060(8GB) and 5060Ti(8GB).
 
Benchmark: ChitraMaya vs lada — same GPU, same video, same models

A few of you asked how ChitraMaya's speed compares to lada. Fair question — so I ran a head-to-head on the weakest machine I own: an RTX 3060 6 GB in a Frankenstein build (GPU-Z screenshot attached). Same source video, same detection model, same encoder settings on both sides.

The setup
  • Source: 1080p / 29.97 fps, 194,773 frames (1 h 48 m of video)
  • Detection model: lada_mosaic_detection_model_v4_accurate (both tools)
  • Restoration: lada's BasicVSR++ generic v1.2 (both tools)
  • Encoder: HEVC NVENC, preset P7, QP 18 (both tools)
  • lada run via lada-cli with the flags shown in the attached screenshot

Results (total wall clock, start to finished file)
Code:
Run                                Wall time    Avg speed   vs realtime
lada CLI (PyTorch, clip 180)       2:27:33      22.0 fps       0.73x
ChitraMaya (PyTorch, MCL 180)      2:10:54      24.8 fps       0.83x
ChitraMaya (TensorRT, MCL 90)      1:17:37      41.8 fps       1.40x

ChitraMaya with its compiled TensorRT engines finished in roughly half lada's time — 1.9× faster — on a 6 GB card. The middle row is the apples-to-apples control: same PyTorch backend, same clip length 180 as lada, and ChitraMaya is still ~13% faster purely from pipeline engineering (fully threaded NVDEC decode, batched detection, everything staying on the GPU end to end). The TensorRT row on top of that is why the app compiles engines for your specific card.

Did quality pay for it? No — and I can show it, because ChitraMaya writes a per-run report. Both ChitraMaya runs detected mosaic on the identical 121,153 frames and restored ~121,890; the TensorRT run's visible-miss count was actually slightly lower (1,379 vs 1,389 — about 1% of mosaic frames, mostly single-frame scene edges). lada doesn't emit comparable stats, so the comparison there is wall clock only.

Why it's faster: the monitor screenshots tell the story. During lada's run the GPU sits around 50% load with 2.5 GB of VRAM used — the card is half idle. ChitraMaya keeps the same card 60%+ busy with VRAM deliberately packed to ~88% (a VRAM-aware frame store sized to the card). Same silicon, more of it working at once.

Honest caveats: the headline row runs ChitraMaya at its recommended Max Clip 90 vs lada's 180 (the PyTorch@180 row is there so you can compare like-for-like); default detection confidence between the two tools may differ slightly; and this is one video on one card — your content and hardware will vary. lada's on-screen "fps" is an instantaneous reading, so I compared total wall time on both sides.

Credit where it's due: ChitraMaya uses lada's excellent models — the speedup is pipeline engineering around them, and none of this exists without that upstream work.

Screenshots attached: both consoles at completion, mid-run monitor gauges for each, and GPU-Z of the test card.


Reminder for new downloaders: the installer is THREE files (.7z.001, .7z.002, .exe) — download all three into the same folder, then run the .exe. The .exe alone is just the unpacker.

▶ ChitraMaya Releases: github.com/seatv/ChitraMaya/releases
▶ Monitoring Tool Releases: https://github.com/mountlord/nvGPUMonitor[/url
 

Attachments

  • ChitraMayaComplete.png
    ChitraMayaComplete.png
    568.5 KB · Views: 0
  • ChitraMayaRunnig.png
    ChitraMayaRunnig.png
    439.8 KB · Views: 0
  • LadaCompletion.png
    LadaCompletion.png
    57.4 KB · Views: 0
  • LadaRunning.png
    LadaRunning.png
    363.6 KB · Views: 0
Benchmark: ChitraMaya vs lada — same GPU, same video, same models

A few of you asked how ChitraMaya's speed compares to lada. Fair question — so I ran a head-to-head on the weakest machine I own: an RTX 3060 6 GB in a Frankenstein build (GPU-Z screenshot attached). Same source video, same detection model, same encoder settings on both sides.

The setup
  • Source: 1080p / 29.97 fps, 194,773 frames (1 h 48 m of video)
  • Detection model: lada_mosaic_detection_model_v4_accurate (both tools)
  • Restoration: lada's BasicVSR++ generic v1.2 (both tools)
  • Encoder: HEVC NVENC, preset P7, QP 18 (both tools)
  • lada run via lada-cli with the flags shown in the attached screenshot

Results (total wall clock, start to finished file)
Code:
Run                                Wall time    Avg speed   vs realtime
lada CLI (PyTorch, clip 180)       2:27:33      22.0 fps       0.73x
ChitraMaya (PyTorch, MCL 180)      2:10:54      24.8 fps       0.83x
ChitraMaya (TensorRT, MCL 90)      1:17:37      41.8 fps       1.40x

ChitraMaya with its compiled TensorRT engines finished in roughly half lada's time — 1.9× faster — on a 6 GB card. The middle row is the apples-to-apples control: same PyTorch backend, same clip length 180 as lada, and ChitraMaya is still ~13% faster purely from pipeline engineering (fully threaded NVDEC decode, batched detection, everything staying on the GPU end to end). The TensorRT row on top of that is why the app compiles engines for your specific card.

Did quality pay for it? No — and I can show it, because ChitraMaya writes a per-run report. Both ChitraMaya runs detected mosaic on the identical 121,153 frames and restored ~121,890; the TensorRT run's visible-miss count was actually slightly lower (1,379 vs 1,389 — about 1% of mosaic frames, mostly single-frame scene edges). lada doesn't emit comparable stats, so the comparison there is wall clock only.

Why it's faster: the monitor screenshots tell the story. During lada's run the GPU sits around 50% load with 2.5 GB of VRAM used — the card is half idle. ChitraMaya keeps the same card 60%+ busy with VRAM deliberately packed to ~88% (a VRAM-aware frame store sized to the card). Same silicon, more of it working at once.

Honest caveats: the headline row runs ChitraMaya at its recommended Max Clip 90 vs lada's 180 (the PyTorch@180 row is there so you can compare like-for-like); default detection confidence between the two tools may differ slightly; and this is one video on one card — your content and hardware will vary. lada's on-screen "fps" is an instantaneous reading, so I compared total wall time on both sides.

Credit where it's due: ChitraMaya uses lada's excellent models — the speedup is pipeline engineering around them, and none of this exists without that upstream work.

Screenshots attached: both consoles at completion, mid-run monitor gauges for each, and GPU-Z of the test card.


Reminder for new downloaders: the installer is THREE files (.7z.001, .7z.002, .exe) — download all three into the same folder, then run the .exe. The .exe alone is just the unpacker.

▶ ChitraMaya Releases: github.com/seatv/ChitraMaya/releases
▶ Monitoring Tool Releases: https://github.com/mountlord/nvGPUMonitor[/url
please will there be a future update for AMD gups?
 
please will there be a future update for AMD gups?
I do not have hardware to test on; which is the first reason why I cannot add support. Beyond that, there are technical challenges unique to ROCm. XPU (Intel Arc) support is being actively considered.

I will post here if and when they are available.
 
ChitraMaya v1.30.00 — VR Projection, AV1 output, and two honesty fixes

New release is up. This one matters most if you work with VR content — it adds restoration support for a whole class of VR mosaics that no version before it (and, as far as I know, no other free tool's default path) could handle properly.

VR Projection — for mosaics that arrive warped

VR mosaics come in two kinds, and you can tell them apart in any flat player (PotPlayer/VLC, no VR mode):

  • Square blocks, clean grid — the studio pixelated the raw frame. ChitraMaya has always handled these well. Leave the new option Off.
  • Warped blocks — trapezoid cells, rows that bow or fan out, especially away from center. The studio pixelated in viewing space (square in the headset, warped in the file). Detection/restoration models were never trained on that pattern, so results ranged from partial to "looks restored in the stats, still mosaic on screen."

The new VR Projection dropdown (Detection panel, needs Split SBS) fixes the second kind: with Fisheye selected, each eye is warped on the GPU so the blocks become square again, everything runs in that space, and only the restored regions are warped back onto the untouched original frames. No intermediate re-encodes, background pixels never resampled.

One important honesty note: on warped-mosaic content with projection Off, the run statistics can look perfect while the output still shows mosaic — the model latches onto blocks it can't actually reconstruct. Use Test Frame and your own eyes to compare Off vs Fisheye on your title. In my field test on one such title, Off failed visibly and Fisheye restored cleanly — with identical detection stats on both runs. That's why the feature exists.

Credit where due: the approach is inspired by zelefans' vr_remove_mosaic project — reimplemented inside ChitraMaya's GPU pipeline so there are no intermediate files or quality generations.

AV1 output

The encoder can now write AV1 alongside HEVC and H.264 — better compression at the same quality, ideal for archiving big VR files. Needs an RTX 40-series or newer to encode (the app checks your card up front and says so plainly). Your QP setting stays on the familiar HEVC scale; the app maps it to AV1's quantizer internally and logs the mapping.

Image Size — runtime detection resolution

Detection input size (640–960) is now a dial in the UI. Why you care: on 4K+ VR/SBS frames the old fixed 640 downscales too far and can miss small/faint mosaics. In my A/B/C test on 8K SBS content, 640 missed frames; 800 caught everything (960 too, but slower for no extra catches). Recommendation: 800 for 4K+ VR/SBS, 640 for flat. If you use TensorRT detection, recompile the detection engine at 800 in Manage Models to keep full speed.

Fixes worth knowing about

  • Silently skipped frames in dense scenes — fixed. Detection post-processing had an internal time limit; when a busy high-res scene exceeded it, the rest of the batch quietly got no detections (mosaic passed through unrestored, just a console warning). The limit is now far higher. A long 8K run that used to print ~200 of those warnings now prints zero.
  • AV1 remux — fixed, plus if a final remux ever fails, you now get a loud REMUX FAILED banner (and your encode is kept on disk, recoverable) instead of a misleading "Done".
  • Stale settings — fixed. Some dials (notably detection Score) could silently keep their old value on an already-warm pipeline until app restart. All run-affecting settings now take effect between runs.

Also: the top bar now shows the full path of the loaded file, and the Blend Mask option formerly labeled "FaceFusion" is now called "Face Swap" (same behavior).

Get it

▶ Releases: github.com/seatv/ChitraMaya/releases
▶ Test Video Clip for VR Projection: get it at storage.to/Pjg2ciqCl

Reminder: the installer is THREE files (.7z.001, .7z.002, .exe) — download all three into the same folder, then run the .exe. The .exe alone is just the unpacker.


No models ship with the app — download checkpoints (lada + zelefans repos are pre-loaded in Manage Models) and compile TensorRT engines for your own card, all in-app. Feedback and issue reports welcome on GitHub — please, no explicit content in issue attachments.