주요 콘텐츠로 건너뛰기
AI 튜토리얼

xxd-strip-ai-meta로 이미지의 AI 출처 표시 및 메타데이터 일괄 정리

이 튜토리얼에서는 xxd-strip-ai-meta를 설치하고 사용하는 방법을 소개합니다. 이미지에서 C2PA, Content Credentials, OpenAI, gpt-image 및 일반 메타데이터를 일괄 정리하면서 ICC 색상 프로필과 수정 시간을 유지할 수 있습니다.

xxd-strip-ai-meta로 이미지 AI 출처 표시 및 메타데이터 정리

프로젝트 소개

xxd-strip-ai-meta는 ExifTool 기반의 이미지 메타데이터 정리 도구입니다. 독립적인 명령줄 프로그램으로 사용할 수 있으며 AI Agent Skill로 설치할 수도 있습니다. 로컬 이미지를 일괄 처리하여 지원되는 C2PA, Content Credentials, OpenAI, gpt-image 출처 정보와 EXIF, XMP, IPTC, 주석 등의 메타데이터를 정리합니다.

이 도구는 기본적으로 원본 파일을 직접 수정하지만 이미지 픽셀을 디코딩하거나 다시 인코딩하지 않습니다. ICC 색상 프로필과 파일 수정 시간을 유지하므로 개인정보 보호, 내부 자료 처리 및 메타데이터 정리에 적합합니다.

사용 범위: 이 도구는 메타데이터 정리 도구입니다. 화면에 눈에 보이는 워터마크를 삭제할 수 없으며, 픽셀 수준의 보이지 않는 워터마크, 플랫폼 지문 또는 서버 측 기록이 제거된다고 보장할 수도 없습니다. 이미지 출처에 대한 다른 사람의 판단을 오도하는 데 사용하지 마세요.

핵심 기능

  • PNG, JPEG, WebP, TIFF, HEIC, HEIF 및 AVIF 이미지를 재귀적으로 검색합니다.
  • 지원되는 AI 출처 정보와 EXIF, XMP, IPTC, 주석 등의 메타데이터를 정리합니다.
  • 기본적으로 ICC 색상 프로필을 유지하여 색상 표시가 변경될 위험을 줄입니다.
  • 파일 수정 시간을 유지하며 이미지 픽셀을 디코딩하거나 다시 인코딩하지 않습니다.
  • 여러 파일과 디렉터리를 동시에 입력할 수 있으며, 겹치는 입력으로 인해 중복된 항목이 생기면 자동으로 제거합니다.
  • 숨김 하위 디렉터리와 일반적인 캐시 디렉터리를 건너뜁니다.
  • 확장자와 파일 헤더가 일치하지 않고 식별된 파일은 기본적으로 건너뜁니다.
  • 미리 보기, 원본 파일 백업, 병렬 일괄 처리, 로그, 백그라운드 실행 및 정리 후 검증을 지원합니다.

구체적인 형식의 메타데이터 쓰기 기능은 ExifTool 및 해당 파일 형식에 따라 달라집니다. 이 도구는 로컬 파일 또는 디렉터리만 허용하며 원격 링크와 압축 파일은 직접 처리하지 않습니다.

설치 조건

프로젝트를 실행하려면 Python 3.10 이상과 시스템 PATH에 추가된 ExifTool이 필요합니다. 프로젝트 자체에는 타사 Python 의존성이 없습니다.

1. ExifTool 설치

macOS 사용자는 Homebrew로 설치할 수 있습니다.

brew install exiftool

Debian 또는 Ubuntu 사용자는 시스템 패키지 관리자로 설치할 수 있습니다.

sudo apt install libimage-exiftool-perl

Windows 사용자는 ExifTool 공식 웹사이트에서 다운로드하여 설치한 다음, 실행 파일이 있는 디렉터리가 PATH에 추가되어 있는지 확인하세요.

2. 실행 환경 확인

python3 --version
exiftool -ver

Python 버전은 3.10 이상이어야 합니다. Windows 환경에서는 Python 명령이 python일 수 있으므로 이후 예시의 python3을 그에 맞게 바꾸세요.

3. 프로젝트 클론

git clone https://github.com/nevertoday/xxd-strip-ai-meta.git
cd xxd-strip-ai-meta

이후의 모든 명령은 현재 디렉터리가 저장소 루트 디렉터리라고 가정합니다.

기본 사용 절차

첫 번째 단계: 처리할 파일 미리 보기

기본 동작은 원본 파일을 직접 수정하므로 처음 사용할 때는 먼저 --dry-run을 사용해야 합니다. 이 매개변수는 파일만 나열하고 정리를 실행하지 않습니다.

python3 scripts/clean_image_provenance.py /path/to/images --dry-run

출력을 확인하여 검색 범위에 처리해서는 안 되는 이미지가 없는지 확인하세요. 로그에 파일이 건너뛰어졌거나 경로가 존재하지 않는다는 메시지가 표시되면 먼저 해당 문제를 해결해야 합니다.

두 번째 단계: 백업을 유지한 채 정리

파일 목록에 문제가 없는 것을 확인한 후, 처음 정식으로 실행할 때는 --backup을 추가하는 것이 좋습니다.

python3 scripts/clean_image_provenance.py /path/to/images --backup

ExifTool은 *_original이라는 이름의 원본 파일 백업을 보존합니다. 처리 결과가 예상과 일치하는지 확인한 다음 백업을 어떻게 관리할지 직접 결정하세요.

세 번째 단계: 파일과 디렉터리 혼합 처리

스크립트는 여러 로컬 파일과 디렉터리를 한 번에 입력할 수 있습니다.

python3 scripts/clean_image_provenance.py \
  /path/to/a.png \
  /path/to/folder-a \
  /path/to/folder-b

디렉터리는 재귀적으로 검색됩니다. 입력 경로가 서로 겹치면 도구가 자동으로 중복을 제거하여 동일한 파일이 겹치는 경로로 인해 여러 번 처리되지 않도록 합니다.

자주 사용하는 매개변수

  • --dry-run: 파일만 미리 보고 수정하지 않습니다.
  • --backup: ExifTool이 생성한 원본 파일 백업을 보존합니다.
  • --jobs 5: 병렬 처리 배치 수를 설정합니다. 기본값은 5이며, 시스템 부하를 낮추려면 1로 설정할 수 있습니다.
  • --chunk-size 100: 배치당 처리할 파일 수를 설정합니다. 기본값은 100입니다.
  • --log-file PATH: 로그를 지정한 경로에 기록합니다.
  • --background: 작업을 백그라운드에서 시작하고 작업 중지 및 로그 확인에 필요한 명령을 출력합니다. POSIX 셸에 적합합니다.
  • --drop-color-profile: ICC 색상 프로필도 삭제하지만 이미지의 색상 표시가 영향을 받을 수 있습니다.
  • --no-verify: 정리 후 메타데이터의 출처 표시 검사를 건너뜁니다.

대규모 일괄 작업

백그라운드 실행

POSIX 셸을 지원하는 시스템에서는 백그라운드 모드로 오래 걸리는 작업을 실행할 수 있습니다.

python3 scripts/clean_image_provenance.py /path/to/images --background

명령을 시작하면 작업 중지 및 로그 확인 명령이 출력됩니다. 이후 작업을 모니터링하거나 중지할 수 있도록 이 안내를 보관하세요.

병렬 처리와 배치 크기 제어

기본값은 5개의 병렬 배치이며 배치당 최대 100개 파일을 처리합니다. 장치 리소스가 제한적이라면 병렬 처리 수를 1로 낮출 수 있습니다.

python3 scripts/clean_image_provenance.py /path/to/images \
  --jobs 1 \
  --chunk-size 100 \
  --log-file /path/to/clean-image-meta.log

로그는 정리 실패뿐 아니라 건너뛴 파일과 존재하지 않는 입력 경로를 확인하는 데도 사용해야 합니다. 종료 코드가 0이라고 해서 반드시 이미지가 처리되었다는 뜻은 아니며, 파일을 찾지 못했다는 의미일 수도 있습니다.

검증과 종료 코드

기본적으로 스크립트는 정리 후 ExifTool 출력에 관련 출처 키워드가 남아 있는지 확인합니다. 이 검증은 메타데이터 표시를 확인하기 위한 것일 뿐, 일반적인 워터마크 탐지나 픽셀 수준의 보이지 않는 표시 존재 여부 확인 기능이 아닙니다.

  • 종료 코드 0: 정리 실패 또는 잔여 항목이 보고되지 않았습니다. 파일을 전혀 찾지 못했을 수도 있습니다.
  • 종료 코드 1: 정리 실패가 발생했습니다.
  • 종료 코드 2: 잔여 표시가 발견되었습니다.

특별한 이유로 정리 후 검증을 실행할 필요가 없다면 다음 명령을 사용하세요.

python3 scripts/clean_image_provenance.py /path/to/images --no-verify

검증을 건너뛰면 도구는 위의 출처 키워드 검사를 수행하지 않으므로 로그와 다른 검사 방법을 함께 사용하여 결과를 확인해야 합니다.

고급 사용 권장 사항

더 안정적인 처리 순서 수립

  1. 먼저 대상 경로에 --dry-run을 실행하여 검색 범위를 확인합니다.
  2. 처음 정식으로 실행할 때 --backup을 사용하여 복구 가능한 원본 파일을 보존합니다.
  3. 대규모 작업에는 --log-file을 지정하여 실패, 건너뛴 파일 및 누락된 파일을 쉽게 확인합니다.
  4. 리소스가 부족하면 --jobs를 1로 낮춘 뒤 환경에 따라 --chunk-size를 조정합니다.
  5. 종료 코드로 실패 또는 잔여 항목의 존재 여부를 판단하되 로그 내용도 반드시 확인합니다.
  6. 이미지 뷰어로 처리 후 색상과 사용 가능 여부를 확인한 다음 백업 파일을 관리합니다.

ICC 색상 프로필 삭제 시 주의

기본적으로 ICC 프로필을 유지하는 이유는 이미지의 색상 표시를 유지하기 위해서입니다. 색상 프로필도 삭제해야 한다면 다음 옵션을 추가할 수 있습니다.

python3 scripts/clean_image_provenance.py /path/to/images \
  --backup \
  --drop-color-profile

--drop-color-profile은 소프트웨어나 장치에 따라 색상 표현을 바꿀 수 있으므로 먼저 소량의 복사본으로 테스트해야 합니다.

형식 제한 이해

스크립트는 지원되는 확장자의 파일을 검색하지만, 특정 형식에 성공적으로 쓸 수 있는지는 설치된 ExifTool 버전과 해당 파일 형식 자체에 따라 달라집니다. 실패가 발생하면 확장자만으로 호환성을 판단하지 말고 로그와 ExifTool 출력을 확인하세요.

AI Agent Skill로 설치

프로젝트를 AI Agent의 Skill 디렉터리에 넣을 수도 있습니다. Claude Code를 예로 들면 다음과 같습니다.

git clone https://github.com/nevertoday/xxd-strip-ai-meta.git \
  ~/.claude/skills/xxd-strip-ai-meta

대상 위치에 같은 이름의 디렉터리가 이미 있다면 먼저 해당 디렉터리를 백업하거나 다른 설치 위치를 사용하세요. Skill의 진입점 파일은 SKILL.md입니다. Agent는 설치 디렉터리에서 스크립트를 실행하거나, 먼저 스크립트의 절대 경로를 확인하여 사용해야 합니다.

맺음말

xxd-strip-ai-meta는 타사 Python 패키지 없이 일괄 메타데이터 정리 작업을 수행할 수 있습니다. 실제로 사용할 때는 “먼저 미리 보기, 다음 백업, 그 후 정리, 마지막으로 로그 확인” 순서를 따르고, 메타데이터 정리와 보이는 워터마크 삭제 및 픽셀 수준 표시 탐지를 명확히 구분하는 것이 좋습니다. 프로젝트는 MIT 라이선스를 사용합니다. ExifTool은 별도로 설치하는 의존성이며 자체 라이선스를 따릅니다.