GitHub에 remove-ai-watermarks라는 이름으로 게시된 저장소는 대형 생성형 AI (Generative AI) 플랫폼이 생성한 이미지에 찍는 가시적 및 비가시적 워터마크를 단 하나의 명령어로 제거하는 Python 기반 CLI 및 라이브러리를 제공합니다. 이 도구는 Google Gemini (Nano Banana)의 가시적인 스파클 (sparkle), 두 가지 버전의 SynthID, C2PA Content Credentials, EXIF, XMP, 그리고 Instagram, Facebook, X에서 'Made with AI' 라벨을 트리거하는 PNG 텍스트 청크 (text chunks)를 모두 다룹니다. wiltodelta 사용자가 관리하는 이 프로젝트는 이 글을 작성하는 시점에 221개의 스타 (stars)와 20개의 포크 (forks)를 기록하고 있으며, raiw.cc에서 무료 온라인 데모로 제공됩니다. 이 논의가 중요한 이유는 Google, Adobe, Meta, OpenAI가 옹호하는 암호학적 및 지각적 추적 가능성 (traceability)이 정보가 잘 갖춰진 기술적 공격에 어느 정도까지 저항할 수 있는지를 작동하는 코드로 보여주기 때문입니다.
요약 (TL;DR): remove-ai-watermarks는 Gemini, DALL-E, SD, Firefly, Midjourney가 생성한 이미지의 가시적 및 비가시적 워터마크를 제거하는 Python CLI입니다.
- 알려진 알파 맵 (alpha map)을 사용한 역 알파 블렌딩 (reverse alpha blending)을 통해 GPU 없이 이미지당 약 0.05초 만에 Nano Banana의 스파클을 제거합니다.
- SynthID 및 기타 비가시적 워터마크를 위해 1024px 해상도에서 SDXL을 사용한 확산 재생성 (diffusion regeneration)을 수행하며, 강도 (strength) 0.05로 약 50단계를 거칩니다.
- Instagram, Facebook, X에서 'Made with AI' 라벨을 트리거하는 C2PA, EXIF, XMP 및 PNG 텍스트 청크 메타데이터를 제거합니다.
- 분류기 (classifiers)를 피하기 위해 YOLO를 활용한 스마트 얼굴 보호 (Smart Face Protection) 기능과 필름 그레인 (film grain) 및 색수차 (chromatic aberration)를 적용한 아날로그 휴머니저 (Analog Humanizer)를 포함합니다.
- wiltodelta/remove-ai-watermarks 저장소는 221개의 스타를 보유하고 있으며, 동일한 라이브러리를 사용하는 raiw.cc에서 무료 웹 서비스를 제공합니다.
- Gemini 3 Pro의 SynthID v2가 이전 파이프라인에 저항한다는 것을 경험적으로 확인한 후, 2026년 5월에 SD-1.5에서 SDXL로 마이그레이션되었습니다.
이 도구가 정확히 무엇을 하는가? remove-ai-watermarks의 약속은 명확합니다. AI 모델로 생성된 이미지를 입력하면, 현재의 어떤 자동 탐지 시스템도 합성된 것으로 식별할 수 없는 버전을 얻는 것입니다. 이는 세 가지 서로 다른 계층을 동시에 공격해야 함을 의미합니다. 첫 번째 계층은 가시적 워터마크 (visible watermark)입니다. 오늘날 Google만이 이를 체계적으로 적용하고 있는데, Nano Banana와 Gemini 3 Pro가 생성된 각 이미지의 모서리에 찍는 다채로운 색상의 스파클 (sparkle)이 바로 그것입니다. 두 번째는 픽셀 도메인 또는 주파수 도메인의 비가시적 워터마크 (invisible watermark)입니다. DeepMind의 SynthID, Meta의 StableSignature, 그리고 확산 모델 (diffusion models)의 잠재 공간 (latent space)에 존재하는 TreeRing가 이에 해당합니다. 세 번째는 메타데이터 (metadata)입니다. EXIF, XMP 필드, PNG의 텍스트 조각, 그리고 무엇보다도 ChatGPT Images, Adobe Firefly 및 Content Credentials와 호환되는 모델들이 탑재하는 암호화 매니페스트 (cryptographic manifest)인 C2PA가 포함됩니다. 이 CLI는 단 하나의 명령어로 이들을 비활성화하며, 개별적으로 활성화하거나 비활성화할 수 있는 세 개의 독립적인 파이프라인을 체인 형태로 연결합니다. 이 프로젝트는 Gemini, DALL-E 3, ChatGPT Images 2.0, Stable Diffusion (AUTOMATIC1111 및 ComfyUI), Adobe Firefly, Midjourney, StableSignature 및 TreeRing와의 명시적인 호환성을 선언합니다. 도구가 각 이미지에 대해 병렬로 공격하는 세 가지 계층입니다. GPU 없이 Gemini의 스파클을 물리치는 방법: Gemini의 스파클은 단순한 연산인 알파 블렌딩 (alpha blending)을 통해 적용됩니다. 당신이 보는 최종 이미지는 로고와 원본 이미지 사이의 선형 결합이며, 각 픽셀에서 워터마크의 불투명도를 결정하는 알파 채널 (alpha channel)에 의해 가중치가 부여됩니다.
watermarked = α × logo + (1 − α) × original
만약 정확한 알파 맵 (alpha map)과 로고의 외형을 알고 있다면, 이 연산은 단 한 줄의 대수학으로 역전됩니다. remove-ai-watermarks에는 저자가 순수 검은색 배경 위에 Nano Banana 이미지를 생성하여 추출한 알파 맵이 포함되어 있으며, 이는 수학적으로 로고의 기여도를 분리해냅니다.
original = (watermarked − α × logo) / (1 − α)
사소하지 않은 디테일은 바로 위치입니다.
이미지가 크롭 (crop) 또는 리사이즈 (resize)를 거쳤다면 스파클 (sparkle)이 확대되거나 위치가 이동되어 나타날 수 있습니다. 이를 위해 해당 리포지토리 (repo)는 정규화된 상호 상관 (Normalized Cross-Correlation)에 기반한 3단계 탐지기를 구현하여, 다양한 위치와 스케일에서 로고를 검색하고 신뢰 점수를 반환하며, 임계값을 초과하는 경우에만 반전 (inversion)을 적용합니다. 리버스 블렌드 (reverse blend) 이후에는 그래디언트 마스크 인페인팅 (gradient-masked inpainting) 단계를 통해 알고리즘이 로고 경계면에 남기는 잔여 가장자리를 정돈합니다. 발표된 결과에 따르면 GPU 없이 이미지당 0.05초가 소요됩니다. 이는 시스템에서 가장 빠르고 결정론적 (deterministic)인 부분이며, 이미지의 나머지 부분에 지각적 노이즈 (perceptual noise)를 유발하지 않는 유일한 단계입니다. 💭 핵심: 스파클이 반전 가능한 이유는 Google이 공개된 로고를 사용하여 폐쇄형 연산 (closed operation)을 사용하기로 결정했기 때문입니다. 만약 선형 블렌드 (linear blend) 대신 이미지마다 무작위 섭동 (random perturbations)을 가하는 생성형 인페인팅 (generative inpainting)을 적용했다면, 이 도구는 이를 되돌릴 수 없었을 것입니다. 이는 브랜드의 견고함 (robustness)보다 Google 측의 계산 속도를 우선시한 설계 결정입니다.
SynthID 및 보이지 않는 워터마크에 대한 공격
보이지 않는 워터마크 (invisible watermarks)는 별개의 이야기입니다. 2023년 Google DeepMind가 공개하고 Gemini의 모든 이미지에 기본적으로 적용된 SynthID는 오버레이 (overlay)가 아닙니다. 이는 JPEG 압축, 크롭 (cropping), 리사이징 (resizing)에도 견딜 수 있도록 주파수 도메인 (frequency domain)에 분산된 패턴입니다. 공식적인 약속은 Google이 승인한 탐지기가 공격적인 변형 이후에도 이를 읽을 수 있다는 것입니다. 해당 리포지토리의 공격 방식은 간접적이지만 효과적입니다. 패턴을 수동으로 지울 수 없다면, 콘텐츠를 시각적으로 변경하지 않으면서 주파수 서명 (frequency signature)을 파괴할 수 있을 만큼 충분한 노이즈를 가하는 확산 모델 (diffusion model)을 사용하여 이미지 전체를 재생성합니다.
2026년 5월부터 시행되는 기본 파이프라인 (pipeline)은 Stable Diffusion XL을 사용합니다: 이미지 → ~1024px로 크기 조정 (SDXL의 네이티브 해상도) → VAE를 사용하여 잠재 공간 (latent space)으로 인코딩 (encode) → 제어된 노이즈 추가 (순방향 확산 (forward diffusion)) → 디노이즈 (denoise, 약 50단계, 강도 (strength) 0.05) → VAE를 사용하여 픽셀 도메인으로 디코딩 (decode) → 원래 해상도로 업스케일 (upscale). 수치가 중요합니다. 0.05의 강도 (strength)를 사용하면 모델은 잠재 공간 (latent space)에서 각 픽셀을 다시 쓸 수 있을 만큼만 방해하지만, 인지 가능한 콘텐츠를 왜곡할 정도는 아닙니다. 저자는 768px 기반의 SD-1.5를 사용한 이전 파이프라인이 Gemini 3 Pro의 출력물에서 SynthID v2를 이기지 못했으며, SDXL로의 전환은 경험적인 방식이었다고 기록했습니다. 즉, 참조 탐지기 (reference detector)가 재생성된 이미지를 더 이상 표시하지 않을 때까지 테스트를 반복했습니다.
YOLO를 활용한 스마트 얼굴 보호 (Smart Face Protection with YOLO)
확산 (diffusion) 단계는 아무리 부드럽더라도 인간의 얼굴을 변형시키는 경향이 있습니다. 생성 모델 (generative models)은 얼굴에 대해 강력한 사전 확률 (prior)을 가지고 있어, 얼굴 기하학 (facial geometry)을 학습 데이터 세트의 통계적 평균으로 끌어당깁니다. 이 도구는 사전 단계를 통해 이를 해결합니다. YOLO를 실행하여 이미지 내의 사람을 탐지하고, 확산 (diffusion) 전에 얼굴 영역을 추출한 뒤, 나머지 부분을 재생성한 후 부드러운 타원형 마스크 (elliptical mask)를 사용하여 원래의 얼굴을 다시 블렌딩 (blend)합니다.
아날로그 휴머나이저 (Analog Humanizer)
워터마크를 제거하고 나면, 명시적인 표식이 아닌 전역적 통계 특성 (global statistical features)을 통해 AI 이미지를 구별하도록 학습된 분류기 (classifiers) 문제가 남습니다. 선택 사항인 Analog Humanizer 모듈은 결과물이 모니터 화면을 직접 촬영한 사진과 통계적으로 구별할 수 없도록 정밀하게 조정된 필름 그레인 (film grain)과 색수차 (chromatic aberration)를 주입합니다. 이는 디지털 측면에서 메타데이터를 지우기 위해 문서를 복사한 뒤 다시 스캔하는 것과 같습니다. Analog Humanizer는 분류기 (classifiers)를 피하기 위해 정밀하게 조정된 아날로그 노이즈를 추가합니다.
메타데이터와 'Made with AI' 라벨을 제거하는 방법
가장 덜 화려하지만 일상적인 사용 측면에서 아마도 가장 중요한 부분은 메타데이터 스트리핑 (stripping)입니다. Instagram, Facebook, X는 픽셀을 보고 AI를 감지하는 것이 아니라, 파일에 내장된 C2PA 매니페스트 (manifesto), XMP DigitalSourceType 필드 또는 몇 가지 EXIF 태그를 읽습니다. 만약 이 중 하나라도 AI 생성임을 나타내면 'Made with AI' 라벨을 추가합니다. Adobe, Microsoft, The New York Times가 추진하는 이니셔티브인 C2PA는 매니페스트에 암호학적으로 서명하여 진본성을 보장하지만, 매니페스트 자체를 완전히 삭제하는 것을 막지는 못합니다. 이 리포지토리 (repo)는 다음 컨테이너들을 정리합니다:
- PNG 텍스트 청크 (text chunks): Stable Diffusion이 프롬프트 (prompt), 모델 (model), 샘플러 (sampler), 시드 (seed)를 저장하는 곳
- EXIF 및 XMP: Midjourney와 Firefly가 생성 메타데이터를 사용하는 곳
- PNG, JPEG, AVIF, HEIF, JPEG-XL의 C2PA 매니페스트: 연합이 서명된 블록을 삽입하기로 결정한 5가지 컨테이너
매니페스트와 XMP가 없으면 플랫폼은 라벨을 트리거하는 명시적인 신호를 잃게 됩니다. 지각적 워터마크 (perceptual watermarks, SynthID, StableSignature)는 이전 단계의 확산 재생성 (regeneration by diffusion) 과정을 통해 이미 제거되었습니다.
flowchart LR
A["AI 워터마크가 포함된 이미지"] --> B["sparkle의 NCC 검출기"]
B -->|검출 시| C["Alpha reversal + inpainting"]
B -->|미검출 시| D["가시적 단계 건너뛰기"]
C --> E["SDXL 1024px 확산 (Diffusion)"]
D --> E
E --> F["YOLO: 얼굴 보호"]
F --> G["C2PA, EXIF, XMP 제거"]
G --> H["Analog Humanizer (선택 사항)"]
H --> I["깨끗한 이미지"]
CLI를 통한 설치 및 사용
이 프로젝트는 Python 의존성 관리자로 uv를 사용하여 설치를 간소화하고 torch 및 diffusers에서 흔히 발생하는 버전 문제를 줄입니다.
uv가 설치되어 있다면 세 플랫폼 모두에서 명령어가 동일합니다:
Windows (PowerShell), macOS 및 Linux
git clone https://github.com/wiltodelta/remove-ai-watermarks
cd remove-ai-watermarks
uv sync
이미지 기본 클리닝 (Basic cleaning)
uv run remove-ai-watermarks clean entrada.png salida.png
SDXL 전체 프로필을 사용한 배치 처리 (Batch processing)
uv run remove-ai-watermarks batch ./carpeta_entrada ./carpeta_salida --profile sdxl
메타데이터만 제거 (확산(Diffusion) 없이 즉시 실행)
uv run remove-ai-watermarks strip imagen.jpg salida.jpg --metadata-only
--metadata-only 플래그는 단순히 소셜 네트워크의 자동 낙인을 피하는 것이 목적이라면 가장 가볍고 정직한 모드입니다. 이 모드는 이미지를 원본과 픽셀 단위로 동일하게 유지하면서 C2PA 매니페스트(manifests)만 폐기합니다. 확산(Diffusion)을 포함하는 전체 모드는 통계적 탐지기(statistical detectors)까지 무력화하고자 하는 경우를 위해 설계되었습니다.
⚠️ 주의: 이 프로젝트는 허위 정보(disinformation) 생성을 위한 도구로 포지셔닝되지 않습니다. 기술적 논의는 정당하지만, 책임감 있는 사용(학술적 용도, 견고성(robustness) 연구, 손상된 메타데이터를 가진 본인 이미지의 복구 등)은 허위 증거를 조작하거나 허위 정보를 유포하는 용도와는 매우 다릅니다. 저자는 라이선스를 포함하며 사용에 따른 법적 책임을 지지 않습니다.
왜 중요한가: 취약한 인프라로서의 추적 가능성 (Traceability)
remove-ai-watermarks의 공개적이고 기능적인 존재는 업계가 성명서를 통해 종결시키려 했던 논의를 다시 불러일으킵니다. 즉, 워터마크가 AI 생성 콘텐츠의 추적 가능성을 위한 실행 가능한 기술적 솔루션인가 하는 점입니다. 백악관은 2023년 OpenAI, Google, Meta, Microsoft, Anthropic 등과 함께 생성된 콘텐츠에 워터마크를 구현하기 위한 자발적 약속에 서명했습니다. 유럽 연합(EU)은 2024년 AI Act를 통해 합성 콘텐츠의 라벨링을 요구하고 있습니다. Adobe는 암호화 서명(cryptographic signature)을 통해 이 문제를 해결하기 위한 개방형 인프라로 Content Credentials를 출시했습니다.
C2PA는 이제 참조 표준 연합(coalition de referencia)이 되었으며, The New York Times나 BBC와 같은 매체들은 이미 편집 파이프라인(editorial pipelines)에 매니페스트(manifest) 읽기 기능을 통합하고 있습니다. 그 밑바탕에 깔린 가설은 AI로 생성된 이미지가 읽을 수 있는 인장(seal)을 지닌 채 독자들에게 도달할 것이라는 점입니다. 이 도구는 감사 가능한 코드(auditable code)를 통해 보안 및 이미지 처리 분야에서 잘 알려진 세 가지 공격 방식인 역 알파 블렌딩 (reverse alpha blending), 확산 재생성 (regeneration by diffusion), 그리고 메타데이터 제거 (metadata stripping)만으로도 워터마크를 구성하는 세 가지 계층을 무력화하기에 충분하다는 것을 입증합니다. 또한, 가시적인 사례의 경우 GPU 없이도, 새로운 모델을 학습시키지 않고도, 일반적인 하드웨어 (commodity hardware)에서 단 몇 초 만에 이를 수행합니다. 이러한 비대칭성은 구조적입니다. 방어 측은 워터마크가 어떠한 변형에도 살아남도록 만들어야 하는 반면, 공격 측은 워터마크를 깨뜨릴 수 있는 단 한 번의 변형만 있으면 됩니다. SynthID의 학술 저자들은 자신들의 논문에서 이를 인정합니다. 즉, 워터마크는 일상적인 편집에는 견디도록 설계되었을 뿐, 코드에 접근할 수 있는 정보가 있는 적대적 공격 (adversarial attacks)까지 견디도록 설계된 것은 아닙니다.
저널리즘, 소셜 네트워크 및 검증에 미치는 영향
Meta의 'Made with AI' 인장은 회사 측에 따르면 이미 매월 수천만 장의 이미지를 커버하고 있습니다. 바이럴 콘텐츠를 검증해야 하는 뉴스 편집국에 있어 이 인장은 약하지만 유용한 신호입니다. 만약 동기가 있는 공격자가 명령줄 한 줄로 이를 지울 수 있다면, 검증은 다른 신호들에 의존해야 합니다:
- 통계적 포렌식 분석 (Statistical forensic analysis): 임베디드된 워터마크가 아니라 노이즈, 주파수 또는 특정 모델의 아티팩트 (artifacts) 간의 상관관계에 기반한 분석
- 생성 단계뿐만 아니라 원천에서의 서명된 출처 (Signed provenance from origin): 사진작가를 인증하는...