DiscordでのAI NSFW検出の仕組み
画像モデルが各画像を判定し、設定に応じて次の対応が決まります。モデルが何を見ているか、どこで誤るか、何が保存されるかを紹介します。
執筆:SfwBot Team読了目安7分

AI NSFW検出とは、サーバーに投稿された画像を画像モデルが1枚ずつ見て、どの程度ヌードが写っているかを報告する仕組みです。Botはその結果を設定したレベルと比較し、メッセージを削除するか、そのままにします。この記事では、SfwBotを例に、1枚の画像がどう処理されるかを順に説明します。
モデルは画像に何をするのか

モデルは、ラベル付きの大量の画像で学習させたニューラルネットワークです。照合するための禁止画像のリストは持っていません。ラベル付きの例に共通する特徴を学習しているので、初めて見る画像でも判定できます。
モデルは画像ごとに、4つのレベルのどれに当てはまるかという1つの問いに答えます。
| レベル | 名称 | 代表的なコンテンツ |
|---|---|---|
| 0 | 日常 | ミーム、スクリーンショット、自撮り |
| 1 | 露出あり | 水着、下着、それに近い服装 |
| 2 | ヌードの示唆 | 覆われている、または隠されているヌード |
| 3 | 露骨 | 見えているヌードや性的なコンテンツ |
モデルは判定するだけです。サーバーのルールは知らず、何かを決めることもありません。
削除の対象はレベルで決まる
ブロックを始めるレベルを選ぶと、そのレベル以上がすべて削除されます。新しいサーバーはレベル3から始まるので、削除されるのは露骨なコンテンツだけです。年少者向けのサーバーなら、レベル1からブロックすることもあります。
この分け方は、Botを調整するときに役立ちます。削除が多すぎるなら、ブロックを始めるレベルを上げます。少なすぎるなら下げます。どちらの場合もモデルは変わりません。
有料プランでは、さらに細かく設定できます。イラストやアート用に別のレベルを設定でき(Plus)、個別のチャンネルやカテゴリーごとにレベルを設定することもできます(Pro)。各プランの内容は料金のページに載っています。
モデルに送られる前に行われること
ほとんどの画像はモデルまで届きません。SfwBotは最初に3つを確認します。
- 除外設定。 除外されたチャンネルや、除外されたロールのメディアはスキップされます。年齢制限付きチャンネルはデフォルトでスキップされます。
- フィンガープリント。 Botは画像のフィンガープリントを計算します。これは短い値で、画像をリサイズしたり再圧縮したりしてもほぼ変わりません。フィンガープリントがホワイトリストにあれば、画像は通過します。ブラックリストにあれば削除されます。どちらもスキャンは不要です。
- 重複。 過去24時間以内にスキャンした同一のメディアは、再度スキャンされません。
残ったものだけがモデルに送られます。このスキャンではクレジットを使います。
GIFと動画

動画は長すぎて1枚の画像としては判定できないため、Botは動画からフレームを取り出して判定します。デフォルトでは、動画は10フレーム、GIFは5フレームをチェックします。Proプランのディープ動画スキャンでは、それぞれ30フレームと15フレームをチェックします。
サンプリングには、知っておくべき性質があります。長い動画に露骨なフレームが数枚あっても、サンプルの合間に入ってしまうことがあります。すり抜けたクリップはブラックリストに追加してください。次回からはフィンガープリントで検出されます。
32 MBを超えるファイルはスキャンされません。
モデルが誤る場面
常に正しい画像モデルはありません。よくある間違いは次のとおりです。
- 肌色に近い面。 手や顔、食べ物のクローズアップが、高く判定されることがあります。
- アート。 古典絵画、彫刻、描かれたキャラクターは、写真より判定が難しくなります。
- 際どい服装。 レベル0とレベル1の境目は最も確信が低く、そのためレベル1からブロックするサーバーは多くありません。
- 小さい画像や切り抜かれた画像。 モデルが見られる範囲が狭いほど、判定の信頼性は下がります。
SfwBotは、誤判定は起こるものとして扱います。削除のたびにログチャンネルへ記録が送られ、誤りとして報告ボタンで審査に回せます。ホワイトリストに登録した画像が、そのサーバーで再び削除されることはありません。モデルによる削除では、設定で有効にしない限りメンバーの信頼スコアは減りません。そのため、1回の誤判定でストライクになることはありません。
画像はどうなるのか
Botは分析のためにメディアをダウンロードし、終わったらすぐに破棄します。保持するのはフィンガープリントです。画像そのものが保持されるのは、判定がレビューのために報告された場合だけで、レビューが終わるまで、長くても30日間です。
メディアのリンクやフィンガープリントなど、メッセージから取得したデータは30日後に削除されます。自分のリストにあるフィンガープリントは、削除するまで残ります。詳細はセキュリティとプライバシーのページをご覧ください。
よくある質問
AI検出で人間のモデレーターの代わりになりますか?
いいえ。明らかなケースは、時間帯を問わず即座に削除します。報告されたケースや、文脈に左右される判断は、引き続きモデレーターが行います。
モデルはサーバーの画像から学習しますか?
Botはスキャンした画像を保持しません。画像が保持されるのは、判定がレビューのために報告された場合だけで、長くても30日間です。
AIはテキストメッセージを読みますか?
いいえ。モデルが判定するのは、画像、GIF、動画です。テキストは、招待、スパム、リンクそれぞれの別のフィルターが処理し、クレジットは使いません。
スキャンに失敗するとどうなりますか?
メッセージはそのまま残り、そのスキャンで使ったクレジットは返却されます。


