v0.9.x · open source

Not a single stray frame
will make it on air

BlurNinja delays the source's video and audio, runs every frame through the NudeNet neural network and blurs restricted content — before your viewers can see it. Stream movies and any content without fear of an accidental adult frame going live.

OBS Studio 32.x Windows 10 / 11 · x64 No GPU required Free
Why you need it

One accidental frame —
and your stream is at risk

Watching movies with your viewers or streaming content where an adult scene might flash by? Platforms don't forgive such surprises.

WITHOUT BLURNINJA

Streaming is a lottery

  • An unexpected movie scene goes live instantly
  • A strike, a ban, or your VOD removed from the platform
  • Clips of «that moment» spread across the internet
  • Constant tension instead of enjoying your stream
WITH BLURNINJA

Autopilot protection

  • AI analyzes frames 2 seconds before they air
  • NSFW content is blurred automatically — full-frame or selectively
  • «Blur now!» panic button — instant blur with a single click
  • A relaxed stream: the neural network stands guard for you
Features

A true ninja among filters

Runs locally on your PC: no cloud, no subscriptions, no video sent to third-party servers.

NudeNet AI detection

The neural network recognizes 18 classes of NSFW content right in the frame. Inference on ONNX Runtime with DirectML — or on CPU if you have no GPU.

Video and audio delay

A configurable A/V delay (2.0 s by default) gives the AI time to analyze: viewers only see a frame after it has been checked.

Two blur modes

Full frame — maximum protection for the whole frame. Detected areas — pixelates only the detected regions, so the stream stays watchable.

Temporal voting

Voting across 2 of 3 recent analyses removes false flashes, while Strong hit bypass instantly blurs confident detections.

«Blur now!» panic button

Spotted something before the AI did? One click — and the frame is blurred for a set number of seconds. Works instantly, no warm-up.

Fail-safe mode

The Blur unverified frames option blurs frames the AI didn't manage to check. Plus fine-tuning of classes, threshold, and tile grids up to 3×3.

What's new in 0.9.x

Protection just got stronger

Early blur, latch mode, settings profiles, and resilience under AI load.

LATCH MODE · HEADLINE FEATURE OF 0.9.x

Latch mode: triggered once — protected until you say otherwise

For maximum caution: the very first NSFW detection turns on full blur until you manually release it. No frames «leaking through» after a timer ends — protection holds until you've made sure the broadcast is clean.

  • Release via a button in filter properties or a hotkey — works even when OBS windows are closed
  • Two triggers: «on first detection» (instant, raw verdict) or «after voting» — guards against false positives
  • Configurable timing: with a 2 s stream delay and a 1 s latch delay, the «extra» blur is just 1 s
  • State resets automatically when OBS restarts
interactive · try it yourself
AIR: CLEAN Just a regular stream
tip: you can also release the latch with the L key — just like a hotkey in OBS

Early blur — before the frame goes on air

Detection runs ahead of the broadcast by the stream delay: blur kicks in the moment content is detected, not when the suspicious frame reaches the viewer.

The «Early blur on detection» option with a configurable lead time (2 s by default). Each new detection extends the blur window, and window boundaries are stitched seamlessly — no flicker. The pipeline uses 2-of-3 / 3-of-5 voting and instant blur for confident detections.

Settings profiles

~30 fine-tuning parameters are now saved into named presets.

Global profiles for all BlurNinja filters, applied instantly from a list. Save, delete, export and import via JSON files — easily move presets between machines. Stored in %APPDATA% with atomic writes.

Protection that holds up under load

Analysis results are kept for as long as the stream delay needs — the 3×3 grid no longer «forgets» verdicts.

Smart throttling: when the AI is overloaded, new frames don't evict older ones — tiles stay protected by the last known verdict. And the unverified counter in the stats shows if the AI can't keep up.

Fixes

  • Crash when saving a profile (heap corruption) — fixed an OBS API memory-ownership bug
  • At FPS above 60 with a long delay, the filter no longer shows an endless black screen — the delay is smoothly capped by the buffer with a log warning
  • Cancelling a model download no longer gets stuck in the downloading state
  • The «Blur now!» button migrated to the current API
  • Filter hotkeys now register correctly in OBS 32

0.9.x: early blur before the frame airs (with lead time and voting) · latch mode with button/hotkey and delay · settings profiles with export/import · resilience under AI load (time-based eviction, throttling, unverified counter) · anti-flicker at blur boundaries · fixes for the profile crash, black screen at high FPS, and the model-download status

How it works

Four steps between the source and the air

01

Frame capture

The filter intercepts source frames and stores them in a GPU delay ring-buffer.

02

AI analysis

Every Nth frame is cut into 320×320 tiles and sent to the NudeNet inference thread (DirectML → CPU).

03

Verdict

Temporal voting and the confidence threshold decide: clean or NSFW. Region coordinates are remembered.

04

Output to air

A frame older than the delay goes to the stream — clean or blurred. Audio is delayed in sync.

Interactive demo

Feel how it works

A broadcast simulation: AI stats on the left, «viewers» on the right. Hit the panic button and see what the audience would see.

OBS Studio — «Movie» source · BlurNinja filter
LIVE · 12,438 viewers
AI stats: monitoring
inference: 8 ms · DirectML
delay: 2.0 s · grid: 2×2

The demo is stylized: the real filter pixelates the frame and can blur only the detected areas.

Installation

Two minutes — and you're protected

Requirements: OBS Studio 32.x and Windows 10/11 x64. The neural network model (~12 MB) downloads automatically on first run.

Recommended

Installer

blurninja-alpha-0.9.0-setup.exe
  1. Close OBS Studio
  2. Download the installer
  3. Run the .exe as Administrator
  4. In OBS: right-click a source → Filters → + → FullBlur

Manual ZIP install

For those who like to be in control
  1. Close OBS Studio
  2. Extract the archive into your OBS folder, e.g. C:\Program Files\obs-studio
  3. obs-plugins\64bit\*.dll → into obs-plugins\64bit\
  4. data\obs-plugins\fullblur-filter\ → into data\obs-plugins\
  5. Start OBS and add the filter to a source

Honest and important

BlurNinja is a moderation aid, not a filtering guarantee. The detector may miss restricted content (false negatives) or blur harmless content (false positives). The streamer is solely responsible for the broadcast. Use the filter as an extra layer of protection, not the only one.

Settings

Flexibility for any scenario

From «set it and forget it» to fine calibration for your hardware and content.

Parameter
What it does
Default
Delay
A/V delay — time for AI analysis before the frame goes on air
2.0 s
Blur mode
Full frame — the whole frame, Detected areas — only detected regions
Full frame
AI confidence
Detection confidence threshold
0.2
AI detail
Tile grid Single / 2×2 / 3×3 — the grid catches even small objects from ~3–4% of the frame
2×2
AI model
320n — fast (CPU/DirectML), 640m — accurate, GPU only
320n
Temporal voting
Blur on NSFW in K of N recent analyses — prevents flicker
2 of 3
Hold blur
Keeps the blur after the last detection
2.0 s
Classes preset
Recommended / Exposed only / All 18 / Custom — choose from 18 NudeNet classes
Recommended
Early blur
Early blur on detection — before the frame airs, with configurable lead time
2.0 s
Latch mode
Latch: blur until manually released via button or hotkey, two triggers to choose from
off
Profiles
Named settings presets with JSON export/import
—
Blur now!
Panic button: immediate blur for N seconds
10 s
Free · Open Source

Stream with peace of mind —
the ninja stands guard

Download BlurNinja and forget the fear of accidental frames.