AI画像生成技術の進化によって、実写と区別が難しい画像も増えてきました。「この画像はAI生成なのか?」と確認したい場面もあると思います。
オンラインサービスを使う方法もありますが、画像を外部へアップロードしたくない場合は、ローカル環境で動作する判定ツールが便利です。
この記事では、Pythonを使ってローカルPC上でAI生成画像を判定する簡単なサンプルを紹介します。
ローカル判定のメリット
ローカル実行には次のような利点があります。
- 画像を外部サーバーへ送信しない
- オフラインでも動作可能
- 大量の画像をまとめて処理しやすい
- 自分で処理内容をカスタマイズできる
一方で注意点もあります。
AI生成画像判定は「100%正確」ではありません。最近の生成モデルは非常に高品質で、スクリーンショット化や圧縮後の画像では精度が下がることがあります。
そのため、判定結果は「参考情報」として扱うのがおすすめです。
動作環境
今回のサンプルでは以下を使用します。
- Python 3.10以上推奨
- PyTorch
- Transformers
- Pillow
必要ライブラリをインストール
まずは必要なライブラリをインストールします。
pip install torch transformers pillow
環境によってはインストールに少し時間がかかる場合があります。
AI生成画像判定コード
以下のコードを detect.py として保存してください。
from transformers import pipeline
from PIL import Image
# AI生成画像判定モデルを読み込み
detector = pipeline(
"image-classification",
model="umm-maybe/AI-image-detector"
)
# 判定する画像
image_path = "test.jpg"
# 画像読み込み
img = Image.open(image_path)
# 判定実行
results = detector(img)
print("\n判定結果:")
for result in results:
print(
f"{result['label']}: {result['score']:.4f}"
)
# 最も高いスコアを取得
best = max(
results,
key=lambda x: x["score"]
)
print("\n最終判定:")
print(
f"{best['label']} "
f"({best['score']*100:.1f}%)"
)
このコードではAI生成を判別するAIを使っています。モデルは下記となります。
https://huggingface.co/umm-maybe/AI-image-detector
実行方法
ターミナルまたはコマンドプロンプトで以下を実行します。
python detect.py
出力例
例えば以下のような結果が表示されます。
判定結果:
AI-generated: 0.9300
Real: 0.0700
最終判定:
AI-generated (93.0%)
この例では「AI生成画像である可能性が93%」という意味になります。
複数画像をまとめて判定する方法
1枚ずつファイル名を変更するのは面倒なので、フォルダ内の画像をまとめて判定することもできます。
from transformers import pipeline
from PIL import Image
import os
detector = pipeline(
"image-classification",
model="umm-maybe/AI-image-detector"
)
folder = "images"
for file in os.listdir(folder):
if file.lower().endswith(
(".jpg",".jpeg",".png",".webp")
):
path = os.path.join(
folder,
file
)
img = Image.open(path)
result = detector(img)
best = max(
result,
key=lambda x:x["score"]
)
print(
f"{file}"
f" → {best['label']}"
f" ({best['score']*100:.1f}%)"
)
これで images フォルダ内の画像を一括判定できます。
AI生成画像判定の限界
現在のAI判定技術にはいくつかの課題があります。
1. 再圧縮で精度が落ちる
SNSに投稿された画像は自動圧縮されることが多く、生成時の特徴が失われる場合があります。
2. スクリーンショットで判別が難しくなる
画像をスクリーンショット経由で保存すると、元の特徴情報が消えるケースがあります。
3. 最新モデルへの対応が遅れることがある
AI画像生成技術は非常に速いペースで進化しているため、判定モデル側が追いつかないことがあります。
まとめ
Pythonを使えば、AI生成画像判定ツールをローカル環境で簡単に作成できます。
今回のサンプルでは次の流れで実装しました。
- 必要ライブラリをインストール
- 判定モデルを読み込み
- 画像を解析
- AI生成確率を表示
ローカル実行なら画像を外部へ送信せず、安全に判定できます。ただし判定結果は絶対ではないため、必要に応じてメタデータ確認や画像解析と組み合わせて利用すると、より信頼性の高い判断ができます。


