Comment filtrer le NSFW ?

Dans un soucis de rester en règles avec toutes celles qui déboulent sur internet depuis quelques temps mais aussi de se protéger soit-même quand on opère un site avec du contenu utilisateur, il est important d’appliquer des filtres NSFW. Mais comment, et à quel prix, on va tenter d’y voir un peu plus clair.

En l’état, aujourd’hui, quand on veut développer un site et avec assez peu de moyens, il faut trouver des solutions pas trop chère ni difficile à intégrer tout en étant à jour, et c’est assez complexe de rassembler toutes ces qualités, mais avec la démocratisation de l’IA, c’est de plus en plus accessible, en tant qu’IA ‘as-a-service’ (ou AIAAS) !

Dans notre shortlist (à date de publication) :

SightEngineGoogle VisionAmazon
Rekognition
Nombre
opérations
gratuits
2000 / mois (500/jr)1000/mois5000/mois
Tarifs au dela30$/mois (max 10k opérations)$1.50 / opérations (max 5 millions)1$ par tranche de 1000 images

L’un des grands gagnants qui ressort de cette petite analyse reste Amazon, suivi par SightEngine avec une offre claire, et Google Vision qui possède l’un des plus efficace moteur de détections, mais reste horriblement cher dès que nous dépassons les 1000 opérations mensuelles.

Utilisation de l’IA

Pour notre exemple, nous utiliseront SightEngine et le framework Laravel (ça faisait longtemps) :

$sightEngine = new SightengineClient(env('SIGHTENGINEUSER'), env('SIGHTENGINEKEY'));
$imageCheck = $sightEngine->check(['nudity', 'wad', 'offensive', 'face-attributes', 'text'])->set_file($picture);

Ce qui nous renverra un JSON avec l’analyse de SightEngine, libre à vous d’en faire ce que vous voulez, moi je met les images à la poubelle quand le taux de chaque filtre est supérieur à 0,85, juste histoire de pas avoir à modérer trop de contenu, et les quelques faux positifs seront peu nombreux.

Have fun avec tout les outils et tout ce que vous pouvez coder avec ça donc, n’oubliez surtout pas les formulaires de réclamation en cas de faux-positif pour les utilisateurs. Pas comme Youtube quoi.