Free, Open-Source Discord Moderation Bot with AI-Powered Spam Detection
The most powerful free Discord moderation tool combining advanced AI spam image detection with comprehensive moderation features in a single, self-hosted bot. Perfect for server admins who want full control without paying for premium moderation bots.
"Why switch bots later? Anti-Ad grows with your community." 🚀
| Feature | Anti-Ad | MEE6 | Maki | Dyno | Sapphire |
|---|---|---|---|---|---|
| Free | ✅ Always | ❌ Premium only | ✅ | ||
| AI Spam Image Detection | ✅⭐⭐⭐⭐⭐ | ❌ | ❌ | ❌ | ❌ |
| Self-Hosted | ✅ | ❌ | ❌ | ❌ | |
| Open Source | ✅ | ❌ | ❌ | ❌ | ❌ |
| Moderation Suite | ✅ Growing | ✅ | ✅ | ✅ | ✅ |
| Appeal System | ✅ | ❌ | ❌ | ✅ | |
| Admin Portal | ✅ | ✅ | ✅ |
Anti-Ad's Unique Advantage: Only bot that automatically detects spam images using AI computer vision + traditional moderation features = complete solution.
- Quick Start - Start here! ⭐
- Why Anti-Ad - What makes it unique
- Features - Complete capability list
- Setup Methods - Choose your installation approach
- Configuration - Set up your Discord bot
- Admin Portal Guide - Using the web interface
- Roadmap - Planned additions
- Troubleshooting - Common issues & solutions
- Security - Before you go production
- Advanced - Production deployment
- Support - Getting help
-
Discord Bot (
src/bot.py)- 5-algorithm spam image detection
- Configurable punishments
- Appeal system with mute tracking
- Admin commands
- Comprehensive logging
-
Web Interface (
templates/*.html)- Admin Portal with user authentication
- Professional dark blue design
- Training image management
- Configuration panel
- User management (owner/devs)
- Real-time bot status
- Drag & drop uploads
-
REST API (
web_server.py)- Flask-based Admin Portal server
- User authentication & management
- Token authentication for API
- Image upload/delete endpoints
- Configuration management
- Status monitoring
-
Detection Engine (
src/image_detector.py)- SIFT feature matching
- ORB detection
- Histogram comparison
- Structural similarity (SSIM)
- Template matching
- Confidence scoring
The bot uses 5 hybrid detection algorithms for maximum accuracy:
- SIFT (Scale-Invariant Feature Transform) - Robust keypoint detection
- ORB (Oriented FAST and Rotated BRIEF) - Fast feature detection
- Histogram - Color distribution comparison
- SSIM (Structural Similarity Index) - Perceptual similarity
- Template Matching - Direct image correlation
Result: Highly accurate spam detection (~95%+ accuracy on trained images)
Anti-Ad/
├── src/
│ ├── bot.py (Main Discord bot)
│ ├── image_detector.py (5-algorithm detection)
│ ├── database.py (JSON persistence)
│ ├── admin_utils.py (Admin tools)
│ └── setup.py (Setup wizard)
├── config/
│ ├── config.py (Config loader)
│ └── .env.example (Configuration template)
├── templates/
│ └── index.html (Web UI)
├── tests/
│ └── test_detection.py (Test suite)
├── Training-Data/
│ ├── image.png
│ ├── image1.png
│ ├── image2.png
│ └── image3.png
├── logs/ (Runtime logs created here)
├── web_server.py (Flask API)
├── START.bat (Quick launcher)
├── requirements.txt (Dependencies)
└── .gitignore (Git protection)
Requirements: Docker and Docker Compose installed on your machine
Step 1: Clone or download this repository
Step 2: Configure the bot
# Copy example configuration
cp config/.env.example config/.env
# Edit configuration with your Discord token and settings
# Edit config/.env with your favorite editorStep 3: Start the bot
# Start both bot and web interface in background
docker-compose up -d
# View logs
docker-compose logs -f
# Stop when needed
docker-compose downStep 4: Access Admin Portal
- Open browser: http://localhost:5000
- Login with credentials you create in the setup wizard
Why Docker?
- ✅ No dependency installation needed
- ✅ Works on Windows, Mac, Linux identically
- ✅ Isolated environment (no conflicts)
- ✅ Easy to update and restart
- ✅ Production-ready setup
See also: Docker Setup Guide below for more options
Seeing this and thinking "Should I use Anti-Ad or [MEE6/Maki/Dyno/Sapphire]?" Here's the decision tree:
→ YES? → Use Anti-Ad ✅ (only bot that does this)
→ NO? → Continue below
→ YES? → Use Anti-Ad ✅ (free, open source, full control)
→ NO? Continue below
→ FREE? → Anti-Ad, Sapphire, or YAGPDB ✅
→ PAID? → MEE6 Premium, Maki, or Dyno
→ All-in-one? → Anti-Ad's roadmap covers moderation + leveling + tickets
→ Specialized? → Combine Anti-Ad with other bots
| If You Want | Choose | Why |
|---|---|---|
| Simple, effective spam image detection | Anti-Ad | Only bot with AI image detection |
| Self-hosted full control | Anti-Ad | Open source, Docker ready |
| Avoid switching bots later | Anti-Ad | Roadmap for moderation + leveling + more |
| Free with no switching hassle | Anti-Ad | Grows with your community |
| Pay for premium features | MEE6 | Mature platform, many integrations |
| Easiest setup experience | Dyno | Very beginner-friendly |
| Most powerful/complex | Sapphire | Advanced customization |
Anti-Ad's Promise: Don't get choice anxiety. Start with Anti-Ad for image detection. As your server grows, we're adding leveling, tickets, analytics—everything you'd need. Never switch bots.
# 1. Navigate to project folder
cd C:\Users\YourName\Downloads\Anti-Ad-Discord-Bot
# 2. Install dependencies (one-time setup)
pip install -r requirements.txt
# 3. Configure bot
Copy-Item config\.env.example config\.env
notepad config\.env # Edit with your settings
# 4. Start launcher
START.batThen open browser: http://localhost:5000
# 1. Navigate to project
cd Anti-Ad-Discord-Bot
# 2. Run launcher (handles setup automatically)
chmod +x START.sh
./START.shThen open browser: http://localhost:5000
Full Linux deployment guide: See LINUX_DEPLOYMENT.md
If you prefer starting components separately, open two terminals:
Terminal 1 - Discord Bot:
python src/bot.pyTerminal 2 - Web Server:
python web_server.pyChoose the setup method that works best for you:
| Method | Difficulty | Best For | Time |
|---|---|---|---|
| 🐳 Docker | ⭐ Easy | Everyone (recommended) | 5 min |
| Windows | ⭐ Easy | Windows users | 10 min |
| Linux/Mac | ⭐ Easy | Linux/Mac users | 10 min |
| Manual | ⭐⭐ Medium | Advanced users | 15 min |
| Production | ⭐⭐⭐ Hard | Enterprise deployment | 1+ hour |
- Python: 3.8 or higher
- OS: Windows, macOS, or Linux
- RAM: 512MB minimum (1GB recommended)
- Disk: 500MB for dependencies and training data
- Internet: For Discord API connection
pip install -r requirements.txtInstalls:
- discord.py (2.3.2+) - Discord bot framework
- opencv-python (4.12.0+) - Image processing
- numpy - Numerical operations
- Flask (3.0.0+) - Web server
- Werkzeug (3.0.0+) - WSGI utilities
- python-dotenv - Environment configuration
Copy-Item config\.env.example config\.envThen edit config\.env with your settings (see Configuration section below).
python -c "import sys; sys.path.insert(0, '.'); from src import bot; from config import config; print('✓ Installation successful')"Place spam image examples in Training-Data/ folder:
- Supported formats: PNG, JPG, JPEG, GIF, WEBP, BMP
- Max per file: 10MB
- Recommended: 5-10 diverse spam examples
Copy from .env.example and customize:
# =====================================================================
# Discord Configuration
# =====================================================================
# Get from: https://discord.com/developers/applications
DISCORD_TOKEN=your_bot_token_here
# Your Discord server ID
GUILD_ID=123456789
# Role ID for muted users (create this role first)
MUTED_ROLE_ID=987654321
# Channel for appeals
APPEAL_CHANNEL_ID=111111111
# Channel for logs
LOG_CHANNEL_ID=222222222
# =====================================================================
# Detection Settings
# =====================================================================
# Similarity threshold (0.0-1.0)
# Higher = stricter (fewer false positives)
# Lower = aggressive (more detections)
SIMILARITY_THRESHOLD=0.75
# =====================================================================
# Punishment Configuration
# =====================================================================
# Types: mute, timeout, kick, ban
PUNISHMENT_TYPE=mute
# Mute duration in days
MUTE_DURATION_DAYS=7
# Timeout duration in minutes
TIMEOUT_DURATION_MINUTES=60
# Progressive enforcement
FIRST_OFFENSE_ACTION=mute
SECOND_OFFENSE_ACTION=timeout
THIRD_OFFENSE_ACTION=kick
# =====================================================================
# Behavior Settings
# =====================================================================
# Auto-delete detected spam images
AUTO_DELETE_IMAGE=true
AUTO_DELETE_DELAY=0
# Enable logging
LOG_DETECTIONS=true
LOG_APPEALS=true
# =====================================================================
# Bot Presence Configuration
# =====================================================================
# Bot Status: online, idle, do_not_disturb, invisible
BOT_STATUS=online
# Bot Activity Type: playing, streaming, listening, watching
BOT_ACTIVITY_TYPE=watching
# What bot shows it's doing (e.g., "for spam", "your server")
BOT_ACTIVITY_TEXT=for spam images
# =====================================================================
# Web Server Security
# =====================================================================
# IMPORTANT: Change this to a unique secure token
WEB_API_TOKEN=change-this-to-a-secure-token-in-production- Go to: https://discord.com/developers/applications
- Click "New Application"
- Go to "Bot" section
- Click "Add Bot"
- Under TOKEN, click "Copy"
- Paste into
DISCORD_TOKENin.env
- Enable Developer Mode in Discord (User Settings > Advanced > Developer Mode)
- Right-click server name → Copy Server ID →
GUILD_ID - Right-click role → Copy Role ID →
MUTED_ROLE_ID - Right-click channel → Copy Channel ID →
APPEAL_CHANNEL_IDandLOG_CHANNEL_ID
After First Login Once logged in as owner, you can:
- Go to the Users page
- Add team members as developers or users
- Each person gets their own username/password
Note: There is NO pre-configured default password. You must run
setup_web.py --ownerfirst to create the owner account with your chosen password
- Start the bot using one of the methods above
- Open browser: http://localhost:5000
- Login with your username and password (created during setup)
Upload examples of spam to teach the bot what to detect.
How to use:
- Click "Training Images" tab
- Drag images onto the area OR click "Select Files"
- Supported formats: PNG, JPG, JPEG, GIF, WEBP, BMP
- Max 10MB per file, max 100MB total
- Click "Delete" to remove a training image
Best practices:
- Add 5-10 diverse spam examples
- Include different angles/sizes
- Mix of screenshot spam and advertisement images
Customize bot detection and punishment behavior.
Settings available:
- Similarity Threshold: How strict the detection is (0.0-1.0)
- Higher (0.8-1.0) = Less spam caught, fewer false positives
- Lower (0.4-0.6) = More spam caught, more false alerts
- Punishment Type: What happens when spam is detected
- Mute, Timeout, Kick, or Ban
- Durations: How long to mute or timeout users
- Auto-delete: Automatically remove detected spam images
- Bot Status: What users see as the bot's activity
After changing settings: Bot restart required for changes to apply
Manage your own account.
Features:
- View your username and role
- Change your password securely
- Password requirements: At least 6 characters
View real-time bot information.
Shows:
- Bot online/offline status
- Number of loaded training images
- Last update timestamp
The bot automatically:
- Monitors images posted in your Discord server
- Analyzes each image against trained spam examples
- Detects matches using 5 advanced algorithms
- Applies the configured punishment
- Logs all detections for audit trail
Use these commands in Discord (requires admin role):
/mute [@user] [days] # Manually mute a user
/unmute [@user] # Remove mute from user
/appeal [@user] # Check appeal status
/status # Show bot status
When an image is posted:
- Bot retrieves training images from Admin Portal
- Compares new image using 5 algorithms:
- SIFT (keypoint matching)
- ORB (fast feature detection)
- Histogram (color comparison)
- SSIM (structural similarity)
- Template matching
- Calculates confidence score
- If above threshold → applies punishment
- User can appeal in appeal channel
Smart 5-Algorithm System - Most advanced spam image detection on Discord
- SIFT - Robust keypoint matching for rotated/scaled images
- ORB - Fast feature detection for real-time processing
- AKAZE - Additional binary feature detection for robustness
- Histogram - Color pattern & tone matching
- SSIM - Structural similarity for pixel-level comparison
- Template Matching - Direct image correlation
Result: 95%+ accuracy on trained images with minimal false positives
Tuned Detection
- Default threshold: 0.65 (highly sensitive, catches near-identical spam)
- Configurable 0.0-1.0 range for fine-tuning
- Real-time adjustment in web interface
- Per-image confidence scores logged
What It Detects
- Exact spam image copies (different servers reuse the same ads)
- Minor variations (slightly cropped, recolored, watermarked spam)
- Screenshots of the same content
- Rotated/scaled versions of known spam
Current Features:
- ✅ Configurable punishments (mute, timeout, kick, ban)
- ✅ Progressive enforcement (escalate repeat offenders)
- ✅ Appeal system with staff review workflow
- ✅ Complete audit trail of all actions
- ✅ Mute tracking & persistence
Planned (In Development):
- 🚧 Warning system with auto-actions
- 🚧 Message spam detection (rapid message flooding)
- 🚧 Manual moderation commands (mute/unmute/kick/ban)
- 🚧 Improved modlog channel integration
- 🚧 Basic leveling system
- 🚧 Ticket system support
See: Feature Roadmap for complete planned features
Users can contest their mute/punishment:
- User posts appeal in designated channel with reason
- Server staff reviews appeal with context
- Staff can unmute if warranted
- Complete appeal history visible to admins
- User notified of decision
Why This Matters: Reduces user frustration with false positives
Professional dashboard with:
- ✅ Real-time bot status & health monitoring
- ✅ Drag & drop training image uploads
- ✅ Automatic GitHub sync for shared training data
- ✅ Live configuration editing (no bot restart needed)
- ✅ User account management
- ✅ Secure role-based authentication (owner/dev/user)
- ✅ Mobile responsive design
- ✅ Detection threshold adjustments
- ✅ Appeal management interface
Accessible at: http://your-server:5000
Never miss an action:
- ✅ All spam detections with confidence scores
- ✅ Punishments applied with reasons
- ✅ User appeals and staff decisions
- ✅ Configuration changes with timestamps
- ✅ Bot startup/shutdown events
- ✅ Automatic log rotation to prevent disk bloat
Logs available in:
- Browser: Admin portal
- Terminal: Real-time console output
- Files:
logs/directory (auto-archived)
Docker (Recommended for Production)
- One-command deployment
- Identical behavior across Windows/Mac/Linux
- Persistent volumes for data
- Easy updates with git sync
- Production-grade security
Traditional (Windows/Linux)
- Direct Python execution
- Full system control
- Manual dependency management
- Good for development
See: Setup Methods for detailed instructions
Anti-Ad is actively developed with a clear vision:
- Warning system with auto-escalation
- Message flood detection (spam detection)
- Profanity/slur filtering (configurable)
- Mention spam protection
- Basic leveling system with XP
- User leaderboards
- Member profiles and stats
- Welcome messages and autoroles
- Ticket system support
- Reaction role assignments
- Server statistics & analytics
- Modlog dashboard improvements
📖 FEATURE_ROADMAP.md - Detailed feature list, competitive analysis, and development roadmap
Why This Matters: Anti-Ad is designed to grow with your community. You won't need to switch bots as your server expands. The roadmap shows we're building a comprehensive moderation platform, not just a niche tool.
Error: ModuleNotFoundError: No module named 'discord'
Solution:
pip install -r requirements.txt --upgradeError: Connection refused on localhost:5000
Checklist:
- Verify
web_server.pyis running - Check firewall settings (allow port 5000)
- Ensure port 5000 is available (no other apps using it)
- Check for error messages in terminal
Possible Causes:
- Threshold too high
- Training images too different from spam
- Image format not supported
- Bot doesn't have permissions in channel
Solutions:
- Lower threshold to 0.65 or below (more sensitive)
- Add more varied training examples to Training-Data/
- Verify format is PNG, JPG, GIF, WEBP, or BMP
- Ensure bot has message management permissions
- Check logs for detection errors:
docker-compose logs anti-ad-bot | grep -i detect
Error: 401 Unauthorized
Fix:
- Check
WEB_API_TOKENinconfig/.env - Ensure token is passed in request headers:
X-API-Token: token-here - Restart web server after changing token
Check:
- Is bot running? (Check terminal)
- Is
DISCORD_TOKENcorrect in.env? - Is Discord token still valid? (Regenerate if needed)
- Check network connection
Essential:
- Change
WEB_API_TOKENfrom default - Never share
DISCORD_TOKEN - Don't commit
.envto git (.gitignore set) - Review code before deploying
- Test in staging first
Token Management:
- Generate unique, random tokens
- Store in
.env(never in code) - Rotate tokens every 90 days
- Never share via email/chat
Data Protection:
.envcontains secrets - protect itdata.jsoncontains user data - backup regularly- Training images may contain sensitive data - secure storage
- Logs may contain user info - retention policy
Web Interface:
- API token required for all requests
- Use HTTPS in production (behind proxy)
- Restrict firewall access if possible
- Monitor for unauthorized access
Best Practices:
- Keep dependencies updated:
pip install -r requirements.txt --upgrade - Review logs regularly
- Backup
data.jsonmonthly - Monitor bot performance
- Test updates in staging first
For production, restrict access:
# Linux example - allow only from specific IP
iptables -A INPUT -p tcp --dport 5000 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 5000 -j DROPDaily:
- Verify bot online
- Check for errors in logs
Weekly:
- Review detection logs
- Check for false positives
- Update training data if needed
Monthly:
- Backup
data.json - Review statistics
- Test detection accuracy
Quarterly:
- Update dependencies
- Review security settings
- Rotate tokens
- Performance review
# Backup user data
Copy-Item data.json data_backup_$(Get-Date -Format 'yyyyMMdd').json
# Backup training images
Copy-Item -Recurse Training-Data Training-Data_backup_$(Get-Date -Format 'yyyyMMdd')- Lower threshold for faster detection (trade accuracy)
- Limit training data to 5-10 representative images
- Regular cleanup of logs (monthly)
- Consider load balancer for multiple servers
# Terminal 1 - Bot
python src/bot.py
# Terminal 2 - Portal
python web_server.py# Using startup script
./START.sh
# Or individually
python3 src/bot.py
python3 web_server.pyWindows:
- Use Windows Task Scheduler
- Or use Docker (see below)
Linux:
- Use systemd services (recommended)
- See LINUX_DEPLOYMENT.md for full guide
- Features: auto-restart, logging, firewall setup
macOS:
- Use launchd or supervisor
- Similar to Linux deployment
- Docker: Download Docker Desktop (includes Docker Compose)
- Available ports: 5000 (web interface)
# 1. Navigate to project directory
cd Anti-Ad-Discord-Bot
# 2. Copy and edit configuration
cp config/.env.example config/.env
# Edit config/.env with your Discord token and settings
# 3. Start services in background
docker-compose up -d# View running containers
docker-compose ps
# View logs (all services)
docker-compose logs -f
# View logs for specific service
docker-compose logs -f anti-ad-bot
docker-compose logs -f anti-ad-portal
# Stop all services
docker-compose down
# Stop and remove volumes (clears data)
docker-compose down -v
# Restart services
docker-compose restart
# Rebuild images after code changes
docker-compose up -d --build
# Execute command inside container
docker-compose exec anti-ad-bot python -c "print('Hello')"- URL: http://localhost:5000
- First time? Create owner account with
docker-compose exec anti-ad-portal python setup_web.py
# Copy images to training folder (auto-picked up by container)
cp my_spam_image.png Training-Data/
# Or inside container
docker-compose cp my_image.png anti-ad-bot:/app/Training-Data/# Port already in use?
# Change port in docker-compose.yml or stop other services
netstat -an | findstr :5000 # Windows
lsof -i :5000 # Mac/Linux
# Container exiting immediately?
docker-compose logs -f anti-ad-bot # Check error logs
# Permission denied?
sudo docker-compose up -d # Use sudo on Linux
# Need to rebuild?
docker-compose build --no-cache
docker-compose up -dWindows PowerShell:
docker-compose up -d
docker-compose logs -fMac/Linux Terminal:
docker-compose up -d
docker-compose logs -fEnvironment File (.env) in Docker:
- Same as normal setup - no changes needed
config/.envis automatically mounted into container- Changes apply after container restart
See Docker Production Guide for:
- Health checks
- Volume management
- Networking
- Backup strategies
- Update procedures
See also: .docker_README.md for additional Docker-specific instructions
For enterprise-grade Linux deployment, see the comprehensive guide:
Features included:
- ✅ Systemd service auto-restart
- ✅ Nginx reverse proxy with SSL/TLS
- ✅ Let's Encrypt certificate automation
- ✅ Firewall & security hardening
- ✅ Health monitoring
- ✅ Automated backups
- ✅ Performance tuning
- ✅ Log rotation
For production-grade Docker setup, considerations:
- Health checks
- Volume management for persistence
- Network security
- Update procedures
- Monitoring integration
- Concurrent detections: Supports 100+ simultaneous image checks
- Memory efficient: ~200MB typical usage
- Fast processing: <1 second per image
- Scalable: Supports 1000+ server members
- Database: JSON file-based (easily replaceable with SQL)
The codebase is modular and extensible:
- Replace detection algorithms in
src/image_detector.py - Add new commands in
src/bot.py - Extend API in
web_server.py - Customize UI in
templates/
- Current: JSON file storage (
data.json,users.json) - Location: Project root directory
- Backup: Copy entire project folder
- Future: Can be replaced with PostgreSQL, MySQL, etc.
Logs are stored in logs/ directory:
bot.log- Discord bot activityweb.log- Web server activitydetection.log- Image detection details
- Version: 2.0
- Status: Production Ready ✅
- Release Date: October 26, 2025
- Platforms: Windows, Linux, macOS, Docker
- Python: 3.8+
- License: Provided as-is for Discord moderation
Before asking for help, check:
- ✅ All requirements are installed (
pip install -r requirements.txt) - ✅
.envfile is configured correctly - ✅ Discord token is valid and bot is invited to server
- ✅ Port 5000 isn't blocked by firewall
- ✅ Training images are in
Training-Data/folder
| Issue | Solution |
|---|---|
| "Module not found" | Run pip install -r requirements.txt |
| Web not accessible | Check firewall, verify port 5000 is open |
| Bot offline in Discord | Verify bot has permissions, check token |
| Images not detected | Add more training data, lower threshold |
| Login fails | Create user account via setup_web.py |
| Port 5000 in use | Change port in .env or stop other services |
| File | Purpose |
|---|---|
| README.md | You are here - Main documentation |
| LINUX_DEPLOYMENT.md | Linux production setup guide |
| .docker_README.md | Docker-specific documentation |
| SECURITY.md | Security best practices |
| WEB_INTERFACE_GUIDE.md | Detailed admin portal guide |
| File | Purpose |
|---|---|
src/bot.py |
Main Discord bot with commands |
src/image_detector.py |
5-algorithm detection engine |
src/database.py |
Data persistence (JSON) |
src/admin_utils.py |
Admin utility functions |
web_server.py |
Flask REST API & web server |
config/config.py |
Configuration loader |
templates/ |
HTML templates for web UI |
web_server.py |
Flask REST API |
templates/index.html |
Web management UI |
config/.env |
Your configuration (create this) |
config/config.py |
Config loader |
data.json |
User data (created at runtime) |
requirements.txt |
Dependencies |
.gitignore |
Git exclusions |
logs/bot.log- Bot activity and errorsdata.json- User mutes, appeals, warningsTraining-Data/- Spam image examples
If bot won't start:
- Check error message in terminal
- Verify Python 3.8+:
python --version - Install dependencies:
pip install -r requirements.txt --upgrade - Check
.envfile exists and is readable
If detection not working:
- Verify training images in
Training-Data/ - Check similarity threshold (0.75 is default)
- Add more diverse training examples
- Check image format (PNG, JPG, GIF, WEBP, BMP)
If web interface not working:
- Verify port 5000 available:
netstat -ano | findstr :5000 - Check firewall allows port 5000
- Restart web server
- Check for errors in terminal
✅ 5-Algorithm Spam Detection
✅ Configurable Punishments
✅ Progressive Enforcement
✅ Appeal System
✅ Admin Portal with authentication
✅ User management (owner/devs)
✅ Role-based access control
✅ Training Data Upload
✅ Real-time Status Monitoring
✅ Admin Commands
✅ Comprehensive Logging
✅ Professional Dark Blue UI
✅ Security Token Authentication
✅ Production Ready
START.bathttp://localhost:5000
Edit: config/.env
Place images in: Training-Data/
Formats: PNG, JPG, GIF, WEBP, BMP
View: logs/bot.log
Copy: data.json to backup
Copy: Training-Data/ folder
Ready to deploy! Start with START.bat or one of the Quick Start methods above.
| Feature | Anti-Ad | MEE6 |
|---|---|---|
| Cost | Free forever | Free tier limited, Premium required |
| Image Detection | ✅ AI-powered | ❌ Not available |
| Self-hosted | ✅ Full control | ❌ Cloud only |
| Open Source | ✅ GitHub | ❌ Proprietary |
| Moderation | ✅ Growing | ✅ Mature |
| Leveling | 🚧 Coming | ✅ |
| Support | Community/GitHub | Email support |
| Setup Difficulty | Easy | Very Easy |
| Customization | High | Medium |
Best for MEE6: Users who want a fully hosted solution and don't need image detection
Choose Anti-Ad if: You want image spam detection + self-hosted + free forever
| Feature | Anti-Ad | Maki |
|---|---|---|
| Cost | Free | Limited free tier |
| Image Detection | ✅ AI-powered | ❌ |
| Leveling | 🚧 Coming | ✅ |
| Tickets | 🚧 Coming | ✅ |
| Self-hosted | ✅ | ❌ |
| Appeal System | ✅ | ❌ |
| Moderation | ✅ Growing | ✅ |
Best for Maki: Servers that need leveling/tickets and want hosted solution
Choose Anti-Ad if: You need image detection + want to self-host
| Feature | Anti-Ad | Dyno |
|---|---|---|
| Cost | Free | Limited free tier |
| Image Detection | ✅ AI-powered | ❌ |
| Ease of Use | Easy | Very Easy |
| Moderation | ✅ | ✅ Mature |
| Custom Commands | ❌ (yet) | ✅ |
| Self-hosted | ✅ | ❌ |
| Support Quality | Community | Excellent |
Best for Dyno: First-time Discord admins, prefer hosted solutions
Choose Anti-Ad if: You want AI features + technical control
| Feature | Anti-Ad | Sapphire |
|---|---|---|
| Cost | Free | Free |
| Image Detection | ✅ AI-powered | ❌ |
| Power/Customization | Medium | Very High |
| Learning Curve | Easy | Steep |
| Self-hosted | ✅ | Limited |
| Appeal System | ✅ | ✅ |
| Community | Growing | Large |
Best for Sapphire: Advanced users who want maximum customization
Choose Anti-Ad if: You want simplicity + image detection
| Feature | Anti-Ad | YAGPDB |
|---|---|---|
| Cost | Free | Free |
| Image Detection | ✅ AI-powered | ❌ |
| Customization | Medium | High |
| Self-hosted | ✅ Easy | Limited |
| Learning Curve | Easy | Medium |
| Active Development | ✅ | Active |
Best for YAGPDB: Complex server customization needs
Choose Anti-Ad if: You want specialized image detection + moderation combo
Choose Anti-Ad if you:
- ✅ Want to prevent spam image networks (ads, NFT scams, ICO promotions)
- ✅ Prefer self-hosted with full control
- ✅ Don't want to pay subscription fees
- ✅ Want a bot that grows with your server
- ✅ Like open source and community involvement
- ✅ Need an appeal system for user disputes
- ✅ Have technical ability or willingness to learn Docker
Choose a different bot if you:
- ❌ Want zero technical setup (cloud-only solutions)
- ❌ Only need leveling/tickets (other bots specialize better)
- ❌ Prefer vendor support over community
- ❌ Don't have spam image problems
- Discord bot token added to
.env - Server ID (GUILD_ID) configured
- Muted role created in Discord and ID added
- Appeal channel ID added to
.env - At least 3-5 training images added to
Training-Data/ - Web interface accessible at http://localhost:5000
- Bot appears online in Discord server
- Admin Portal login working
- Test spam image upload and detection
-
WEB_API_TOKENchanged from default -
.envfile protected (not committed to git) - Backup of
data.jsoncreated
🎉 All set! Your Anti-Ad bot is ready to protect your server.