aipictors / aipictors

Webサイト
https://beta.aipictors.com
MIT License
17 stars 3 forks source link

自動的にNSFWコンテンツを検知し、処理するためにNSFW.jsを実装する #107

Open L4Ph opened 6 months ago

L4Ph commented 6 months ago

What

NSFW.jsの実装

参考

Why

だいたい参考URL先に書いてあるけど、

  • ユーザーの利便性向上のため
  • モデレーション効率向上のため
  • 犯罪抑止のため
L4Ph commented 6 months ago

https://github.com/AUTOMATIC1111/stable-diffusion-webui-nsfw-censor https://huggingface.co/CompVis/stable-diffusion-safety-checker

L4Ph commented 6 months ago

クライアント側でいい気がしてる

L4Ph commented 6 months ago

https://github.com/alex000kim/nsfw_data_scraper

L4Ph commented 6 months ago

@nakatsuka-k 意見が欲しいです

mikageymir commented 6 months ago

精度を見てみたいです。

このような画像タグがあるときに

<img class="operator-image" src="https://www.aipictors.com/wp-content/uploads/2024/01/xxxx.webp" style="width: 100%; height: auto;" onload="resizeListImg('works_123456789'); return false;">

特定の関数呼ぶと、 .operator-image についてNSFW.jsで判定して、data-agelimit="0"~"3"のattrを設定してくれる。 (0:全年齢、1:R18、2:R18G、3:R15) みたいなJavaScriptのコードサンプルがあったらこちらで組み込んで使ってみます。

ある程度の精度があるなら、まずは投稿時にNSFW.jsの結果に応じて年齢区分のデフォルトを変えるだけでも効果がありそうです。

L4Ph commented 5 months ago

軽くNSFW.jsで検証した感じ、MobileNet v2だとちょっと無理がありそう(v3は要検証) InceptionNet v3はかなりちゃんと検出する

L4Ph commented 5 months ago

Inception v3はこれはこれで威力強すぎるな 追加学習必要かもしれない...

nakatsuka-k commented 5 months ago

検証ありがとうございます。

L4Ph commented 1 week ago

https://huggingface.co/datasets/deepghs/nsfw_detect/tree/main

Inception V3はデカいので、小さくするためにMobileNet v3に差し替えて、データセットも比較的新しいものを使う(train用のコードがだいぶ古くていろいろ動かないので、直す必要がある)

L4Ph commented 1 week ago

https://huggingface.co/deepghs/imgutils-models/tree/main/nsfw ONNX用のモデルを見つけた

Hug space https://huggingface.co/spaces/deepghs/nsfw_prediction

L4Ph commented 1 week ago

ONNX Web Runtimeで動かせそう https://github.com/microsoft/onnxruntime/tree/main/js/web