wiltodelta/remove-ai-watermarks

Удаление водяных знаков ИИ. CLI и Python-библиотека для удаления видимых и невидимых водяных знаков ИИ (Gemini / Nano Banana sparkle, SynthID) и метаданных происхождения (C2PA, EXIF, IPTC) из изображений.

Инструменты⭐ 5 612Pythonпоследний релиз: v0.41.1
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Инструмент для удаления видимых и невидимых водяных знаков (SynthID, Gemini sparkle) и метаданных провенанса (C2PA, EXIF) из изображений и видео, сгенерированных ИИ.

Зачем нужен

Позволяет пользователям очищать собственные ИИ-генерации от платформенных меток и скрытых водяных знаков, возвращая контроль над контентом. Инструмент полезен для подготовки изображений к публикации без автоматических лейблов 'Made with AI' или для очистки от артефактов платформ.

Что можно реализовать

  • Удаление видимых водяных знаков Google Gemini (sparkle), Doubao, Jimeng и Samsung Galaxy AI с помощью обратного альфа-смешивания.
  • Очистка изображений от невидимых водяных знаков SynthID, StableSignature и TreeRing с помощью диффузионной регенерации.
  • Удаление метаданных провенанса C2PA, EXIF, IPTC и XMP из изображений (PNG, JPEG, AVIF, HEIF, JPEG-XL) и видео/аудио (MP4, WebM, MP3 и др.).
  • Удаление любых произвольных объектов или логотипов с помощью универсального стирателя (erase) на базе cv2 или big-LaMa.
  • Применение 'Analog Humanizer' (зерно хроматическая аберрация) для придания изображению более естественного вида.

Ключевые возможности

  • Поддержка как видимых водяных знаков (с восстановлением пикселей через альфа-карты), так и невидимых (через diffusion-based regeneration).
  • Работа с метаданными C2PA и EXIF на уровне контейнеров для изображений и мультимедиа (включая lossless обработку аудио/видео через ffmpeg).
  • Гибкие пайплайны обработки: Canny ControlNet для сохранения текста и лиц, SDXL img2img или экспериментальный Qwen-Image для лучшей сохранности текста.
  • Возможность использования без установки (через облачный сервис raiw.cc) или локально (CLI/Python) с поддержкой GPU для тяжелых задач.
  • Отсутствие поддержки удаления чужих стоковых водяных знаков (Shutterstock, Getty) — фокус только на собственных генерациях пользователя.

👤 Кому подойдёт: Разработчики, исследователи ИИ, контент-мейкеры и пользователи, желающие очищать собственные ИИ-генерации от платформенных ограничений и меток.

Релизы

v0.41.1patch
🕐 4 дн назад · релиз на GitHub ↗

Выпущена версия v0.41.1 с обновлением зависимостей от Dependabot.

  • Обновлены зависимости в группе minor-and-patch (6 обновлений).
v0.41.0minor
🕐 5 дн назад · релиз на GitHub ↗

Добавлена функция classify_source() для классификации источника изображения (OpenAI, Google или другой) без использования PyTorch.

  • Added: Появился API classify_source() и опция source-classify для определения принадлежности изображения к конвейеру экспорта OpenAI или Google.
  • Added: Классификация источника отделена от обнаружения водяных знаков и не использует модель SynthID.
  • Added: Используется легковесный NumPy-рантайм с зафиксированной версией модели; PyTorch и Transformers не требуются.
  • Added: Результат возвращается только при превышении калиброванного порога, с указанием причины, оценки, порога и ревизии модели.
  • Документация уточняет, что качество классификации резко падает после изменения размера или пережатия в JPEG.
v0.40.6minor
🕐 5 дн назад · релиз на GitHub ↗

Обновлена поддержка GPT Image 2.5, подтверждена корректность обхода водяных знаков OpenAI и улучшена документация.

  • Added: Добавлена поддержка GPT Image 2.5 Flare и Sunburst API без изменений в интерфейсах.
  • Fixed: Подтверждена работа путей удаления невидимых водяных знаков и проверки C2PA для моделей OpenAI.
  • Fixed: Профиль qwen-zimage теперь корректно обрабатывает контролируемые источники, исключая ложные срабатывания.
  • Расширена документация: описаны контракты маршрутизации, метрики точности и ограничения моделей.
v0.40.4minor
🕐 5 дн назад · релиз на GitHub ↗

Автоматическая маршрутизация провайдеров к моделям и калибровка параметров удаления водяных знаков.

  • Added: Автоматическая маршрутизация изображений: Google к SDXL, Microsoft к Chroma, остальные к Qwen при --profile auto.
  • Added: Установлены новые безопасные пороги силы: Qwen 0.35 для Google, Chroma и SDXL — 0.50.
  • Fixed: Удалена небезопасная калибровка только для лиц в модели Chroma.
  • Fixed: Обеспечена стабильность профиля, точности, адаптивной полировки и отключения CPU при обработке нескольких изображений.
v0.40.3patch
🕐 6 дн назад · релиз на GitHub ↗

Релиз v0.40.3: обновление списка изменений для репозитория remove-ai-watermarks.

  • Обновлён полный список изменений между версиями v0.40.2 и v0.40.3.
v0.40.2patch
🕐 7 дн назад · релиз на GitHub ↗

Релиз v0.40.2 репозитория remove-ai-watermarks.

  • Обновление версии до v0.40.2.
v0.40.1patch
🕐 9 дн назад · релиз на GitHub ↗

Исправлена ложная детекция водяных знаков Qwen Create, предотвращающая повреждение чистых пикселей.

  • Fixed: Устранена ложная детекция водяных знаков Qwen Create, которая могла повреждать чистые пиксели.
  • Fixed: Добавлены дополнительные проверки: теперь требуются NCC > 0.65 и бинаризованное IoU > 0.70 с силуэтом.
  • Fixed: Исправлена нестабильность NCC между разными сборками OpenCV, вызывавшая ложные срабатывания.
  • Fixed: Тег visible_qwen больше не присваивается ложноположительным образцам, пиксели остаются без изменений.
  • Истинные детекции Qwen Create сохранены и работают корректно (NCC 0.85).
v0.40.0minor
🕐 10 дн назад · релиз на GitHub ↗

Добавлен CPU-бэкенд ONNX для классификации, улучшена атрибуция меток TC260 и обнаружен символ Qwen Create.

  • Added: Добавлен опциональный CPU-only ONNX бэкенд для классификации через extra `remove-ai-watermarks[classify-onnx]`.
  • Added: Реализовано обнаружение трехлопастного символа Qwen Create под ключом `qwen` вместе с текстовой полосой.
  • Fixed: Исправлена атрибуция: общие IPTC-метки больше не привязываются к Meta или Content Seal.
  • Fixed: Стандартная маркировка TC260 AIGC больше не считается именем вендора; метки разделяются по производителю.
  • Added: Опубликован Agent Skill 1.0.8 с поддержкой `classify-onnx` и примерами команд.
v0.39.1patch
🕐 11 дн назад · релиз на GitHub ↗

Исправлена обработка ориентации HEIC и TIFF файлов, стабилизирована CI-среда и обновлён Agent Skill.

  • Fixed: Сохранена ориентация отображения HEIC-файлов камерного типа после обработки.
  • Fixed: Устранено двойное вращение TIFF-файлов, если их ридеры уже применили тег ориентации.
  • Fixed: Исправлена пост-релизная проверка извлечения артефактов в GitHub Actions.
  • Fixed: Стабилизирована CI-задача для видео в Ubuntu за счёт установки ffmpeg только из репозиториев Ubuntu.
  • Added: Выпущен Agent Skill версии 1.0.6 через рабочий процесс распространения релизов.
v0.39.0majorbreaking
🕐 12 дн назад · релиз на GitHub ↗

Обновление таксономии генераторов, поддержка LiblibAI, маршрутизация OpenAI в qwen-zimage и новые аудио/видео бенчмарки.

  • Breaking: Таксономия генераторов: значения provider теперь указывают на модель рендера, а не бренд; добавлена поддержка Bytedance (Doubao, Jimeng) и изменена логика вето для tc260.
  • Added: Добавлена поддержка видимого удаления водяных знаков LiblibAI (liblib_pill) с проверкой метаданных и контекста.
  • Fixed: Автоматический пайплайн теперь маршрутизирует OpenAI provenance в qwen-zimage, сохраняя Microsoft за chroma-zimage.
  • Added: Расширены бенчмарки на аудио и видео с использованием локальных оракулов AudioSeal и VideoSeal.
  • Fixed: Исправлена работа Unsharp polish для стабильности изображений при конвертации в uint8 и восстановлены контракты публикации изображений.
photo-classify-freeze-2026-09-07minor
🕐 13 дн назад · релиз на GitHub ↗

Обновлена модель классификатора bytedance в составе six-head provider.pt, добавлен receipt-gate.npz для фильтрации.

  • Added: Добавлена модель bytedance в состав six-head provider.pt для генерации таксономии.
  • Added: Внедрен receipt-gate.npz с пороговым значением и рецептом dup3 для фильтрации на стороне модели.
  • Компоненты clip, probe и detector остались без изменений.
v0.38.0minor
🕐 14 дн назад · релиз на GitHub ↗

Улучшена классификация документов, сохранена точность изображений, исправлены ошибки запуска и добавлен агент-навык.

  • Added: Введена проверка документов: ложные срабатывания для чеков и фото снижены до 3,4% и 0% соответственно.
  • Added: Опубликован агент-навык (agent skill) с детерминированным набором тестов для установки через npx.
  • Fixed: Изображения теперь сохраняют 16-битную глубину и точную альфа-канал без искажений профиля.
  • Fixed: Улучшено маскирование для Samsung и Kling, а также обнаружение видео Kling через различные декодеры.
  • Fixed: Исправлен сбой при первом запуске из-за отсутствия стека пикселей и улучшена обработка ошибок CPU.
v0.37.1patch
🕐 18 дн назад · релиз на GitHub ↗

Исправлена установка Chroma1-HD за счёт добавления бэкенда токенизатора SentencePiece в дополнительный пакет qwen-zimage.

  • Fixed: Устранена ошибка установки Chroma1-HD путём включения SentencePiece в extra-пакет qwen-zimage.
v0.37.0minor
🕐 19 дн назад · релиз на GitHub ↗

Добавлены команды classify и verify-openai-synthid, исправлены артефакты Doubao, улучшена проверка документации.

  • Added: Добавлена команда classify для определения AI-генерации по пикселям с использованием моделей CLIP-L и MLP.
  • Added: Добавлена команда verify-openai-synthid для проверки изображений через верификатор OpenAI SynthID.
  • Fixed: Исправлены артефакты масок в моделях Doubao.
  • Added: Улучшена автоматическая выборка движка и добавлена строгая проверка соответствия документации коду.
v0.36.0minor
🕐 20 дн назад · релиз на GitHub ↗

В релизе v0.36.0 добавлена поддержка режима --pipeline auto для оптимизации обработки контента от OpenAI, Microsoft, Google и Meta, а также внедрён кэш промптов для Chroma1.

  • Added: Режим --pipeline auto теперь доступен для опций invisible, all и batch, позволяя автоматически выбирать оптимальный бэкэнд (chroma-zimage или qwen-zimage) в зависимости от источника контента.
  • Added: Внедрён кэш промпт-встраиваний для chroma-zimage: калиброванный промпт кодируется один раз, что позволяет пропускать инференс 24B T5-энкодера при повторных вызовах и экономить VRAM.
  • По умолчанию остаётся использоваться модель qwen-zimage, в то время как контент от OpenAI и Microsoft теперь обрабатывается через chroma-zimage для лучшей точности.
v0.35.1minor
🕐 21 дн назад · релиз на GitHub ↗

В пайплайне chroma-zimage для контента с лицами снижена сила регенерации с 0.40 до 0.125 для улучшения качества.

  • Added: Адаптивная сила регенерации для контента с лицами: при обнаружении лица YuNet параметр снижается до 0.125 вместо фиксированных 0.40.
  • Added: Значительное улучшение метрик качества: прирост 6.4 dB PSNR и двукратное увеличение косинусного сходства ArcFace для лиц.
  • Fixed: Контент без лиц (текст, графика) продолжает использовать фиксированную силу 0.40, изменения касаются только Google-SynthID.
v0.35.0minor
🕐 21 дн назад · релиз на GitHub ↗

Добавлен новый профиль chroma-zimage на базе Chroma1-HD, изменена архитектура пайплайнов на двухэтапную общую базу.

  • Added: Добавлен профиль chroma-zimage, сочетающий глобальную регенерацию Chroma1-HD и восстановление лиц Z-Image.
  • Added: Пайплайны Qwen, SDXL и Chroma переписаны на общую двухэтапную базу для предотвращения рассинхронизации.
  • Added: Обновлены пороги обнаружения водяных знаков для OpenAI, Microsoft, Google и Meta.
  • Fixed: Флаг --text-manifest теперь блокирует использование профиля chroma-zimage на границе, как и для sdxl-zimage.
v0.34.1minor
🕐 23 дн назад · релиз на GitHub ↗

Релиз v0.34.1: улучшена детекция водяных знаков Microsoft и добавлены тесты для верификации регистров.

  • Added: В автоматическом режиме включена релаксация проверки бейджа Microsoft "Made with AI" (коэффициент 0.7), что позволило выявить слабые метки без ложных срабатываний.
  • Added: Добавлена детерминированная галерея синтетических примеров для всех 12 зарегистрированных водяных знаков изображений и 6 знаков видео.
  • Added: Введены канареечные тесты, требующие наличия примера для каждой записи в реестре и успешной обработки канонического примера всеми детекторами.
  • Fixed: Строгий режим детекции сохранен на уровне порога 0.38 с ограничением покрытия откалиброванным вариантом белого бейджа в правом верхнем углу.
v0.34.0minor
🕐 24 дн назад · релиз на GitHub ↗

Добавлена поддержка детекции и удаления водяных знаков Microsoft, исправлены имена провайдеров, усилены механизмы калибровки и проверки меток.

  • Added: Добавлен калиброванный детектор и путь удаления для белого значка AI от Microsoft в правом верхнем углу.
  • Fixed: Исправлены пользовательские имена провайдеров и атрибуция происхождения для Qwen, Kling AI, Hailuo AI, Volcano Engine, BytePlus, Dreamina и Ideogram.
  • Added: Внедрена поддержка Meta Content Seal как отдельного сигнала и защита от двойного учета при отчете о вероятных источниках.
  • Fixed: Усилены проверки: отклоняется неквалифицированная текстовая мозаика, верифицируются трансформации Content Seal и добавлен калибровочный инструмент.
  • Added: Добавлены воспроизводимые контуры кандидатов и улучшена переносимость помощи скриптов maintainer на Windows.
v0.32.0minor
🕐 25 дн назад · релиз на GitHub ↗

Добавлена поддержка скрытых водяных знаков Meta Content Seal с автоматическим определением и измеренным порогом удаления.

  • Added: Реализовано автоматическое и ручное удаление невидимого водяного знака Meta Content Seal через флаг --vendor meta.
  • Added: Введен измеренный порог силы водяного знака 0.1 (QWEN_ZIMAGE_META_STRENGTH) на основе анализа выборки из 44 изображений.
  • Added: Авто-режим теперь маршрутизирует файлы с тегом trainedAlgorithmicMedia к когорте Meta, используя сканирование хвоста XMP.
  • Added: Команда identify выдает предупреждение о пути удаления при обнаружении AI-тега IPTC.
  • Fixed: Для модели sdxl-zimage применен консервативный порог 0.25, так как измеренный уровень для Meta отсутствует.
v0.31.1patch
🕐 25 дн назад · релиз на GitHub ↗

Релиз v0.31.1 репозитория remove-ai-watermarks.

  • Выпущена версия v0.31.1.
v0.31.0majorbreaking
🕐 26 дн назад · релиз на GitHub ↗

Изменена логика определения уверенности C2PA: теперь высокая уверенность зависит от валидации подписи и хэша, а не от доверенных якорей.

  • Breaking: Высокая уверенность (high confidence) теперь присваивается при валидации подписи и хэша, независимо от наличия доверенных якорей доверия.
  • Fixed: Отозванные или структурно некорректные учетные данные подписи теперь считаются дисквалифицирующими факторами.
  • Fixed: Срок действия сертификата больше не является причиной отклонения, так как не означает изменения данных.
  • Added: Добавлены ограничения (caveats), указывающие на отсутствие настроенного списка якорей доверия или истекший сертификат.
  • Fixed: Улучшена логика определения причин сбоев и унифицировано правило дисквалификации для проверки ингредиентов.
v0.30.1minor
🕐 26 дн назад · релиз на GitHub ↗

Добавлен стабильный сигнал InvisMark и улучшено удаление подписей Microsoft через пиксели и C2PA.

  • Added: Добавлен стабильный сигнал provenance invismark при сохранении совместимости через soft_binding.
  • Fixed: Настроена маршрутизация удаленных объявлений Microsoft InvisMark через удаление пикселей.
  • Added: Документирован двухуровневый контракт удаления InvisMark для пикселей и метаданных C2PA.
  • Обновлены зависимости для совместимых патчей и зафиксированы версии в lockfile.
v0.30.0minor
🕐 26 дн назад · релиз на GitHub ↗

Улучшена детализация отчётов C2PA soft-binding, добавлены новые поля в вывод metadata --check.

  • Added: Команда identify теперь сообщает точный алгоритм C2PA soft-binding и его значение, включая идентификаторы пиксельных водяных знаков для Microsoft Paint.
  • Added: Вывод команды metadata --check расширен новыми полями soft_binding_algorithm и soft_binding_value.
  • Added: Важно: InvisMark soft binding сохраняет защиту от удаления даже при недействительности привязки C2PA, а пиксельная регенерация для content-fingerprint не срабатывает.
  • Известная проблема: опциональный пакет trustmark зависит от уязвимой версии lightning (PYSEC-2026-3624), но по умолчанию не устанавливается и не доступен.
v0.29.0minor
🕐 26 дн назад · релиз на GitHub ↗

Обновлён вывод метаданных, добавлена поддержка Copilot и Dreamina в реестре, исправлено восстановление текста.

  • Added: Команды metadata --check и --remove теперь учитывают ограничения identify, так как пиксельные водяные знаки (например, SynthID) не имеют локального декодера.
  • Added: identify и реестр водяных знаков теперь поддерживают модели Microsoft Copilot, Dreamina и Qwen в атрибуции источника C2PA.
  • Fixed: Исправлено восстановление текста: добавлена поддержка манифестов только с геометрией и устранено ошибочное обрезание глифов у краёв изображения.
  • Известная проблема: опциональный пакет trustmark зависит от уязвимой версии lightning (PYSEC-2026-3624), но в базовой установке он не используется.
v0.28.1minor
🕐 1 мес назад · релиз на GitHub ↗

В версии 0.28.1 добавлена поддержка tiled diffusion для восстановления текста и снято ограничение на использование флага --tile.

  • Added: Восстановление проверенного текста теперь работает с tiled diffusion: Qwen VAE использует те же перекрывающиеся тайлы, что и глобальный проход.
  • Fixed: Убрано искусственное ограничение, запрещавшее одновременное использование флагов --text-manifest и --tile.
  • Остается несовместимость --tile с функциями downscaling, humanize, unsharp и adaptive polish.
  • Обнаружена уязвимость PYSEC-2026-3624 в зависимости lightning 2.6.5 для опционального пакета trustmark.
v0.27.0minor
🕐 1 мес назад · релиз на GitHub ↗

v0.27.0: восстановление текста, поддержка Python 3.11–3.14, ускорение декодера в 15 раз и защита от недействительных C2PA-манифестов.

  • Added: Добавлено восстановление текста: обнаруженные водяные знаки теперь реконструируются перед удалением.
  • Added: Расширены сигналы обнаружения: добавлена поддержка QuickTime TC260, Luma AI и MiniMax.
  • Added: Ускорен и оптимизирован декодер: векторизация DWT-DCT дала прирост в 15 раз, память сокращена вдвое.
  • Added: Добавлена валидация C2PA-манифестов: отклоняются недействительные или ненадежные источники атрибуции.
  • Added: Поддержка Python 3.11–3.14.
  • Известная проблема: опциональный пакет lightning 2.6.5 уязвим, но по умолчанию не устанавливается.
v0.26.3patch
🕐 1 мес назад · релиз на GitHub ↗

Улучшено обнаружение TrustMark Variant P, ограничены ложные срабатывания, добавлены тесты.

  • Fixed: Ужесточена проверка Adobe TrustMark Variant P: теперь требуется совпадение бинарного полезного груза и схемы после перекодировки JPEG.
  • Fixed: Обнаружение TrustMark с высокой уверенностью ограничено схемами 0–2, что устраняет ложные срабатывания для схемы 3.
  • Added: Добавлен официальный тестовый образец Adobe Variant P и покрытие регрессионными тестами.
  • TrustMark оставлен как сигнал происхождения, не утверждающий ИИ-происхождение и не запускающий скраббинг.
  • Известная проблема: опциональный пакет trustmark зависит от уязвимой версии lightning (PYSEC-2026-3624).
v0.26.2minor
🕐 1 мес назад · релиз на GitHub ↗

Улучшена поддержка C2PA и метаданных ByteDance, удалён conda-рецепт, задокументированы все поверхности релиза.

  • Added: Улучшена атрибуция C2PA для медиа OpenAI и обработка метаданных ByteDance.
  • Deprecated: Удалён рецепт conda и автоматизация сборки; conda-forge остаётся независимым.
  • Added: Документированы и защищены от регрессий все поверхности релиза: PyPI, Homebrew, Hugging Face Space, ComfyUI.
  • Fixed: Исправлена известная проблема: опциональный extra `trustmark` больше не устанавливает уязвимый `lightning`.
v0.26.1patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена работа SynthID для OpenAI C2PA и сделана измеримой настройка видео-режима.

  • Fixed: Исправлена обработка доказательств происхождения SynthID для легаси и текущих версий OpenAI C2PA.
  • Fixed: Режим SynthID для видео теперь можно измерять, предотвращая его скрытое изменение.