Moderator: On-device NSFW and Nudity Detection
On-device NSFW image classification that flags nudity before an image is uploaded, trained only on licensed and in-house data so you can ship it commercially.
Moderator is an on-device NSFW image classifier. It scores an image before it ever leaves the device, so questionable content never reaches your servers, and a five-head output lets a policy decide exactly what counts.
Its real edge is the training data: every image is permissively licensed or generated in-house, with nothing scraped from the open internet. Unlike NudeNet and most NSFW models, you can ship it in a commercial product without copyright or licensing exposure. It is more accurate too, catching more NSFW than NudeNet (87.8% vs 82.6% recall) and wrongly blocking about half as many safe images (6.3% vs 12.9%) on a held-out test set.
Performance
Trained on a clean, fully licensed dataset, with higher recall and specificity than NudeNet at half the false-block rate.
Held-out set of 464 images (75% SFW), single NSFW score at threshold 0.50 (internal)
| Recall | Specificity | False-block | |
|---|---|---|---|
| Moderator | 87.8% | 93.7% | 6.3% |
| NudeNet | 82.6% | 87.1% | 12.9% |
Internal evaluation on a proprietary held-out set, not a published benchmark. MobileNetV4 backbone, 8.4M parameters.
Use cases
Pre-upload filtering
Screen user images on device before they leave the phone, so nothing questionable reaches your servers.
Policy control
The .standard policy counts all five detections; .allowTopless excludes exposed nipples from the score, for platforms with more permissive rules.
What it does
- Trained only on permissively licensed and in-house images, with no scraped data, so it is safe to ship commercially
- Scores any image for nudity on device, before it is uploaded
- Five detection heads: exposed nipples, genitals, buttocks, nudity, and sexual activity
- A policy decides what counts toward the NSFW score, from
.standard(all five) to.allowTopless(excludes exposed nipples)
Specs
- Accuracy
- Recall 87.8%, specificity 93.7% at threshold 0.50
- Backbone
- MobileNetV4-Conv-Medium @ 384
- Size
- ~7 MB (6-bit) to ~18 MB (fp16)
- Platforms
- iOS 17+, macOS 14+, tvOS 17+, visionOS 1+; fp32 ONNX for browser or server
Early access
Tell us what you are building and we will get you set up.