# Gemini의 SynthID 워터마크를 역공학으로 탐지 및 제거하는 오픈소스

> Clean Markdown view of GeekNews topic #28419. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=28419](https://news.hada.io/topic?id=28419)
- GeekNews Markdown: [https://news.hada.io/topic/28419.md](https://news.hada.io/topic/28419.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-04-12T01:02:31+09:00
- Updated: 2026-04-12T01:02:31+09:00
- Original source: [github.com/aloshdenny](https://github.com/aloshdenny/reverse-SynthID)
- Points: 3
- Comments: 1

## Topic Body

- 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에 전체 코드 공개

## Comments



### Comment 55122

- Author: neo
- Created: 2026-04-12T01:02:32+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47709130) 
- 수백만 픽셀짜리 이미지에 **탐지 불가능한 1비트 워터마크**를 삽입하는 건 그리 어려운 일이 아님  
  Google이 충분히 유능하다고 가정하면, 아마 두 가지 워터마크를 쓸 것 같음 — 하나는 외부에 공개된 느슨한 버전, 다른 하나는 내부용 혹은 **법 집행 요청용 비공개 버전**일 가능성이 높음  
  게다가 Google이라면 생성된 모든 이미지를 (혹은 그 **neural hash**) 계정과 연결해 데이터베이스에 저장할 것 같음
  - 이중 워터마크 전략은 **defensive engineering** 관점에서 매우 합리적임  
    외부 레이어가 뚫릴 걸 전제로 하고, 공개적으로 테스트할 수 없는 두 번째 레이어를 유지하는 건 보안의 기본 원칙임  
    다만 모델이 계속 새로 만들어지고 **비결정적(non-deterministic)** 특성을 가지는데, 이런 상황에서 사용자가 그걸 증명할 수 있을지 궁금함

- 이 리포는 **AI 보조 연구**라기엔 품질이 낮고, Google의 SynthID 탐지기와도 제대로 비교하지 않음  
  사실 LLM의 도움만 받아도 네트워크 요청을 역공학해서 브라우저나 Gemini 없이 SynthID 탐지를 구현할 수 있음. 그게 진짜 **ground truth**가 될 것임
  - HN에서 “이건 어렵지 않다”고 말하는 댓글을 자주 보지만, 정작 **POC나 연구 링크**는 거의 없음  
    또 출처를 공격하거나 “AI가 썼다”고 폄하하는 경우도 많음  
    요즘 HN 커뮤니티가 점점 **AI 도구 혐오**로 변해가는 느낌임

- 오늘 Nano Banana로 생성한 이미지에서 워터마크를 본 것 같음  
  Chrome에서 이미지를 Slack으로 복사했는데, 결과물이 **검은 사각형에 빨간 점**으로만 보였음
  - 나도 비슷한 경험이 있었는데, 나중에 보니 스크린샷 위에 낙서한 점들이 복사된 거였음  
    혹시 그런 실수는 아니었는지 궁금함

- 누군가 결국 이런 걸 만들 거란 건 알았지만, 왜 굳이 **AI 생성 이미지 탐지 수단**을 일부러 없애려 하는지 모르겠음
  - 공격자는 어차피 같은 일을 할 것이고, **보안 취약점 공유**처럼 선의의 연구자들도 알아야 함  
    나쁜 쪽만 알고 있으면 더 위험해짐
  - 이런 도구는 어차피 일부 사람들만 쓸 수 있었지만, 이제는 모두가 그 가능성을 알게 되었음
  - 근본적으로 SynthID는 **불확실한 신호(fuzzy signal)** 임  
    대중은 “워터마크가 없으니 진짜 이미지다” 식의 **이진 논리**를 이해하지 못함  
    결국 AI 워터마킹은 실패할 운명임  
    게다가 과거에도 조작된 미디어에 **보이지 않는 워터마크**를 붙이지 않았음 — 이건 기술보다 철학의 문제임
  - 결국 목적은 **가짜 이미지를 진짜처럼 보이게** 하려는 것임
  - 사실 이런 건 예전부터 가능했음  
    Stable Diffusion에서 **낮은 denoising strength**로 돌리면 워터마크가 거의 사라짐  
    이번 리포는 그보다 덜 파괴적인 방법을 제시한다고 하지만, README의 **AI 작성 흔적**을 보면 신뢰가 안 감

- SynthID는 일부 이미지(특히 **엣지나 텍스트가 많은 영역**)에서 눈에 띄게 보임  
  이 리포의 방법이 그런 부분을 더 자연스럽게 만들 수 있을지 궁금함
  - Nano Banana로 편집을 반복할수록 워터마크가 점점 더 **뚜렷하게 드러나는** 현상이 있음

- README를 보면 **Claude의 흔적**이 너무 명확함  
  테이블 벽이 어긋나 있고, 문장 구조도 Claude 특유의 패턴임
  - 괄호와 쉼표로만 나열하고 “and”를 안 쓰는 것도 Claude의 전형적인 특징임
  - 이건 완전 **유니코드 테이블 대참사**임  
    ASCII 테이블을 흉내 내면서 문자 폭이 제각각이라 줄이 안 맞음  
    심지어 off-by-one 오류도 있음  
    2037년에도 여전히 정렬 안 된 유니코드 테이블을 보고 있을 것 같은 예감임
  - README 내용만 봐도 **Claude가 쓴 것**임이 분명함

- 이 리포는 자기 워터마크 제거 성능을 **자체 탐지기**로만 테스트함  
  정작 Google의 SynthID 앱으로는 검증하지 않아서 의미가 없음

- 프로젝트 설명에는 “AI 생성 콘텐츠를 인간이 만든 것처럼 속이지 말라”고 써 있지만, 실제로는 **워터마크 제거 CLI 도구**를 배포함  
  “aggressive”, “maximum” 같은 설정 이름도 노골적임  
  README는 편집되지 않은 AI 출력처럼 보이고, 내용이 중복되고 구조도 엉성함  
  - V1, V2는 표에만 등장하고 설명이 없음  
  - “Detection Rate: 90%” 같은 수치엔 근거가 없고, “License: Research”는 링크조차 없음  
  - 테스트 이미지 88개뿐이고, **CI나 테스트 스위트도 없음**  
  - 코드 예시도 import 스타일이 두 가지라 하나는 오류를 냄  
  - Google이 SynthID를 바꾸면 코드북이 낡았다는 걸 알 방법도 없음  
  기본 아이디어(해상도 의존적 캐리어, 이미지 간 위상 일관성)는 흥미롭지만, **패키징이 신뢰를 무너뜨림**
  - 동의함. 이런 도구는 **악용 가능성**이 크고, 사회는 AI 생성 콘텐츠를 명확히 구분할 수 있어야 함

- 이미지를 **다운스케일 후 업스케일**하면 워터마크가 사라짐

- 실제로 그렇게 어렵지 않음  
  관련 글은 [deepwalker.xyz 블로그](https://deepwalker.xyz/blog/bypassing-synthid-in-gemini-phot...)에 있음
