SfwBot checks every image, GIF and video posted in your Discord server and deletes nudity from the level you choose. Each deletion goes to your log channel, with a button to report a wrong call.
Add SfwBot to your server or read the docs.
Adding the bot is free and needs no card. It has checked about 7 million images, GIFs and videos since it started.
Choose the level where blocking startsThe model gives every image a level from 0 to 3. You choose where blocking starts, and everything from that level up is deleted. A new server blocks level 3 only. You can move the line down to level 2 or level 1.
| Level | Name | What it covers |
|---|---|---|
| 0 | Everyday | Memes, screenshots, selfies. Never blocked. |
| 1 | Revealing | Swimwear, underwear and similar outfits. |
| 2 | Implied nudity | Nudity that is covered or hidden. |
| 3 | Explicit | Visible nudity and sexual content. |
You can exempt channels and roles, and age-restricted channels are skipped unless you change that. If the model gets an image wrong you put it on the server’s allow list, and an image you never want to see again goes on the block list. Both lists recognise similar copies of an image.
Every removal is in your log channelThe bot posts an entry to the channel you pick, with the member, the channel, the reason and the score. Under it are buttons to report the decision as wrong and to time out, kick or ban, so a moderator can act without looking for the member first.
The model makes mistakes. Report as wrong sends the decision to us for review, and a member can report their own deletion with /standing. One deletion costs a member a little trust and does not count as a strike.
Nudity detection and logging work as soon as the bot joins. The other five are off until you switch them on in the dashboard or with /settings.
| Module | What it does |
|---|---|
| Nudity detection | Images, GIFs and videos are checked by an image model and removed from the level you set. Stickers, custom emojis and media posted by other bots can be included. |
| Logging | An entry in your log channel for each action, with buttons to act on it, and an activity log in the dashboard. |
| Invite filter | Removes invite links to other servers. Your own server’s invites, codes you allow and roles you exempt are left alone. |
| Spam filter | Separate checks for message rate, attachment rate, line breaks, capitals and emojis, each with its own limit. It can time the member out. |
| Link protection | Compares the domains in a message with lists of known scam sites and adult sites and removes the message. The lists are refreshed daily. |
| AutoMod | Sets up Discord’s own AutoMod rules from one page and repairs them when someone changes them in Discord. |
| Trust and strikes | Every member starts at 100 trust. A violation costs trust according to its severity, and trust comes back over time. A member at zero gets a strike, and you decide what each strike does. |
- Add the bot to your server. It does not ask for the Administrator permission.
- Run
/setupand pick a log channel and the level where blocking starts. This takes about a minute. - Run
/status. It tells you if a permission is missing or a channel is hidden from the bot.
After that /settings has the rest, and /member shows the trust, strikes and history of one member. Members can look up their own standing with /standing and turn the bot’s direct messages on or off with /dms. The web dashboard at sfw.bot has the same settings for every server you manage and records who changed what.
Attachments, images in link previews and forwarded messages are checked. Stickers, custom emojis and media posted by other bots are checked only if you switch that on. Profile pictures and banners are not checked.
SfwBot does not store images. It downloads the media, analyses it and discards it. Message text is not stored either. The bot keeps the link to the media and a fingerprint of it for up to 30 days, so that a report can be reviewed and the same image is not scanned twice. The security and privacy page lists everything.
LanguagesThe bot and the dashboard are available in English, German, Spanish, Brazilian Portuguese, French, Simplified Chinese and Japanese. For anything else there is the contact page.