AI 画像検出は嘘発見器ではありません。答える問いはもっと狭いです。この静止画は、最近の生成モデルで作られた、または大きく書き換えられたように見えるか。Lumenfix の AI 画像検出 はその一式をブラウザで実行します。ファイルはアップロードされません。「未検出」は「実写」ではありません。
ファイルをタブに残す理由
多くの検出サービスは画素をデータセンターに送ります。プレス向けなら構いません。パスポート、医療写真、他人の未公開原版では使えません。Lumenfix の検出はサーバー費用がほぼゼロで、プライバシー自体が製品です。DevTools に出るべきなのはモデルと WASM のダウンロードであり、JPEG のアップロードではありません。
代償は精度を正直に書くことです。人手レビュー付きのホスト型は、難しいケースで約 45 MB の Vision Transformer に勝ちます。ページに出している目安は、最近の生成モデルで約 85–90%、スクリーンショット、再圧縮、新しいモデルでは下がります。
第 1 層:確定的な来歴
この層では分類器をダウンロードしません。
C2PA(@contentauth/c2pa-web)はマニフェストがあれば読みます。生成器や編集ソフトが署名していれば、製品名と検証状態が見えることが多いです。指名モデルで作ったと書く有効なマニフェストは、このページでいちばん事実に近い結果です。それを出し、分類器のほうが賢いふりはしません。
メタデータ探査は、実際に残る痕跡を見ます。PNG 内の Automatic1111 / ComfyUI テキスト、Midjourney XMP、IPTC DigitalSourceType=trainedAlgorithmicMedia、一部のアニメ系チェックポイントが使う NovelAI 風ステガノグラフィ。当たれば「既知のツールチェーン由来」として高い確度で扱います。文字列が無いことは何も意味しません。多くの生成器は消します。
マニフェストを消したいなら、製品を間違えています。Lumenfix は C2PA も SynthID も剥がしません。検出は読み取り専用です。
第 2 層:Community Forensics 分類器
確定層が静かなら、Sieve の v0.14 Community Forensics ViT-S/16(w5810_best_fp16.onnx、MIT)を読みます。SHA は固定です。重みは自前ホストで、GitHub を直リンクしません。
前処理は Sieve の offscreen.js に合わせます。1:1 デコード、Pillow 風三角リサンプル、短辺 440、中央 384 クロップ、ImageNet の平均と標準偏差、NCHW float32。ランタイムは onnxruntime-web 1.22。実 GPU アダプタがあるときだけ WebGPU を使い、セッション作成後に固定入力を WASM と比較し、logit 差が 0.5 を超えたら戻します。?wasm=1 で WASM 固定もできます。
校正は p = sigmoid(logit + 0.2) です。0.65 以上は AI、0.25–0.65 は不明、それ未満は実写っぽい、とします。法廷基準ではありません。比較できる公開の動作点です。
ゲートが重要です。20 ピクセルのアイコンは拒否します。ベタ塗りとノイズはスコアしません。強い JPEG ブロックや典型的な拡大痕跡は、「不明 — 再圧縮または拡大されたファイル」にし、偽の信頼バーは出しません。
処理は Web Worker です。初回は約 45 MB をダウンロードし、その後は Cache Storage です。だから LCP は保てます。ヒーローは文案とアップロードであり、モデルではありません。
第 3 層:鑑定は添付
エラーレベル分析、ラプラシアンノイズ、EXIF 要約(exifr)は追加情報であり、判定ではありません。ELA は読み過ぎやすいです。スクリーンショットのスクリーンショットはクリスマスツリーのように光りますが、画面を撮った実写のこともあります。パネルは「なぜ処理済みに見えるか」を見せるためで、弱い分類器スコアを取り繕うためではありません。
このページを欺くもの
スクリーンショット。SNS の再圧縮。印刷してスキャン。先週出た生成器。スマホメーカーの「AI 補正」スライダーを通した実写。混ぜると誤るので、バナーは未検出 ≠ 実写と書きます。
カメラ原版だと分かっていて直したいなら、写真補正 か 画像拡大 を使います。そちらは有料モデルを呼ぶので、意図してアップロードします。検出と混ぜないでください。
透かし検出との違い
SynthID などの不可視透かしはベンダー固有です。非公式の読み取りも破壊も出しません。C2PA があれば C2PA を読みます。なければメタデータと分類器です。今版はそれだけです。
使い方
見知らぬ人から静止画が来て、共有前に第二意見が欲しいときに使います。文字を消す 前に、字が生成かどうかを知りたいときも使えます。争議の証拠にしないでください。サムネイルでは測らないでください。
3 層が食い違うときは、署名マニフェスト、具体的なツールチェーン文字列、校正スコア、ELA 画像の順です。
他社と比べるなら、避けられがちな 3 問を聞いてください。画素をアップロードするか。チェックポイントと前処理は何か。64 ピクセルのアイコンと「スクショのスクショ」はどうなるか。Lumenfix はページとこの記事に書いてあります。繰り返せない測定に価値はありません。
再現性のために ONNX SHA を固定し、Sieve のリサンプルをコピーし、drawImage に任せません。前処理が 1 ピクセルずれると logit が動きます。apps/web/scripts/detector-parity.py は、同じ重みで Python 基準とブラウザを比べるためです。docs/bench/detector/ に実写と生成の組を置けば、0.65 のどちら側に着くかが見えます。
人事や法務は対象外です。候補者のポートフォリオは人が判断します。検出器が言えるのは ComfyUI の塊があったことまでです。誠実かは分かりません。スコアを不採用メールに貼らないでください。
プロダクトとしては “AI image detector” で流入し、補正と拡大へつなぎます。文案は控えめでなければなりません。精度を盛りすぎると、1 週間の被リンクと 1 年の反証スクショになります。
モバイルの初回は Wi‑Fi を使ってください。45 MB は以後キャッシュされますが、モバイル回線の初回はつらいです。ページにもそう書いてあります。Cache Storage が残っていれば、再訪で重みを再取得しません。
検出はローカル、層分け、意図して限定です。役に立つのは一つの百分率ではなく、ファイルに実際に何が入っていたかの一覧です。