Files
remove-ai-watermarks/docs/supported-signals.md
T

5.7 KiB

Supported signals

This page describes the current support boundary. A check mark means that the repository contains a corresponding code path. It does not guarantee detection or removal on every future vendor version.

Visible marks

The visible command registers these mark keys:

Key Mark Expected area Important limit
gemini Google Gemini sparkle Usually bottom right Detection includes a false positive gate.
doubao 豆包AI生成 Bottom right Vendor specific text detector.
jimeng ★ 即梦AI Bottom right Vendor specific text detector.
qwen 千问AI生成 Bottom right Strict visual gate.
kling 可灵AI 3.0 Bottom right Only calibrated variants are covered.
yuanbao 元宝 over AI生成 Bottom right Standard two-line variant only.
samsung ✦ Contenuti generati dall'AI Bottom left Calibrated for the Italian text variant.
runninghub RunningHub AI生成 Top left Strict visual and position gates.
baidu 百度 AI生成 Bottom right Detector and extended removal footprint.
liblib LibLibAI Bottom center Includes a minimum image size gate.
jimeng_pill AI生成 pill Top left Weak detector with additional product and background gates.

--mark auto evaluates all registered marks and removes every selected match. Known marks are localized to a mask, then the selected fill backend reconstructs the masked area.

Marks from other vendors are not detected automatically. Use erase --region when you can select the affected area yourself.

Fill backends

Backend Install Behavior
cv2 remove-ai-watermarks[visible] Classical OpenCV inpainting
migan remove-ai-watermarks[migan] MI-GAN through ONNX Runtime
lama remove-ai-watermarks[lama] big-LaMa through ONNX Runtime
auto Depends on installed extras Selects LaMa, then MI-GAN, then OpenCV

The learned backends download model files on first use.

Metadata and provenance

The inspection and stripping code handles signals in these groups:

  • C2PA Content Credentials and supported cloud manifest references;
  • EXIF and XMP generator fields;
  • IPTC AI disclosure fields;
  • PNG text chunks and embedded generation parameters;
  • China TC260 AIGC labels in supported metadata placements;
  • xAI and Grok EXIF signature fields;
  • Samsung AI editing markers;
  • Hugging Face job metadata;
  • open Stable Diffusion style DWT-DCT watermarks with the detect extra;
  • Adobe TrustMark with the trustmark extra.

identify combines detected signals into a ProvenanceReport. It reports unknown when evidence is absent. It never treats missing metadata as proof that an image is human made.

File and container formats

Pixel based image commands discover these extensions:

  • PNG;
  • JPEG;
  • WebP;
  • HEIC and HEIF;
  • AVIF.

HEIC, HEIF, and AVIF pixel decoding requires the independent heif extra in addition to the selected pixel feature. Metadata scanning does not.

Metadata inspection and removal additionally have container paths for:

  • JPEG XL metadata;
  • MP4, MOV, M4V, and M4A;
  • WebM, MKV, MKA, MP3, WAV, FLAC, OGG, OGA, Opus, and AAC when ffmpeg is available.

JPEG image metadata stripping removes targeted metadata segments without re-encoding the entropy coded image scan. PNG and WebP removal preserves pixel values through lossless output paths. HEIC, HEIF, AVIF, and other containers use their format specific paths.

Invisible watermarks

The invisible command uses diffusion regeneration. It targets watermark patterns by changing the image rather than decoding and deleting a known payload.

Current pipeline values:

  • controlnet;
  • sdxl;
  • qwen;
  • qwen-zimage;
  • legacy alias default, which resolves to sdxl.

SynthID does not have a public local pixel decoder in this project. The tool can infer likely presence from supported provenance metadata, but after that metadata is removed a local negative result is inconclusive.

The optional detect extra is different: it provides a local decoder for the open DWT-DCT watermark used by some Stable Diffusion, SDXL, and FLUX workflows. That signal is carrier and transformation sensitive, so a negative is still not a universal clean verdict.

Provider overview

Provider or family Visible Invisible path Metadata or provenance
Google Gemini Sparkle Diffusion regeneration for SynthID C2PA and related source signals
OpenAI image generators None registered Diffusion regeneration for supported invisible signals C2PA and generator provenance
Stable Diffusion and SDXL None registered Diffusion regeneration; optional open decoder Embedded parameters and text metadata
FLUX None registered Diffusion regeneration; optional open decoder C2PA for supported sources
Adobe Firefly None registered No proprietary local decoder C2PA; optional TrustMark decoder
Midjourney None registered No registered pixel decoder EXIF, XMP, and IPTC signals
ByteDance generators Doubao and Jimeng marks No registered pixel decoder TC260 AIGC and supported C2PA signals
Qwen Qwen mark No registered pixel decoder TC260 AIGC
Kling Kling mark No registered pixel decoder TC260 AIGC
Baidu Baidu mark No registered pixel decoder TC260 AIGC
LibLibAI LibLibAI mark No registered pixel decoder TC260 AIGC
RunningHub RunningHub mark No registered pixel decoder TC260 AIGC
Samsung Galaxy AI One locale specific mark No registered pixel decoder C2PA and Samsung markers

For detector thresholds, measured limits, and incident history, see module internals and known limitations.