はじめに
以前、以下の記事で作った自動NSFWとか
以下の自動NSFW検知Botとかを改良したものを新たに作ってみました。
以前までのBotの問題点
以前までのBotはGoogle Cloud Vision APIを使っていたため中々にコストが高くついてました......。 また誤検知なども意外と多く、実運用に向かなさそうだったり......。
そのため数年前に停止していました。
なんでまた作ったのか?
最近、Twitterの買収から始まる一連の騒動でFediverseにユーザーが増えてきたのがきっかけ。 人が増えたことで連合タイムラインとかに、NSFWな画像が流れてくる可能性は増しましたし......。
また僕の運営しているCreatodonでもユーザーが増えてきていることもきっかけの一つです。 現状は人が一気に増えたこともあり新規登録は止めていますが、招待リンク経由での登録はできる状態なので悪意あるユーザーが入ってくる可能性は0ではない状況です。
で、そういう事態が起きる前に自動的に検知できる仕組みは導入したかったので今回再チャレンジしてみた感じです。
作ったもの
opennsfw2とMastodon.pyを使って実装しています。
使い方など
まずBot用のアカウントを作成して、アクセストークンを生成。
次に、ソースコードを稼働させるサーバーなどへCloneします。
git clone https://github.com/S-H-GAMELINKS/auto-nsfw-checker.git
Cloneしてきたソースコードのディレクトリへ移動し、.env
を作成します
cd auto-nsfw-checker cp .env.sample .env
.env
を編集して利用するサーバーのURLやアクセストークンを追記します。
API_BASE_URL=<サーバーのURL> ACCESS_TOKEN=<アクセストークン>
最後に以下のようなserviceを作成し、
[Unit] Description=auto-nsfw-checker After=network.target [Service] Type=simple User=mastodon WorkingDirectory=/home/user/auto-nsfw-checker ExecStart=/home/user/.pyenv/shims/python main.py TimeoutSec=15 Restart=always [Install] WantedBy=multi-user.target
以下のコマンドでserviceを起動すればOKです。
sudo systemctl start auto-nsfw-checker
今後
連合タイムラインに流れてくるNSFWな画像を検知できる仕組みとか作りたいと思いますねー。