Die Bildmoderation ist eine Herausforderung für jede Website oder App, die von Nutzern hochgeladene Inhalte akzeptiert. Zwischen kostenpflichtigen Diensten, die Ihre Dateien an entfernte Server übermitteln, und teuren Eigenentwicklungen gibt es einen Mittelweg: NSFWJS. Diese vom Studio Infinite Red gepflegte Open-Source-JavaScript-Bibliothek ermöglicht es, potenziell explizite Bilder direkt im Browser oder in Node.js zu klassifizieren, ohne die Dateien jemals an einen externen Dienst zu senden. Konkret nutzt sie TensorFlow.js, um ein Computer-Vision-Modell clientseitig auszuführen und jedem Bild einen auf fünf Kategorien verteilten Score zuzuweisen. Für einen Webentwickler bedeutet dies einen schnell einzurichtenden ersten Filter, kostenlos und datenschutzfreundlich, ideal, um risikobehaftete Inhalte zu erkennen, bevor sie auf einer Plattform erscheinen. In den folgenden Abschnitten beschreiben wir im Detail, was NSFWJS genau ist, wie es funktioniert, seine konkreten Anwendungsfälle, seine Vorteile, sein Geschäftsmodell und was man sich merken sollte.
Qu'est-ce que NSFWJS ?
L'essentiel
NSFWJS ist eine JavaScript-Bibliothek, die entwickelt wurde, um potenziell unangemessene Bilder schnell zu identifizieren, wie es die eigene Beschreibung angibt: dabei helfen, diese Bilder vollständig im Browser des Clients zu erkennen. Das Projekt wird von Infinite Red betreut und unter der MIT-Lizenz vertrieben, was es frei, kostenlos und veränderbar macht. Technisch basiert es auf TensorFlow.js und bietet mehrere vortrainierte Modelle an, insbesondere MobileNetV2 und InceptionV3. Ausgehend von einem bereitgestellten Bild berechnet das Modell eine Wahrscheinlichkeit für fünf verschiedene Klassen: Drawing (unbedenkliche Zeichnungen, einschließlich Animation), Hentai, Neutral (neutraler Inhalt), Porn und Sexy. Die Bibliothek funktioniert sowohl im Browser als auch serverseitig mit Node.js, und ein Zusatzpaket existiert für React-Native-Anwendungen.
Fonctionnalités principales
Der Kern von NSFWJS liegt in einer einfachen API. Nach dem Laden des Modells mit der Methode load ruft man classify auf und übergibt eine Bildquelle: HTML-Image-Tag, Canvas-Element, Video, Rohbilddaten oder TensorFlow.js-Tensor. Die Funktion gibt die Liste der fünf Klassen samt ihrer Wahrscheinlichkeit zurück, wodurch der Entwickler den Sperrschwellenwert selbst wählen kann. Je nach gewünschtem Kompromiss zwischen Größe und Genauigkeit werden drei Modelle angeboten: ein kleines MobileNetV2-Modell in 224×224, eine mittlere Variante und ein schwereres InceptionV3-Modell in 299×299. Die angegebene Genauigkeit liegt bei etwa 90 % für das kleine Modell und 93 % für das mittlere Modell. Die Bibliothek unterstützt mehrere Rechen-Backends (WebGL, WebGPU, WASM, CPU) und kann die Modelle über IndexedDB im Browser zwischenspeichern, um nachfolgende Ladevorgänge zu beschleunigen. Ein Open-Source-Chrome-Erweiterungsprojekt namens NSFW Filter stützt sich übrigens auf NSFWJS, um sensible Bilder beim Browsen zu verbergen, was die Flexibilität der Bibliothek veranschaulicht.
Cas d'usage
NSFWJS findet ganz natürlich seinen Platz bei der Inhaltsmoderation auf Plattformen, die Bild-Uploads akzeptieren: Foren, soziale Netzwerke, Marktplätze oder Kommentarbereiche. Da die Analyse clientseitig erfolgt, kann ein verdächtiges Bild blockiert oder unscharf gemacht werden, noch bevor es an den Server gesendet wird, was Bandbreite spart und die Privatsphäre der Nutzer schützt. Entwickler von Browsererweiterungen nutzen es, um angezeigte Bilder automatisch zu filtern, wie die Erweiterung NSFW Filter zeigt. Das Paket nsfwjs-mobile öffnet React-Native-Anwendungen den Weg, die eine Inhaltskontrolle auf Mobilgeräten integrieren möchten. Schließlich kann NSFWJS in einer Node.js-Umgebung als erste Sortierschicht in einer Bildverarbeitungspipeline dienen, zum Beispiel um Inhalte zur manuellen Prüfung zu kennzeichnen.
Avantages
Der Hauptvorteil von NSFWJS ist seine vollständig clientseitige Funktionsweise: Kein Bild wird an einen Drittanbieterdienst übermittelt, ein gewichtiges Argument für Datenschutz und Konformität. Es folgt die vollständige Kostenlosigkeit unter MIT-Lizenz, die eine kommerzielle Nutzung ohne Gebühren oder Kontingente erlaubt. Die Bibliothek ist leicht zu integrieren, basiert auf dem bereits gut dokumentierten TensorFlow.js-Ökosystem und lässt dem Entwickler die freie Wahl seines Modells und seiner Schwellenwerte. Ihre Kompatibilität mit mehreren Umgebungen (Browser, Node.js, React Native) und ihre aktive Open-Source-Community machen sie zu einem in verschiedenen Kontexten wiederverwendbaren Baustein, vom Prototyp bis zum Produktivprodukt.
Tarifs
NSFWJS ist ein Open-Source-Projekt unter MIT-Lizenz: Es ist kostenlos und verfügt über keine kostenpflichtige Stufe, kein Abonnement und keinen zu erwerbenden API-Schlüssel. Es gibt weder eine kommerzielle gehostete API noch einen offiziellen verwalteten Dienst: Sie installieren die Bibliothek über npm oder yarn und hosten die Modelle bei Bedarf selbst. Die einzigen möglichen Kosten sind indirekt und hängen mit Ihrer eigenen Infrastruktur zusammen, falls Sie sie in großem Maßstab in Node.js ausführen. Diese Kostenfreiheit macht sie zu einer besonders interessanten Lösung für Projekte mit begrenztem Budget oder für Experimente.
Conclusion
NSFWJS ist eine pragmatische Antwort auf den Bedarf, sensible Bilder zu filtern, ohne von einem externen Dienst abhängig zu sein. Kostenlos, quelloffen und clientseitig ausgeführt, bietet es Entwicklern einen schnell einsetzbaren ersten Schutzmechanismus, der die Privatsphäre respektiert. Seine Genauigkeit von 90 bis 93 % und das Fehlen einer No-Code-Oberfläche richten es jedoch an technische Teams, und es sollte bei Anwendungen mit hohem Risiko durch eine menschliche Überprüfung ergänzt werden. Für einen Web- oder Mobilentwickler, der eine freie und zuverlässige Lösung zur Bildmoderation sucht, ist es eine Option, die man kennen sollte.