1P by GN⁺ 3시간전 | ★ favorite | 댓글 1개
  • Remove-AI-Watermarks는 Google Gemini(Nano Banana), ChatGPT/DALL-E, Stable Diffusion, Adobe Firefly, Midjourney 등에서 생성된 이미지의 보이는 워터마크, 보이지 않는 워터마크, AI 생성 메타데이터를 한 번에 처리하는 CLI와 Python 라이브러리임
  • 보이는 워터마크 제거는 Gemini/Nano Banana의 sparkle 로고를 대상으로 하며, 알려진 알파 맵을 이용한 역 알파 블렌딩과 그래디언트 마스크 인페인팅으로 처리되고 이미지당 약 0.05초이며 GPU가 필요 없음
  • 보이지 않는 워터마크 제거는 SynthID, StableSignature, TreeRing 같은 픽셀·주파수 영역 패턴을 확산 기반 재생성으로 약화시키는 방식이며, 기본 프로필은 SDXL과 약 1024px 네이티브 파이프라인을 사용함
  • 메타데이터 정리는 EXIF, PNG text chunks, XMP DigitalSourceType, C2PA Content Credentials를 대상으로 하며, Instagram, Facebook, X(Twitter)의 “Made with AI” 라벨을 유발하는 AI 관련 필드를 제거하고 Author, Copyright, Title 같은 표준 메타데이터는 보존함
  • 지원 범위는 Google Gemini/Nano Banana/Gemini 3 Pro의 sparkle 로고·SynthID·C2PA/EXIF, OpenAI DALL-E 3/ChatGPT의 C2PA, Stable Diffusion의 PNG text chunks와 스테가노그래픽 워터마크, Adobe Firefly의 Content Credentials, Midjourney의 EXIF/XMP 등을 포함함
  • Smart Face Protection은 확산 처리 전에 YOLO로 사람을 감지해 얼굴을 추출하고, 처리 후 원본 얼굴을 부드러운 타원 마스크로 다시 블렌딩해 얼굴 특징 왜곡을 줄이는 기능임
  • Analog Humanizer는 선택적으로 필름 그레인과 색수차를 추가해 출력이 화면을 촬영한 사진처럼 보이게 만들며, AI 이미지 분류기를 우회하기 위한 기능으로 설명됨
  • 설치는 pipx install git+https://github.com/wiltodelta/remove-ai-watermarks.git 또는 uv tool install git+https://github.com/wiltodelta/remove-ai-watermarks.git가 권장되며, 기본 설치는 보이는 워터마크 제거와 메타데이터 제거를 포함함
  • 요구사항은 Python 3.10+ 이며, 보이는 워터마크 제거와 메타데이터 처리는 CPU만으로 가능하고, 보이지 않는 워터마크 제거는 CUDA 또는 MPS GPU가 권장되지만 CPU에서도 느리게 동작함
  • 보이지 않는 워터마크 제거는 첫 실행 시 약 2GB 모델을 자동 다운로드하고, 장치는 CUDA(Linux/Windows) > MPS(macOS) > CPU 순서로 자동 감지되며 --device로 지정 가능함
  • CLI는 remove-ai-watermarks all image.png -o clean.png, 디렉터리 일괄 처리는 remove-ai-watermarks batch ./images/ --mode all처럼 사용하며, visible, invisible, metadata 하위 명령도 제공함
  • Python API는 GeminiEngine으로 워터마크 감지와 제거를 수행하고, has_ai_metadata, remove_ai_metadata로 이미지의 AI 메타데이터 확인과 제거를 처리할 수 있음
  • 로드맵에는 SynthID-Image v2 자동 회귀 테스트, AVIF/HEIF/JPEG-XL 내부 EXIF/XMP 제거 한계, 별도 패키지로 계획된 비디오 파이프라인이 포함되며, Nightshade/Glaze/PhotoGuard 제거는 예술가 보호를 공격하는 범위로 간주해 지원하지 않음
  • 법적 섹션은 AI 생성 출처 표시가 여러 관할권에서 규제되고 있으며, 출처 정보를 속일 의도로 제거하는 행위가 법률·DMCA·플랫폼 약관을 위반할 수 있고 사용자가 준수 책임을 진다고 명시함
  • 위협 모델은 이미 배포된 AI 이미지가 자동 감지 시스템과 “Made with AI” 라벨에 대응하도록 돕는 데 초점이 있으며, 원본 파일이 생성자 계정이나 Google 시스템을 거쳤다면 서버 측 기록까지 익명화하지는 못한다고 경고함

댓글과 토론

Hacker News 의견들
  • SynthID와 OpenAI에 관한 다른 스레드의 댓글이 과소평가됐는데, 이 사안에서 해커 정신이 무엇이어야 하는지 잘 포착한다고 봄
    우리는 사생활 보호를 중시하므로, 모든 디지털 행동에 바코드를 찍는 도구를 받아들여서는 안 됨. “아직 그렇게 하지는 않는다”는 반박도 별로 설득력 없음

    • 워터마크를 제거하려고 시도하는 도구를 만드는 건, 대기업이 결국 이길 군비 경쟁 때문에 실패할 가능성이 크고, 암묵적으로 바코드를 받아들이는 셈임
      해커 정신은 무엇보다도 기업에 의존하지 않고 오픈소스 모델을 로컬에서 실행하는 데 있어야 함
    • 진실이라는 개념을 맹목적으로 파괴하는 걸 받아들이는 것도 해커 정신이어서는 안 됨
    • EU에서 쓰이는 소프트웨어의 AI 생성 이미지에는 AI 투명성 규제의 일부로 워터마킹이 이미 요구되거나 곧 요구될 가능성이 높아 보임
    • 권력을 가진 사람들이 편집증적이고 어두운 성격 특성을 지녔을 때 이런 일이 벌어짐
      자기 권력을 위협하는 사람을 잡아내고 응징할 수단을 원하게 됨
    • “모든 디지털 행동”이 아니라, 그들에게 만들어 달라고 요청한 사진에 붙는 것임
      사생활 보호가 중요하면 로컬 모델을 쓰면 됨
  • 뭔가가 AI라는 명확한 표시가 있으면, 그 출처에서 나온 다른 것들도 전부 무시할 수 있어서 오히려 좋다고 봄

    • 문제는 그 표시가 애초에 명확하지 않았다는 데 있음
      이 도구는 그 사실을 사람들에게 보여주는 좋은 방법임
    • 누군가 마음에 들지 않는 일을 하고 있다면, 그 사람이 내가 선호하는 방식으로 해줄 거라고 기대하기는 어려움
    • 여기서 제거되는 표식이, 사진 편집기에서 AI 도구로 사진을 살짝 수정했을 때 붙는 표식과 같거나 비슷한 것인지 궁금함
      예를 들어 사진 편집기에서 더 복잡한 객체 제거를 했을 때 같은 경우임
  • 이 글이 바로 OpenAI Adopts SynthID Watermarks 글의 한 칸 위에 있는 게 재미있음

  • 훔친 저작권 자료로 학습한 데이터에서 생성된 이미지에 워터마크를 붙이는 건, 진짜인지 아닌지 가려내려는 이유는 이해되지만 뭔가 잘못된 느낌이 듦

  • Gemini의 경우 이 설명은 조금 오해를 부름. 제대로 제거되는 건 보이는 워터마크뿐임
    SynthID를 제거하려면 SDXL로 낮은 잡음 수준에서 이미지를 다시 생성해야 하는데, 그러면 작은 디테일이 많이 망가질 가능성이 크고 고해상도에서는 제대로 동작하지 않을 것임. NB2와 GPT Image 2는 최대 4K 이미지 출력을 지원함

    • Nano Banana 2는 기본적으로 1K 해상도(1024x1024)만 지원함
      그 이상은 업스케일링이라 SDXL과 비슷함. GPT Image 2는 기본적으로 4K를 지원하지만 아직 실험적임
    • SDXL이 몇 년이 지난 지금도 최고의 로컬 이미지 모델이라면 꽤 슬픈 일임
  • Gemini 워터마크를 제거하려면 개발자 도구를 열고 watermark로 가는 HTTP 요청을 차단하면 됨
    클라이언트에서 로고를 오버레이하는 방식임

  • “위협 모델이 맞는 사용 사례: 거짓 양성인 ‘AI 생성’ 라벨로부터 예술이나 역사 기록을 보존하는 경우”라는 설명은 납득하기 어려움
    AI로 이미지를 생성하는 게 이와 무슨 관련이 있는지 모르겠음. 이미지 생성기는 자신이 만들지 않은 것에 워터마크를 삽입할 수 없고, README가 말하듯 특정 세션 ID까지 추적할 만큼 충실도가 높은 워터마크라면 사람이 만든 예술에 거짓 양성 워터마크가 생길 가능성도 매우 낮아 보임. 게다가 워터마크를 지우기 위한 이미지 수정은 “보존”하려는 대상 자체를 필연적으로 바꿔버림
    더 읽어볼수록 README의 사용 사례는 헛소리이고, 실제 목적은 소셜 미디어에서 AI 생성 라벨을 우회해 AI 쓰레기 이미지를 올리게 해주는 도구라는 확신이 듦

    • 저장소의 정당화가 틀렸다는 데는 대체로 동의하지만, “이미지 생성기는 자신이 만들지 않은 것에 워터마크를 삽입할 수 없다”는 부분은 다르게 봄
      실제 이미지를 가져와 Gemini나 ChatGPT에 아주 작은 부분만 수정해 달라고 하는 건 매우 쉬움. 조명이나 그림자처럼 사소한 수정도 가능하고, 그렇게 나온 이미지는 종종 해당 워터마킹 도구에 의해 감지됨. 이런 식으로 어떤 실제 이미지든 쉽게 AI 생성 이미지처럼 제시할 수 있음
  • 이 특정 프로젝트에 대한 호불호와 무관하게, 앞으로의 길은 모든 AI 생성물에 워터마크를 붙이려는 시도보다 비AI 자원의 진위 증명에 있다고 봄

    • “인증된” 카메라를 아주 좋은 화면에 대고, 화면에 표시할 수 있는 무엇이든 찍으면 확실히 진짜인 사진이 되어버리니 해결하기 꽤 어려운 문제임
  • 워터마킹은 방식이 비밀일 때만 제대로 동작함
    고주파 잡음에 암호문을 넣는 건 오래된 방식임. 생성형 모델 영역에서는 생성의 유연성을 활용해 거시 구조 안에 인코딩하는 쪽이 훨씬 흥미로울 것임

  • 그냥 오픈소스 모델을 쓰면 안 되나?