clasificación de imágenes nsfw grande

MichalMlodawski
Clasificación de imagen

Descubra el Poder de la Moderación Inteligente

Como usar

Instale mis poderes:

pip install transformers==4.37.2 torch==2.3.1 torchvision Pillow

Invócame en tu código:

import os
from PIL import Image
import torch
from torchvision import transforms
from transformers import AutoProcessor, FocalNetForImageClassification

# Ruta a la carpeta con imágenes
image_folder = ""
# Ruta al modelo
model_path = "MichalMlodawski/nsfw-image-detection-large"

# Lista de archivos jpg en la carpeta
jpg_files = [file for file in os.listdir(image_folder) if file.lower().endswith(".jpg")]

# Verificar si hay archivos jpg en la carpeta
if not jpg_files:
    print("🚫 No se encontraron archivos jpg en la carpeta:", image_folder)
    exit()

# Cargar el modelo y el extractor de características
feature_extractor = AutoProcessor.from_pretrained(model_path)
model = FocalNetForImageClassification.from_pretrained(model_path)
model.eval()

# Transformaciones de la imagen
transform = transforms.Compose([
    transforms.Resize((512, 512)),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

# Mapeo de etiquetas del modelo a categorías NSFW
label_to_category = {
    "LABEL_0": "Seguro",
    "LABEL_1": "Cuestionable",
    "LABEL_2": "Inseguro"
}

# Procesamiento y predicción para cada imagen
results = []
for jpg_file in jpg_files:
    selected_image = os.path.join(image_folder, jpg_file)
    image = Image.open(selected_image).convert("RGB")
    image_tensor = transform(image).unsqueeze(0)

    # Procesar la imagen usando el extractor de características
    inputs = feature_extractor(images=image, return_tensors="pt")

    # Predicción usando el modelo
    with torch.no_grad():
        outputs = model(**inputs)
        probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1)
        confidence, predicted = torch.max(probabilities, 1)

    # Obtener la etiqueta de la configuración del modelo
    label = model.config.id2label[predicted.item()]

    results.append((jpg_file, label, confidence.item() * 100))

# Mostrar resultados
print("🖼️ Resultados de Clasificación NSFW 🖼️")
print("=" * 40)
for jpg_file, label, confidence in results:
    category = label_to_category.get(label, "Desconocido")
    emoji = {"Seguro": "✅", "Cuestionable": "⚠️", "Inseguro": "🔞"}.get(category, "❓")
    confidence_bar = "🟩" * int(confidence // 10) + "⬜" * (10 - int(confidence // 10))

    print(f"📄 Nombre del archivo: {jpg_file}")
    print(f"🏷️ Etiqueta del modelo: {label}")
    print(f"{emoji} Categoría NSFW: {category}")
    print(f"🎯 Confianza: {confidence:.2f}% {confidence_bar}")
    print(f"{'=' * 40}")

print("🏁 ¡Clasificación completada! 🎉")

Funcionalidades

Detección ultrarrápida: analiza cada píxel más rápido de lo que puedes decir 'contenido seguro'.
Escudo protector: protege tus plataformas de contenido no deseado.
Precisión quirúrgica: detecta amenazas potenciales con una precisión increíble.

Casos de uso

Plataformas de redes sociales: mantener el contenido generado por los usuarios limpio y seguro.
Sitios de comercio electrónico: asegurar que las imágenes de productos cumplan con los estándares de la comunidad.
Aplicaciones de citas: mantener un ambiente respetuoso para todos los usuarios.
Plataformas de intercambio de contenido: filtrar automáticamente las cargas potencialmente inapropiadas.
Plataformas educativas: asegurar que los materiales de aprendizaje sean apropiados para la audiencia.

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.