GitHub - nsfw-filter/nsfw-filter: A free, open source, and privacy-focused browser extension to block “not safe for work” content built using TensorFlow.js.

2 min read Original article ↗

A free, open source, and privacy-focused browser extension to block "not safe for work" content.

Images are classified on your device with TensorFlow.js. Nothing is uploaded, and no data leaves your browser.

NSFW Filter ships two models you can switch between in the popup: a small, accurate Vision Transformer (ViT-384) that classifies images as safe or not safe (the default), and the original NSFWJS MobileNet model.

Download now for Google Chrome.

Demo of NSFW Filter extension in action.

Usage

You can install the extension from the Chrome Web Store or source.

When you load web pages, NSFW Filter will first hide all images and only show those classified as safe.

Click the icon in your extensions tab to open the popup. From there you can turn protection on or off, adjust how strict the filter is, choose how flagged images are handled (blur, grayscale, or hide), pick which model does the classifying, and allow specific sites.

NSFW Filter popup

Development

Install dependencies by running:

Then build the project:

To run the tests:

To develop with live reload, start a watch build that rebuilds on every change:

Then, in a separate terminal, launch Chromium with the extension loaded. It reloads automatically as the build updates:

To load the build manually instead, open Google Chrome and open the Extensions page by navigating to chrome://extensions or by opening Settings and clicking Extensions from the bottom left.

Enable Developer Mode by clicking the toggle switch.

Click the Load Unpacked button and select the extension directory (.../dist).

Load extension to Chrome in Developer Mode.

Contribute

Please check the Contributor Guidelines before contributing.

Thanks to these wonderful people (emoji key) for helping build and maintain NSFW Filter:

Yegor <3
Yegor <3

💻 🎨 🤔
Navendu Pottekkat
Navendu Pottekkat

💻 🖋 📖 🎨 🤔
anonacc
anonacc

🐛
Abhiram V V
Abhiram V V

💻 🐛 🤔
yxlin118
yxlin118

🐛 🤔
Clay McGinnis
Clay McGinnis

👀
Brady Dowling
Brady Dowling

🤔
Mike Crittenden
Mike Crittenden

📖
garfieldbanks
garfieldbanks

🐛
Titus Roby K
Titus Roby K

🐛
Haitam
Haitam

🐛
lizhendong128
lizhendong128

🐛
Woctor-Dho
Woctor-Dho

🤔
miaokun-normal
miaokun-normal

🐛
Christopher Bradshaw
Christopher Bradshaw

🐛
wingman-jr-addon
wingman-jr-addon

🤔
Sagar paul
Sagar paul

📖
Rasul
Rasul

🐛 💻
Aldulkadir Beceri
Aldulkadir Beceri

🐛
silloi
silloi

🤔 🐛 💻

This project follows the all-contributors specification. Contributions of any kind are welcome!