前書き
ネット上の友人間で、Twitterで流れてきた素敵なイラストを共有する(キモい)Discordサーバーがあるんですが、これAIイラストじゃね・・・?っていちいち疑ってかかるのがとても馬鹿らしいんですよね。嫌な世の中になりました。なので、自動で検知してくれるbotを作ってみました。
結果的に誤検知が多く、実用的ではないと判断したので運用を止めてしまいましたが、備忘録として書いておきます。
botの作成
Discordのbot自体は簡単に作成できました。
こちらの方が記事にしている内容をそのまま真似して、雛形をJavaScriptで書き換えるだけです。
https://note.com/exteoi/n/n00342a623c93
Glitch上のプログラムに対して、Google App Scriptから1分置きにチクチク通信してスリープしないように維持させる仕組みなので、サーバーの知識がいらないのはありがたかった。
仕様
discord.jsを使えば簡単にサーバー内のチャットに反応して、それに応じたプログラムを実行することができます。
Twitter上のイラストを自動で取得したいので、チャットに"fixupx.com"が含まれる場合に推論を実行するようにしました。
"fixupx.com"は、Embedが表示されない"x.com"を修正するためのリンクです。
https://github.com/FxEmbed/FxEmbed
https://note.com/kinoko1216/n/n0c103a86ce00
また、複数の画像を一枚に結合して表示する機能もあるので、サーバー内ではこちらを主に使っています。
AIイラストの推論には、sightengineのAPIを利用しています。
sightengineは画像や動画等に対して暴力的か、ヌードが含まれているか、AI生成か、など様々な分析を提供するサービスです。今回はこのAI生成かどうかを判断するAPIを使っています。
毎日トークンは回復するので、複数のサーバーで動かさない限りは無料で運用可能です。
テスト
ひとまず、画像の直リンクからAPIが実際に利用可能か確かめました。
いくつか試してきちんと動いたので、Twitterのリンク(fixupx.com)から画像を抽出するプログラムを作成して動作させてみました。
ついでに"fixupx.com"に反応して推論を実行し、確率が90%を超えた場合にチャットで指摘するように実装しました。
結果
ここまで順調に進んだんですが、実際に運用してみると誤検知が多くて普通に邪魔になっちゃったんですよね。昔から活動してるイラストレーターの絵も検出したり、そら100%判別できるわけがないので仕方ないんですが、AIイラストじゃね・・・?っていう疑いよりも煩わしく感じたのでbotは一時的に停止しました。
次の日にもう少しだけいじろうとしたら、twitter側の仕様変更か、リンクから画像の取得するプログラムが動かなくなってしまったので、モチベーション的にこの試みは1日で終わりを迎えました。チャンチャン