Moxra (مکسرا) یک کتابخانه قدرتمند Python برای تشخیص محتوای نامناسب (NSFW) و Content Moderation است که با استفاده از ONNX Runtime امکان تحلیل تصاویر، GIF و ویدئو را با پشتیبانی از CPU و GPU فراهم میکند.
Moxra (مکسرا) یک کتابخانه و SDK مبتنی بر Python برای NSFW Detection، Image Classification و Content Moderation است.
Moxra میتواند محتوای تصویری را تحلیل کرده و احتمال دستههای مختلف را در اختیار برنامه قرار دهد. این کتابخانه برای استفاده در پروژههایی مانند:
- 💬 پیامرسانها و شبکههای اجتماعی
- 🤖 رباتها و سرویسهای هوش مصنوعی
- 🌐 وبسایتها و پلتفرمهای اشتراک محتوا
- 🛡️ سیستمهای Content Moderation
- 📤 سرویسهای آپلود تصویر و ویدئو
- 🎮 پلتفرمهای اجتماعی و کامیونیتیها
- 🔐 سیستمهای فیلترینگ و مدیریت محتوا
طراحی شده است.
Moxra = Modern NSFW Detection & Content Moderation for Python
| قابلیت | وضعیت |
|---|---|
| 🖼️ تشخیص تصویر | ✅ |
| 🎞️ تشخیص GIF | ✅ |
| 🎥 تشخیص ویدئو | ✅ |
| ⚡ پردازش Async | ✅ |
| 💻 CPU Inference | ✅ |
| 🚀 GPU Inference | ✅ |
| 🔥 CUDA | ✅ |
| 🧠 ONNX Runtime | ✅ |
| 📊 امتیاز NSFW | ✅ |
| 🎯 دستهبندی محتوا | ✅ |
| 🧕 Veil Detection | ✅ |
| 📦 دریافت مستقیم Binary Data | ✅ |
| ⚙️ تنظیمات قابل شخصیسازی | ✅ |
| 📈 Statistics | ✅ |
| 🧹 مدیریت حافظه | ✅ |
pip install moxrapip install "moxra[gpu]"پس از نصب:
from moxra import MoxraDetector
detector = MoxraDetector()
result = detector.classify_with_veil("image.jpg")
print(result["is_nsfw"])در سادهترین حالت، فقط چند خط کد برای شروع نیاز دارید:
from moxra import MoxraDetector
detector = MoxraDetector()
result = detector.classify_with_veil("image.jpg")
if result["is_nsfw"]:
print("🚫 NSFW content detected")
else:
print("✅ Safe content")Moxra محتوای ورودی را دریافت کرده و آن را با مدلهای Machine Learning و ONNX پردازش میکند.
┌─────────────────┐
│ Input │
└────────┬────────┘
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
Image GIF Video
│ │ │
└───────────┼───────────┘
▼
┌─────────────────┐
│ Moxra Detector │
└────────┬────────┘
│
▼
┌─────────────────┐
│ ONNX Runtime │
│ CPU / CUDA │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Classification │
└────────┬────────┘
│
▼
┌────────────────────────┐
│ Safe / Suspicious / │
│ NSFW + Probabilities │
└────────────────────────┘
from moxra import MoxraDetector
detector = MoxraDetector()
result = detector.classify_with_veil("photo.jpg")
print(result)predictions = detector.predict_image("photo.jpg")
print(predictions)نمونه خروجی:
{
"predictions": {
"neutral": 0.85,
"sexy": 0.08,
"porn": 0.04,
"hentai": 0.02,
"drawing": 0.01
},
"is_nsfw": False,
"is_safe": True,
"is_suspicious": False,
"nsfw_score": 0.14,
"dominant_category": "neutral",
"veil": {
"has_veil": False,
"confidence": 0.0
}
}| فیلد | توضیح |
|---|---|
predictions |
احتمال هر دسته |
is_nsfw |
تشخیص نهایی NSFW |
is_safe |
تشخیص محتوای ایمن |
is_suspicious |
محتوای مشکوک |
nsfw_score |
امتیاز کلی NSFW |
dominant_category |
دسته غالب |
veil |
اطلاعات مربوط به Veil Detection |
Moxra میتواند GIF را فریمبهفریم تحلیل کرده و نتیجه را بر اساس فریمهای پردازششده ارائه کند.
result = detector.predict_gif("animation.gif")
print(result)result = detector.predict_video(
"video.mp4",
sample_rate=0.1,
max_frames=100
)
print(result){
"average": {
"neutral": 0.82,
"sexy": 0.07,
"porn": 0.04
},
"frames": [
{
"time": 0.1,
"predictions": {
"neutral": 0.90,
"sexy": 0.05,
"porn": 0.05
}
}
],
"metadata": {
"total_frames": 300,
"processed_frames": 30,
"fps": 30,
"duration": 10.0
}
}sample_rate=0.1یعنی تقریباً ۱۰٪ فریمها برای تحلیل انتخاب شوند.
max_frames=100حداکثر تعداد فریمهایی که پردازش میشوند.
برای زمانی که فایل را مستقیماً از API، HTTP Request، Database یا Storage دریافت میکنید:
from moxra import MoxraDetector
detector = MoxraDetector()
with open("image.jpg", "rb") as file:
image_bytes = file.read()
result = detector.predict_bytes(image_bytes)
print(result)این قابلیت برای ساخت APIهای Content Moderation بسیار کاربردی است.
Moxra از پردازش ناهمگام برای اجرای چند عملیات در کنار یکدیگر پشتیبانی میکند.
import asyncio
from moxra import MoxraDetector
async def main():
detector = MoxraDetector()
tasks = [
detector.predict_image_async("img1.jpg"),
detector.predict_image_async("img2.jpg"),
detector.predict_image_async("img3.jpg")
]
results = await asyncio.gather(*tasks)
for result in results:
print(result)
asyncio.run(main())مناسب برای:
- API Servers
- Batch Processing
- Web Applications
- Moderation Pipelines
- Bot Systems
- High-Concurrency Applications
Moxra برای سناریوهای مختلف قابل تنظیم است.
from moxra import MoxraDetector, Config
config = Config(
device="cpu"
)
detector = MoxraDetector(config)from moxra import MoxraDetector, Config
config = Config(
device="cuda"
)
detector = MoxraDetector(config)config = Config(
device="tensorrt"
)برای استفاده از GPU باید وابستگیهای موردنیاز محیط CUDA نیز روی سیستم نصب و آماده باشند.
from moxra import MoxraDetector, Config
config = Config(
model_type="i3",
device="cuda",
nsfw_threshold=0.85,
safe_threshold=0.25,
suspicious_threshold=0.60,
cleanup_interval=100,
intra_threads=2,
inter_threads=1
)
detector = MoxraDetector(config)مدل مورد استفاده را میتوانید با توجه به نیاز خود انتخاب کنید:
d
m2
i3
Moxra امکان تنظیم Configuration از طریق Environment Variable را نیز فراهم میکند.
export MOXRA_MODEL_TYPE="d"
export MOXRA_DEVICE="cpu"
export MOXRA_NSFW_THRESHOLD="0.85"set MOXRA_MODEL_TYPE=d
set MOXRA_DEVICE=cpu
set MOXRA_NSFW_THRESHOLD=0.85from moxra import MoxraDetector, Config
config = Config.from_env()
detector = MoxraDetector(config)Moxra میتواند محتوای ورودی را در دستههای مختلف طبقهبندی کند.
| Category | توضیح |
|---|---|
🟢 neutral |
محتوای عادی و ایمن |
🟡 sexy |
محتوای حساس / تحریککننده |
🔴 porn |
محتوای صریح نامناسب |
🟣 hentai |
محتوای انیمه حساس |
🔵 drawing |
نقاشی و محتوای هنری |
یکی از کاربردهای اصلی Moxra ساخت سیستمهای خودکار Content Moderation است.
برای مثال:
result = detector.classify_with_veil("uploaded_image.jpg")
if result["is_nsfw"]:
print("🚫 Content blocked")
else:
print("✅ Content accepted")میتوانید Moxra را در جریان پردازش محتوای سرویس خود قرار دهید:
User Upload
│
▼
Moxra
│
├── SAFE ───────► Publish
│
├── SUSPICIOUS ─► Review
│
└── NSFW ───────► Block
برای مشاهده آمار پردازش:
stats = detector.get_stats()
print(
f"Inferences: {stats['inference_count']}"
)
print(
f"Device: {stats['device']}"
)
print(
f"Uptime: {stats['uptime_seconds']} seconds"
)برای آزادسازی منابع:
detector.cleanup()from moxra import MoxraDetector
import os
import shutil
detector = MoxraDetector()
images = [
"photo1.jpg",
"photo2.jpg",
"photo3.jpg"
]
for image in images:
if not os.path.exists(image):
continue
result = detector.classify_with_veil(image)
if result["is_nsfw"]:
print(f"🚫 Blocked: {image}")
shutil.move(image, "nsfw/")
else:
print(f"✅ Safe: {image}")
shutil.move(image, "safe/")from moxra import MoxraDetector
detector = MoxraDetector()
result = detector.classify_with_veil("image.jpg")
print("=" * 45)
print("🛡️ Moxra Content Analysis")
print("=" * 45)
for category, probability in result["predictions"].items():
bar = "█" * int(probability * 40)
print(
f"{category:<10} "
f"{probability * 100:5.1f}% "
f"{bar}"
)
print("=" * 45)
print(
f"NSFW Score: "
f"{result['nsfw_score'] * 100:.1f}%"
)
print(
"Status:",
"🚫 NSFW" if result["is_nsfw"] else "✅ SAFE"
)
print("=" * 45)Moxra همچنین شامل ساختار API Server است.
برای اطلاعات مربوط به API Server و نحوه استفاده از آن، فایل زیر را ببینید:
این بخش میتواند برای ساخت سرویسهای جداگانه Content Moderation و اتصال Moxra به سایر زبانها و اپلیکیشنها استفاده شود.
moxra/
│
├── .github/
│ └── workflows/
│
├── moxra/
│ └── Core Library
│
├── moxra_model/
│ └── Models
│
├── static/
│ └── img/
│
├── templates/
│
├── version/
│
├── API_SERVER.md
├── LICENSE
├── README.md
├── pyproject.toml
├── requirements.txt
├── setup.py
└── run.py
مستندات Moxra به بخشهای مختلف تقسیم شدهاند:
| بخش | توضیح |
|---|---|
| 📦 Installation | نصب کتابخانه |
| ⚡ Quick Start | شروع سریع |
| 🖼️ Image Detection | تشخیص تصویر |
| 🎞️ GIF Detection | تشخیص GIF |
| 🎥 Video Detection | تشخیص ویدئو |
| ⚡ Async | پردازش Async |
| 🚀 GPU / CUDA | شتابدهی GPU |
| ⚙️ Configuration | تنظیمات |
| 🔌 API Server | ساخت API |
| 📊 Statistics | آمار |
| 🛡️ Moderation | سیستم فیلترینگ |
Moxra برای توسعهدهندگانی ساخته شده که به یک راهکار Python برای:
NSFW Image Detection
NSFW Video Detection
Image Content Classification
AI Content Moderation
Automatic Media Filtering
Python Computer Vision
ONNX Inference
نیاز دارند.
| Exception | توضیح |
|---|---|
FileNotFoundError |
فایل یا مسیر موردنظر پیدا نشده است |
ValueError |
مقدار یا فرمت ورودی نامعتبر است |
RuntimeError |
خطا در فرآیند پردازش یا Inference |
همیشه مطمئن شوید مسیر فایل، فرمت ورودی و وابستگیهای موردنیاز بهدرستی تنظیم شدهاند.
Moxra برای:
Python 3.8+
طراحی شده است.
Moxra تحت MIT License منتشر شده است.
این بدان معناست که میتوانید از Moxra در پروژههای شخصی و تجاری مطابق شرایط مجوز استفاده کنید.
مشاهده:
اگر Moxra برای پروژه شما مفید بود:
⭐ به Repository ستاره بدهید.
🍴 پروژه را Fork کنید.
📢 آن را با توسعهدهندگان دیگر به اشتراک بگذارید.
🐛 مشکلات را در GitHub Issues گزارش کنید.
💡 برای بهبود Moxra پیشنهاد خود را مطرح کنید.
هر ⭐ به دیدهشدن بیشتر پروژه در GitHub کمک میکند.
مشارکت در توسعه Moxra آزاد است.
اگر ایده، Bug Fix یا Feature جدیدی دارید:
Fork
↓
Create Branch
↓
Make Changes
↓
Commit
↓
Pull Request
Moxra یک ابزار automated content classification است.
نتایج مدلهای Machine Learning ممکن است در برخی تصاویر، ویدئوها یا شرایط نوری دقیق نباشند. برای سیستمهای حساس، میتوانید خروجی Moxra را در کنار قوانین اختصاصی، Thresholdها و بررسی انسانی استفاده کنید.
Moxra — Python NSFW Detection & Content Moderation
Made with ❤️ by Abolfazl Zarei
© Moxra — Open Source