Random chat explained
How AI Nudity Detection Works, On Your Own Device
Here's how AI nudity detection works, in short: a small image-classification model looks at frames of video and scores how likely each one is to contain nudity. If a score crosses a set threshold, the app blurs or hides the picture. When the model runs on your own device instead of a company's server, the images never have to leave your phone or computer.
Omlet uses this kind of on-device check on every new partner's video. Below: what the model is actually doing, how Omlet applies it, and where any filter like this can get things wrong.
Image classification, minus the jargon
A classifier is trained on a large collection of example images that people have labeled by category. During training it adjusts a huge number of internal settings until its guesses match the labels as often as possible.
It doesn't understand bodies the way you do. It learns visual patterns, such as shapes, textures and regions of skin, that tend to go with each label. Show it a new image and it returns a confidence score for each category.
The model doesn't make the final call. The app does, by picking a threshold: any frame scoring above it gets treated as explicit. Where that line sits is a trade-off.
| Threshold | What you get | The cost |
|---|---|---|
| Lower (stricter) | Catches more explicit frames | More innocent frames blurred by mistake |
| Higher (looser) | Fewer false alarms | More explicit frames slip through |
On-device nudity detection vs server-side scanning
A nudity filter for video chat can run in one of two places. Server-side, the app sends snapshots of video to the company's computers to be scanned. On-device, the model is downloaded into your browser or app and runs locally on your device's processor or graphics chip.
| On-device | Server-side | |
|---|---|---|
| Where the images go | Nowhere; they stay on your device | Uploaded to the company's servers |
| Speed | No upload round trip | Depends on the network and server load |
| Model size | Must be small enough to download and run on a phone | Can be much larger |
| Older devices | May run the check more slowly | Not affected |
| Evidence for moderators | None unless something is sent on purpose | Snapshots can be stored and reviewed |
Neither approach is automatically more accurate. The difference that matters most to you is privacy: with on-device checks, nobody needs to collect pictures of your call to keep it clean.
How Omlet's safety check works, step by step
- When you're matched, your partner's video starts blurred with a "Safety check…" label.
- Your device checks the incoming video. When it passes, the blur lifts. This takes up to about four seconds.
- During the call, the check keeps looking at the video at intervals, not just at the start.
- If it detects nudity, the video is hidden again and you get Next and Report buttons. The video only comes back once it checks clean again.
- If it detects nudity repeatedly with the same partner, Omlet files an automatic report. Only the reason is sent, never an image.
The check runs on the viewer's side: your device checks your partner's video, and their device checks yours. Omlet doesn't record or store calls, so there's no footage sitting anywhere for later review either.
A blurred screen at the start of each chat is normal and clears when the check passes. If you see black instead of blur, that's a different problem: see black screen on video chat.
False positives: when the filter blurs something innocent
Every classifier makes mistakes in both directions. A false positive is an innocent frame flagged as explicit; a false negative is an explicit frame that gets missed. These are the usual causes of false positives:
- A lot of bare skin in frame, such as a tank top or no shirt.
- Skin-toned walls, bedding or furniture close to the camera.
- Very dim or very warm lighting that washes out detail.
- Extreme close-ups where the camera only sees a patch of face or arm.
- Posters, paintings or a TV screen in the background.
Because the check runs on your partner's device, you won't see it happen to you. If you want to be sure you come across clearly on other people's screens:
- Face a light source, such as a window or lamp, instead of sitting with it behind you.
- Frame your head and shoulders, with the camera about an arm's length away.
- Wear a top, as you would in any public place.
- Choose a plain background that isn't close to skin color.
False negatives and other honest limits
- Hard images get missed. Unusual angles, partly covered frames, low resolution and poor lighting all make detection less reliable.
- It checks frames, not every moment. Something brief can appear between checks.
- It only judges pictures. Gestures, words and requests aren't nudity, so they need other tools.
- It depends on your device. If a device or browser can't run the check, it can't protect that person.
That's why a filter is one layer, not the whole system. Omlet also checks text messages, lets you report and skip in one tap, and has moderators review reports. Here's how video chat moderation works across all those layers, and how Omlet's safe random video chat features fit together.
What leaves your device, and what doesn't
| Item | Sent anywhere? |
|---|---|
| Your partner's video frames being checked | No |
| The model's scores for each frame | No |
| Automatic report after repeated detections | Yes: the reason only, never an image |
| A report you send yourself | Yes: the reason, any note you add, and chat messages if you include them |
The model arrives in your browser the same way the rest of the site does, which is possible because Omlet is a progressive web app running real code on your device. Once it's loaded, the checking happens locally.
If someone exposes themselves or asks you to, don't wait for the filter. Press Report, pick "Nudity or sexual content" and you'll move straight on to someone else.