GeminiのSynthIDウォーターマークをリバースエンジニアリングで検出・除去するオープンソース
(github.com/aloshdenny)- GoogleのSynthIDエンコーダー/デコーダーにアクセスせず、純粋な信号処理とスペクトル解析だけでGemini画像の不可視ウォーターマーク構造を復元
- 中核となる発見: SynthIDは解像度ごとに異なる周波数位置へキャリアを挿入し、同一モデル生成画像間で位相テンプレートの一貫性が99.5%以上 - 実質的に固定パターン
- 既存のJPEG圧縮・ノイズ注入方式は画質劣化が大きいが、V3マルチ解像度スペクトルコードブック減算方式によりPSNR 43dB以上を維持しつつ91%の位相一貫性低下を達成
- 解像度別プロファイルをコードブックに保存しておき、入力画像に合わせて自動選択 → FFTドメイン減算 → マルチパス反復で残留ウォーターマークを除去
- Greenチャネルでウォーターマーク信号が最も強く、チャネル別重み付け(G=1.0, R=0.85, B=0.70)を適用して精密に除去
- 検出器は90%の精度でウォーターマークの有無と信頼度を出力し、コードブックベースのマルチスケール解析を使用
- 研究・教育目的のプロジェクトであり、AI生成画像を人間制作と誤認させる用途は禁止
- Pythonで作成され、GitHubで全コードを公開
1件のコメント
Hacker Newsの意見
数百万ピクセル級の画像に検出不可能な1ビットのウォーターマークを埋め込むのは、それほど難しいことではない
Googleが十分に有能だと仮定するなら、おそらく2種類のウォーターマークを使うはず — 1つは外部に公開された緩いバージョン、もう1つは内部用、あるいは法執行機関の要請向けの非公開バージョンである可能性が高い
しかもGoogleなら、生成されたすべての画像を(あるいはそのneural hashを)アカウントと紐づけてデータベースに保存していそうだ
外部レイヤーが破られることを前提にし、公開テストできない第2のレイヤーを維持するのはセキュリティの基本原則だ
ただ、モデルが継続的に新しく作られ、しかも**非決定的(non-deterministic)**な特性を持つ中で、ユーザーがそれを証明できるのかは気になる
このリポジトリはAI支援研究と呼ぶには品質が低く、GoogleのSynthID検出器ともまともに比較していない
実際、LLMの助けだけでもネットワークリクエストをリバースエンジニアリングして、ブラウザやGeminiなしでSynthID検出を実装できるはずだ。それが本当のground truthになるだろう
それに出典を攻撃したり、「AIが書いた」と言ってこき下ろすことも多い
最近のHNコミュニティはますますAIツール嫌悪に傾いている気がする
今日Nano Bananaで生成した画像でウォーターマークを見た気がする
Chromeで画像をSlackにコピーしたら、結果が黒い四角に赤い点としてしか見えなかった
もしかしてそういうミスではなかったのか気になる
誰かが結局こういうものを作るだろうとは分かっていたが、なぜわざわざAI生成画像を検出する手段を意図的になくそうとするのか分からない
悪意ある側だけが知っている方がむしろ危険だ
一般の人は「ウォーターマークがない=本物の画像だ」といった二項対立の論理を理解できない
結局、AIウォーターマーキングは失敗する運命だ
しかも過去にも加工メディアに不可視ウォーターマークは付けてこなかった — これは技術というより哲学の問題だ
Stable Diffusionで低いdenoising strengthで回せばウォーターマークはほぼ消える
今回のリポジトリはそれより破壊の少ない方法を提示していると言うが、READMEのAI生成っぽさを見ると信用できない
SynthIDは一部の画像(特にエッジや文字が多い領域)では目立って見える
このリポジトリの手法がそうした部分をより自然にできるのか気になる
READMEを見るとClaudeの痕跡があまりにも明白だ
テーブルの罫線がずれていて、文の構造もClaude特有のパターンだ
ASCIIテーブルを真似しながら文字幅がバラバラなので列が揃わない
しかもoff-by-oneエラーまである
2037年になっても、まだ揃っていないUnicodeテーブルを見ていそうな気がする
このリポジトリは自分のウォーターマーク除去性能を独自検出器でしかテストしていない
肝心のGoogleのSynthIDアプリでは検証していないので意味がない
プロジェクト説明には「AI生成コンテンツを人間が作ったもののように偽るな」と書いてあるのに、実際にはウォーターマーク除去CLIツールを配布している
「aggressive」「maximum」といった設定名も露骨だ
READMEは未編集のAI出力のように見え、内容は重複し、構成も雑だ
基本アイデア(解像度依存キャリア、画像間の位相一貫性)は興味深いが、パッケージングが信頼を損ねている
画像をダウンスケールしてからアップスケールするとウォーターマークは消える
実際、それほど難しくはない
関連記事はdeepwalker.xyzブログにある