
이미지와 비디오에서 가시적 및 비가시적 AI 워터마크와 출처 메타데이터를 제거합니다. SynthID, C2PA, EXIF, IPTC, XMP 및 일반적인 생성형 AI 마크를 위한 Python 라이브러리 및 CLI입니다.
직접 생성한 이미지와 비디오에서 AI 출처 표시를 제거합니다:
비디오 지원에는 출처 식별, 완전한 가시적 표시+메타데이터 정리, 디렉터리 일괄 처리, 가시적 Sora, Veo, Seedance, Dola, Hailuo, Kling 표시 제거 및 비디오 SynthID 제거를 위한 oracle 인증 VAE 재생성이 포함됩니다.
Python을 설치하거나 로컬에서 확산 모델을 실행하고 싶지 않다면 raiw.cc에서 온라인으로 사용해 보세요.
이 프로젝트는 사용자가 소유한 콘텐츠에 대한 합법적 사용을 위한 것입니다. 스톡 에이전시 미리보기 또는 제3자 유료 콘텐츠를 보호하는 기타 워터마크를 대상으로 하지 않습니다. 범위, 안전 및 법적 고지를 참조하세요.
하위 수준 및 특수 엑스트라에는 pixels, heif, trustmark, migan, lama, diffusion이 포함됩니다. 설치 가이드에 정확한 종속성 구성과 모델 요구 사항이 문서화되어 있습니다.
메타데이터 중심 기본 CLI를 설치합니다:
uv tool install remove-ai-watermarks
이미지를 검사합니다:
remove-ai-watermarks identify image.png
가시적 워터마크 제거를 위해 픽셀 종속성을 설치합니다:
uv tool install --force "remove-ai-watermarks[visible]"
그런 다음 알려진 가시적 표시와 AI 메타데이터를 제거합니다:
remove-ai-watermarks visible image.png -o clean.png
가시적 인페인팅이나 확산을 실행하지 않고 메타데이터를 제거합니다:
remove-ai-watermarks metadata image.png --remove -o clean.png
-o 없이 실행하면 이 명령은 소스 파일을 덮어씁니다.
MP4, MOV, M4V, WebM, MKV, AVI 또는 FLV 파일에서 AI 메타데이터를 검사하거나 제거합니다:
remove-ai-watermarks video metadata input.mp4 --check
remove-ai-watermarks video metadata input.mp4 --remove -o clean.mp4
video metadata 명령은 비디오 또는 오디오 스트림을 트랜스코딩하지 않습니다. 위의 이미지 명령과 달리 -o를 생략하면 <source>_clean을 작성하고 원본을 보존합니다. MP4 및 MOV 검사에는 미디어 페이로드 뒤에 배치된 moov를 포함하여 moov.udta.meta.keys/ilst의 기본 TC260 AIGC 태그가 포함됩니다. MKV 및 WebM 검사는 표준 Segment.Tags.Tag.SimpleTag 배치를 읽습니다. AVI는 LIST/INFO/AIGC를 사용하고 FLV는 script.onMetaData.AIGC를 사용합니다. 비-ISOBMFF 형식은 제거를 위해 스트림 복사로 리먹싱됩니다.
파일을 식별하거나 정리하려면 제품 지향 비디오 경로를 사용하세요:
uv tool install --force "remove-ai-watermarks[video]"
remove-ai-watermarks video identify input.mp4
remove-ai-watermarks video all input.mp4 -o clean.mp4
video all은 안정적인 등록 가시적 표시가 있는 경우 이를 제거하고 항상 검증된 AI 메타데이터를 제거합니다. 두 신호 모두 발견되지 않으면 동일 컨테이너 패스스루를 작성하므로 애플리케이션 호출자는 예측 가능한 단일 출력 계약을 얻습니다. 독점 비가시적 비디오 제거는 기본적으로 제외됩니다. --invisible은 손실이 있는 oracle 인증 비디오 SynthID 프로필을 선택합니다.
동일한 계약으로 디렉터리를 처리합니다:
remove-ai-watermarks video batch ./videos --mode all
지원되는 가시적 비디오 표시를 제거합니다:
remove-ai-watermarks video visible input.mp4 -o clean.mp4
remove-ai-watermarks video visible veo.mp4 --mark veo -o veo_clean.mp4
remove-ai-watermarks video visible seedance.mp4 --mark seedance -o seedance_clean.mp4
remove-ai-watermarks video visible dola.mp4 --mark dola -o dola_clean.mp4
remove-ai-watermarks video visible hailuo.mp4 --mark hailuo -o hailuo_clean.mp4
remove-ai-watermarks video visible kling.mp4 --mark kling -o kling_clean.mp4
이 경로는 픽셀을 변경하기 전에 전체 시퀀스를 스캔합니다. 인접한 프레임에서 안정적인 위치에 반복되는 표시만 허용한 다음 이미지 제거와 동일한 OpenCV, MI-GAN 또는 LaMa 채우기 백엔드를 재사용합니다. 오디오는 재인코딩 없이 복사되며 자연스러운 끝까지 재생됩니다. 비디오 스트림은 픽셀이 변경되므로 트랜스코딩됩니다. 기본적으로 보호된 광학 흐름 패스가 이전에 수용된 채우기를 모션 정렬하고 주변 소스 컨텍스트가 일치할 때만 블렌딩합니다. 비활성화하려면 --no-temporal-consistency를 사용하세요. 인코더는 ffmpeg의 암시적 raw-BGR 기본값에 의존하는 대신 지원되는 8비트 소스 크로마 샘플링, 색상 태그 및 MP4/MOV 트랙 타임스케일을 보존합니다. 가변 프레임 간격은 평균 프레임 레이트로 평탄화되지 않고 타임스탬프가 있는 인메모리 NUT 브리지를 통해 보존됩니다. 0이 아닌 소스 시작 타임스탬프는 복사된 오디오 오프셋과 함께 유지됩니다. 기본 --mark auto는 한 번의 디코드 패스에서 모든 공급업체를 스캔하고 아래 표시된 특이성 순서대로 첫 번째 안정적인 일치 항목을 선택합니다. 감지를 하나의 공급업체로 제한하려면 명시적 표시를 전달하세요. Sora는 움직이는 Sora 2 마스코트와 워드마크를 포함합니다. Veo는 현재 4점 다이아몬드와 레거시 Veo 텍스트를 모두 포함합니다. Seedance는 고정된 박스형 AI 라벨, Dola는 고정된 Dola AI 텍스트, Hailuo는 복합 MINIMAX | hailuo AI 라벨, Kling은 버전 접미사가 있는 오른쪽 하단 KLING AI 라벨을 포함합니다. 완료된 인코딩은 원자적으로 게시됩니다. 안정적인 표시가 발견되지 않으면 출력이 작성되지 않습니다. HDR, PQ/HLG 및 8비트보다 큰 입력은 OpenCV의 8비트 BGR 경계를 통해 조용히 축소되지 않고 인코딩 전에 거부됩니다.
비디오 SynthID를 제거합니다:
uv tool install --force "remove-ai-watermarks[video,diffusion]"
remove-ai-watermarks video invisible input.mp4 -o clean.mp4
이 경로는 시간에 걸쳐 공유되는 단일 잠재 노이즈 필드로 전체 시퀀스를 재생성하고, 전체 오디오를 복사하고, 소스 메타데이터를 제거하고, 완료된 인코딩을 원자적으로 게시합니다. 기본 noise_std=0.15 프로필은 2-캐리어 캘리브레이션과 공개된 8초 Veo oracle 검사를 모두 통과했습니다. Google은 로컬 디코더를 게시하지 않으므로 특히 중요한 파일이나 공급업체 변경 후에는 새로운 공급업체 검사가 유용하지만 제품 결과 상태는 아닙니다.
비가시적 워터마크 제거를 위해 qwen-zimage 엑스트라를 설치하세요. NVIDIA GPU가 필요합니다: 두 프로필 모두 CUDA 전용이며 CPU 또는 MPS 대체 수단이 없습니다.
uv tool install --force "remove-ai-watermarks[qwen-zimage]"
remove-ai-watermarks invisible image.png -o clean.png
로컬 감지기가 비가시적 워터마크를 확인할 수 없지만 이미지가 AI 생성기에서 나온 것을 알고 있다면 --force를 추가하세요:
remove-ai-watermarks invisible image.png -o clean.png --force
Homebrew, uv, 선택적 기능 및 개발 설정은 설치 가이드를 참조하세요.
| 전 | 후 |
|---|---|
![]() | ![]() |
qwen-zimage가 기본 프로필입니다: Canny ControlNet 하의 Qwen-Image-2512 Lightning 패스 후 감지된 얼굴을 SAM 마스킹된 Z-Image로 복구합니다. 대안인 sdxl-zimage는 전역 단계를 SDXL로 교체하고 동일한 얼굴 단계를 유지합니다. 둘 다 CUDA 전용입니다.
uv tool install --force "remove-ai-watermarks[qwen-zimage]"
remove-ai-watermarks invisible image.png -o clean.png --force
이 정확한 출력 파일은 해당 공급업체 검증기로 확인되었습니다. 이 결과는 이 파일들에 적용되며 모든 시드, 이미지 또는 향후 워터마크 버전에는 적용되지 않습니다.
remove-ai-watermarks visible image.png -o clean.png
기본 --mark auto는 등록된 모든 가시적 표시를 확인하고 모든 일치 항목을 제거합니다. 표시가 보이지만 감지기가 놓친 경우 해당 영역을 명시적으로 선택하세요:
remove-ai-watermarks erase image.png \
--region 1640,1930,400,100 \
-o clean.png
--region은 x,y,width,height 형식을 사용하며 반복할 수 있습니다.
visible 엑스트라는 학습된 백엔드가 설치되지 않은 경우 OpenCV 인페인팅을 사용합니다. 더 어려운 배경의 경우 학습된 백엔드 엑스트라에 동일한 픽셀 종속성이 자동으로 포함됩니다:
uv tool install --force "remove-ai-watermarks[migan]"
remove-ai-watermarks visible image.png -o clean.png --backend migan
uv tool install --force "remove-ai-watermarks[lama]"
remove-ai-watermarks visible image.png -o clean.png --backend lama
remove-ai-watermarks invisible image.png -o clean.png \
--cpu-offload --force
CPU 오프로드는 모델 구성 요소를 CPU와 GPU 사이에서 이동하여 CUDA 메모리 압력을 낮추지만 속도는 희생됩니다.
remove-ai-watermarks batch ./images --mode visible
remove-ai-watermarks batch ./images --mode all
가시적 표시 지원에는 다음이 포함됩니다:
메타데이터 및 출처 검사는 C2PA, EXIF, XMP, IPTC, 일반적인 생성기 매개변수, 중국 TC260 AIGC 라벨 및 여러 공급업체별 신호를 포함합니다. 선택적 디코더는 오픈 DWT-DCT 워터마크 및 Adobe TrustMark 지원을 추가합니다.
중요한 로케일 및 감지기 제한을 포함한 정확한 지원 매트릭스는 지원 신호에 있습니다.
가시적 제거는 세 단계로 진행됩니다:
메타데이터 제거는 형식을 고려한 제거를 사용합니다. JPEG 메타데이터 제거는 이미지를 재압축하지 않고 인코딩된 이미지 스캔을 보존합니다. 기본 MP4/MOV TC260 값은 박스 크기나 미디어 오프셋을 변경하지 않고 공란 처리됩니다. 기타 지원 컨테이너는 해당 메타데이터 경로를 사용합니다.
비가시적 제거는 다릅니다. 픽셀 및 주파수 도메인 워터마크를 교란하기 위해 확산 파이프라인을 통해 이미지를 재생성합니다. 이로 인해 이미지가 변경되며 독점 검증기가 모든 출력을 거부할 것이라고 보장할 수 없습니다.
전체 기술 경계는 지원 신호 및 알려진 제한 사항을 참조하세요.
가시적 제거 API에는 remove-ai-watermarks[visible]이 필요합니다.
import remove_ai_watermarks as raiw
result, removed = raiw.remove_visible("watermarked.png", "clean.png")
print(removed)
provenance = raiw.identify_video("input.mp4")
report = raiw.inspect_video_metadata("input.mp4")
complete = raiw.remove_video_all("input.mp4", "clean.mp4")
batch = raiw.remove_video_batch("videos", "videos_clean")
cleaned = raiw.remove_video_metadata("input.mp4")
synthid_cleaned = raiw.remove_video_invisible("input.mp4", "synthid_clean.mp4")
visible = raiw.remove_video_visible("input.mp4", "clean.mp4")
print(visible.mark)
veo = raiw.remove_video_visible("veo.mp4", "veo_clean.mp4", mark="veo")
seedance = raiw.remove_video_visible(
"seedance.mp4",
"seedance_clean.mp4",
mark="seedance",
)
dola = raiw.remove_video_visible("dola.mp4", "dola_clean.mp4", mark="dola")
고수준 API는 파일 경로 또는 BGR NumPy 배열을 허용합니다. 경로 입력의 경우 출처 메타데이터도 읽고 알파를 보존하며 작성된 결과에서 AI 메타데이터를 제거할 수 있습니다.
가시적 제거, 전체 remove_all 및 remove_batch 파이프라인, 출처 검사, 메타데이터 제거 및 확산 사용 방법은 Python API 가이드를 참조하세요.
별도의 ComfyUI Remove AI Watermarks 패키지는 가시적 제거, 감지, 영역 지우기 및 비가시적 제거를 위한 노드를 제공합니다.
Veo 텍스트, Seedance 박스형 AI 라벨, 고정 Dola, Hailuo 및 Kling 라벨을 인식합니다. 이전 Sora Turbo 모서리 소용돌이 또는 해당 공급업체의 미등록 레이아웃은 인식하지 않습니다. 기존 OpenCV 백엔드는 구조화된 배경을 번질 수 있습니다. 복구 품질이 중요한 경우 MI-GAN 또는 LaMa를 사용하세요.identify는 어디서나 실행됩니다.제공된 video invisible 명령은 인증된 noise_std=0.15 프로필을 사용합니다. 동반 연구 하네스 scripts/video_synthid_sweep.py는 매칭된 재인코딩 대조군과 VAE 재생성 후보를 구성하고 검증기 판정을 비워 둡니다:
uv run --extra video --extra diffusion python scripts/video_synthid_sweep.py input.mp4 -o sweep/
출력이 실제로 얼마나 손실되었는지 평가하려면 scripts/video_fidelity_probe.py를 사용하세요: 엔진 자체 PSNR은 리사이즈와 인코딩 전에 측정되므로 전달된 화면을 볼 수 있는 것은 프로브뿐입니다.
uv run --extra video python scripts/video_fidelity_probe.py input.mp4 input_clean.mp4
대조군은 음성 후보가 제거 증거로 간주되기 전에 여전히 SynthID 양성이어야 합니다. 2026-07-29 2-클립 캘리브레이션에서 두 매칭 대조군 모두 Gemini 내장 SynthID 검증기에서 양성이었습니다. 더 강한 후보는 두 캐리어 모두에서 음성이었고, 더 약한 후보는 하나에서 음성이었습니다. 이후 일반 Gemini에게 픽셀 결과를 재해석하도록 요청한 적대적 후속 테스트는 UNAVAILABLE을 반환했습니다. 이 후속 테스트는 검증기 재실행이 아니며 내장 판정을 무효화하지 않습니다. 공개된 8초 Veo 샘플에 대한 2026-07-31 전체 클립 검사에서는 0.10이 여전히 감지되고 0.15는 감지되지 않는 것으로 확인되어 0.15가 현재 인증된 기본값입니다. 재현 가능한 해시와 판정은 data/evaluations/video-synthid-oracle.csv에 있습니다.
문서 색인부터 시작하세요.
연구 노트와 과거 실험은 문서 색인에 별도로 나열되어 있습니다. 과거 결정을 설명하지만 현재 공개 API를 정의하지는 않습니다.
개발 환경을 설치하고 프로젝트 게이트를 실행하세요:
uv sync --frozen --extra dev
bash maintain.sh
문서화된 불변 조건이 있는 하위 시스템을 변경하기 전에 모듈 내부 구조를 참조하세요.
Apache 2.0. Copyright 2025-2026 wiltodelta.
| 목표 | 명령 | GPU |
|---|
| 출처 신호 및 워터마크 찾기 | identify | 아니요 |
| 알려진 가시적 AI 표시 제거 | visible | 아니요 |
| 선택한 영역 지우기 | erase | 아니요 |
| AI 메타데이터 제거 | metadata | 아니요 |
| 지원되는 비디오 출처 식별 | video identify | 아니요 |
| 비디오에서 가시적 표시 및 AI 메타데이터 제거 | video all | 아니요 |
| 비디오에서 AI 메타데이터 제거 | video metadata | 아니요 |
| 비디오에서 등록된 가시적 AI 표시 제거 | video visible | 아니요 |
| 비디오 디렉터리 처리 | video batch | 모드에 따라 다름 |
| 인증된 VAE 프로필로 비디오 SynthID 제거 | video invisible | 권장 |
| 비가시적 워터마크를 교란하기 위해 이미지 재생성 | invisible | 필수 (CUDA) |
| 가시적, 비가시적 및 메타데이터 제거 실행 | all | 권장 |
| 디렉터리 처리 | batch | 모드에 따라 다름 |
| 필요 사항 | 설치 |
|---|
| 메타데이터 검사 및 제거 | remove-ai-watermarks |
| 가시적 감지 및 제거 | remove-ai-watermarks[visible] |
| 가시적 비디오 처리 | remove-ai-watermarks[video] |
| 비디오 SynthID 제거 | remove-ai-watermarks[video,diffusion] |
| Torch 없는 DWT-DCT 감지 | remove-ai-watermarks[detect] |
| 비가시적 이미지 제거 (CUDA 필요) | remove-ai-watermarks[qwen-zimage] |
| 모든 프로덕션 기능 | remove-ai-watermarks[all] |