Назад к обновлениям
New releaseSep 4, 2026

remove-ai-watermarks v0.37.1

Удаление видимых и невидимых водяных знаков ИИ и метаданных о происхождении из изображений и видео. Python-библиотека и CLI для SynthID, C2PA, EXIF, IPTC, XMP и распространённых маркеров генеративного ИИ.

Поделиться

Удаление AI-водяных знаков

Удаление меток происхождения AI с изображений и видео, созданных вами самостоятельно:

  • известные видимые метки, такие как блеск-водяной знак Google Gemini и текстовые метки производителей;
  • невидимые пиксельные водяные знаки через прямое локальное нарушение формата или диффузионную регенерацию;
  • C2PA, EXIF, XMP, IPTC и связанные AI-метаданные.

Поддержка видео охватывает идентификацию происхождения, полную очистку видимых меток и метаданных, пакетную обработку каталогов, удаление видимых меток Sora, Veo, Seedance, Doubao, Dola, Hailuo AI и Kling AI, а также сертифицированную оракулом VAE-регенерацию для удаления SynthID из видео.

raiw.cc запускает эту библиотеку как хостинговый сервис, с включённым GPU и без необходимости что-либо устанавливать. Удаление видимых меток и метаданных при выводе Standard до 12 МП бесплатно; исходное разрешение выше 12 МП и удаление невидимых водяных знаков платные.

PyPI Python Downloads License Tests Sponsor skills.sh

Этот проект предназначен для законного использования на контенте, которым вы владеете. Он не нацелен на превью стоковых агентств или другие водяные знаки, защищающие сторонний платный контент. См. область применения, безопасность и юридические примечания.

Выберите, что вы хотите сделать

ЦельКомандаGPU
Найти сигналы происхождения и водяные знакиidentifyНет
Классифицировать фотографию по пикселям (опционально, не происхождение)classifyНет
Удалить известные видимые AI-меткиvisibleНет
Стереть выбранную вами областьeraseНет
Удалить AI-метаданныеmetadataНет
Идентифицировать поддерживаемое происхождение видеоvideo identifyНет
Удалить видимые метки и AI-метаданные из видеоvideo allНет
Удалить AI-метаданные из видеоvideo metadataНет
Удалить зарегистрированную видимую AI-метку из видеоvideo visibleНет
Обработать каталог видеоvideo batchЗависит от режима
Применить калиброванный профиль удаления SynthID из видеопикселейvideo invisibleРекомендуется
Регенерировать изображение для нарушения невидимых водяных знаковinvisibleТребуется (CUDA)
Запустить удаление видимых меток, невидимых водяных знаков и метаданныхallРекомендуется
Обработать каталогbatchЗависит от режима

Объявления InvisMark от Microsoft Paint и Photos автоматически направляются на пиксельную регенерацию. Команда all удаляет как скрытый пиксельный водяной знак, так и связанный с ним манифест C2PA; одно лишь удаление метаданных удаляет только манифест. Специализированный Python API может исследовать и нарушать валидированную локальную полезную нагрузку Watermarker.dll без диффузии.

Режимы установки

ПотребностьУстановка
Инспекция и удаление метаданныхremove-ai-watermarks
Классификация фотографий AI-против-камерыremove-ai-watermarks[classify]
Классификация экспорта из OpenAI/Google/неизвестного источникаremove-ai-watermarks[source-classify]
Обнаружение и удаление видимых метокremove-ai-watermarks[visible]
Обработка видимого видеоremove-ai-watermarks[video]
Удаление SynthID из видеоremove-ai-watermarks[video,diffusion]
Обнаружение DWT-DCT без Torchremove-ai-watermarks[detect]
Прямое локальное нарушение Paint InvisMarkremove-ai-watermarks[pixels]
Удаление невидимых водяных знаков из изображений (требуется CUDA)remove-ai-watermarks[qwen-zimage]
Все производственные функции, доступные на активном Pythonremove-ai-watermarks[all]

К низкоуровневым и специализированным дополнениям относятся pixels, heif, trustmark, migan, lama, diffusion, classify-onnx и source-classify. Руководство по установке документирует их точный состав зависимостей, совместимость с Python и требования к моделям.

Быстрый старт

Установите CLI по умолчанию, ориентированный на метаданные:```bash uv tool install remove-ai-watermarks

Проверить образ:```bash
remove-ai-watermarks identify image.png

Чтобы классифицировать фотографию по пикселям (AI или камера, опциональный провайдер), установите дополнительный компонент и вызовите classify. identify никогда его не запускает:```bash uv tool install --force "remove-ai-watermarks[classify]" remove-ai-watermarks classify image.png

Руководство: [классификация пикселей фотографий](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/photo-classify.md).

Для лёгкого, воздерживающегося от решения сигнала об экспорте из OpenAI/Google/неизвестного источника после удаления метаданных используйте отдельный Python API. Это не детектор SynthID:```python
import remove_ai_watermarks as raiw

result = raiw.classify_source("image.png")
print(result.label, result.reason)

Установите remove-ai-watermarks[source-classify]. Руководство: классификация исходного конвейера.

Подписанное происхождение — это поддерживаемый маршрут для SynthID, и identify считывает его. В пакете нет локального детектора пикселей SynthID. Исследование эксперта по периодической решётке находится в scripts/synthid_runtime/ и synthid-detector-research.md.

Для удаления видимых водяных знаков установите пиксельные зависимости:```bash uv tool install --force "remove-ai-watermarks[visible]"

Затем удалите известную видимую метку и метаданные ИИ:```bash
remove-ai-watermarks visible image.png -o clean.png

Удаление метаданных без запуска видимого inpainting или диффузии:```bash remove-ai-watermarks metadata image.png --remove -o clean.png

Без `-o` эта команда перезаписывает исходный файл на месте.

Просмотр или удаление метаданных AI из файла MP4, MOV, M4V, WebM, MKV, AVI или FLV:```bash
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 включает нативный тег TC260 AIGC в moov.udta.meta.keys/ilst, в том числе moov, размещённый после медиаполезной нагрузки, а также варианты meta в формате QuickTime, которые записывает экспорт Doubao для iOS (голый бокс meta как прямой дочерний элемент moov и список метаданных hdlr=mdir без ключей). Ключевые записи workflow и prompt в той же структуре списка метаданных также обнаруживаются и удаляются, включая экспорты ComfyUI. Проверка MKV и WebM читает нормативное размещение Segment.Tags.Tag.SimpleTag. AVI использует LIST/INFO/AIGC, тогда как FLV использует script.onMetaData.AIGC. Форматы, не являющиеся ISOBMFF, ремуксируются с копированием потоков для удаления.

Используйте ориентированный на продукт видеопуть для идентификации или очистки файла:```bash 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` удаляет стабильную зарегистрированную видимую метку, если она присутствует, и всегда
удаляет проверенные метаданные ИИ. Если ни один сигнал не найден, он всё равно записывает
passthrough в том же контейнере, так что вызывающие приложения получают один предсказуемый выходной
контракт. Удаление проприетарных невидимых видео исключено по умолчанию.
`--invisible` включает режим lossy, сертифицированного оракулом профиля SynthID для видео.

Обработайте каталог с тем же контрактом:```bash
remove-ai-watermarks video batch ./videos --mode all

Удалить поддерживаемую видимую метку видео:```bash 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`, чтобы отключить это.
Кодировщик сохраняет поддерживаемую
8-битную цветовую субдискретизацию источника, цветовые теги и таймскейл дорожки MP4/MOV вместо
того, чтобы полагаться на неявные значения raw-BGR по умолчанию в ffmpeg. Переменные интервалы кадров
сохраняются через промежуточный NUT-мост в памяти с временными метками вместо того, чтобы быть сглаженными
до средней частоты кадров. Ненулевые начальные временные метки источника сохраняются
вместе со скопированным смещением аудио. Значение по умолчанию `--mark auto`
сканирует всех провайдеров за один проход декодирования и выбирает первое стабильное совпадение в
порядке специфичности, показанном ниже. Передайте явную метку, чтобы ограничить обнаружение
одним провайдером.
Sora охватывает движущегося маскота Sora 2 и словесный знак. Veo охватывает как текущий
четырёхточечный ромб, так и устаревший текст `Veo`. Seedance охватывает фиксированную помещённую в рамку
метку `AI`, Dola охватывает фиксированный текст `Dola AI`, Hailuo AI охватывает составную
метку `MINIMAX | hailuo AI`, а Kling AI охватывает метку `KLING AI` или
`KlingAI` в правом нижнем углу вместе с её суффиксом версии. Завершённое кодирование публикуется
атомарно. Никакой вывод не записывается, когда стабильная метка не найдена.
Входные данные HDR, PQ/HLG и с глубиной более 8 бит отклоняются до кодирования, а не
беззвучно понижаются через 8-битную границу BGR в OpenCV.

Примените откалиброванный профиль удаления SynthID для видеопикселей:```bash
uv tool install --force "remove-ai-watermarks[video,diffusion]"
remove-ai-watermarks video invisible input.mp4 -o clean.mp4

Этот путь регенерирует полную последовательность с одним полем латентного шума, общим для всего времени, копирует полное аудио, удаляет исходные метаданные и публикует завершённый энкод атомарно. Профиль по умолчанию noise_std=0.15 прошёл как двухнесущую калибровку, так и полную публичную восьмисекундную проверку Veo oracle. Google не публикует локальный декодер, поэтому свежая проверка у провайдера остаётся полезной для особо важных файлов или после изменений у провайдера, но она не является состоянием результата продукта. Поэтому CLI описывает регенерацию видеопикселей вместо заявления о вердикте SynthID для каждого файла, и сообщает о скопированном аудиоводяном знаке как UNVERIFIED.

Для удаления невидимого водяного знака через CLI или высокоуровневый API установите дополнение qwen-zimage. Требуется NVIDIA GPU: все профили диффузии работают только на CUDA, и нет запасного варианта на CPU или MPS. Специализированный локальный Paint API использует дополнение pixels без CUDA.```bash uv tool install --force "remove-ai-watermarks[qwen-zimage]" remove-ai-watermarks invisible image.png -o clean.png

Если локальные детекторы не могут подтвердить наличие невидимого водяного знака, но вы знаете, что изображение было создано ИИ-генератором, добавьте `--force`:```bash
remove-ai-watermarks invisible image.png -o clean.png --force

Изображения с большим объёмом текста могут использовать экспериментальный пост-проход верифицированного текста. Он принимает вручную проверенные строки и ограничивающие рамки строк или подтверждённый оператором манифест только с геометрией; он никогда не рассматривает необработанный вывод OCR как эталонные данные и не запускается автоматически:```bash uv tool install --force "remove-ai-watermarks[text-restoration]" remove-ai-watermarks invisible image.png -o clean.png
--text-manifest verified-lines.json --force

См. [руководство по CLI](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/cli.md#restore-operator-verified-text) для схемы манифеста,
ограничений совместимости и предостережений об oracle.

См. [руководство по установке](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/installation.md) для Homebrew, uv, опциональных
функций и настройки среды разработки.

## Примеры

### Видимая метка Gemini

| До | После |
| --- | --- |
| ![Изображение с видимым водяным знаком Gemini](https://assets.kitploit.com/production/public/readmes/7369/4f6643f46057e4a4ec503f5bf0daf7243768915090f2d7fc5ac183c2d928c5ca.png) | ![Изображение после удаления видимого водяного знака](https://assets.kitploit.com/production/public/readmes/7369/45193ef965a27342b183a1834b01ef812f653da2ec356a81fce1aed79f1ef814.png) |

Растр `after` генерируется из отслеживаемого растра `before` через публичный путь:```bash
uv run remove-ai-watermarks visible demo_banana_before.png \
  --backend cv2 -o demo_banana_after.png

Высококачественное невидимое удаление

qwen-zimage — это профиль по умолчанию: проход Qwen-Image-2512 Lightning под Canny ControlNet, за которым следует восстановление Z-Image с маской SAM для любого обнаруженного лица. Альтернативный профиль, sdxl-zimage, заменяет глобальный этап на SDXL и сохраняет тот же этап обработки лиц. Третий профиль, chroma-zimage, использует глобальный проход Chroma1 под лицензией Apache-2.0 с собственными фиксированными минимальными значениями вендора; см. docs/chroma1-engine-research.md для калибровки. --pipeline auto выбирает sdxl-zimage для Google, chroma-zimage для Microsoft и qwen-zimage в остальных случаях. Все они работают только на CUDA.```bash uv tool install --force "remove-ai-watermarks[qwen-zimage]" remove-ai-watermarks invisible image.png -o clean.png --force

| Пример OpenAI до | Пример OpenAI после |
| --- | --- |
| [![Сетка портретов OpenAI до qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/28ff8732b037f98a4ef5bc277bbcdaa32e5eb9ccbd00b6c8c616e46ef68ae8a0.png)](data/synthid/originals/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM.png) | [![Сетка портретов OpenAI после qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/8066deab6162ef4fba352ffb475a119bfe94f097a4f5531e0fe141cbb8e089b5.png)](docs/images/qwen-zimage/ChatGPT/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM_full_clean.png) |

| Пример Gemini до | Пример Gemini после |
| --- | --- |
| [![Знак Gemini до qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/4affd7f27767a445db6abf741355743ba8d95108ad922c9fff045feed8492236.png)](data/synthid/originals/Gemini_Generated_Image_633uuy633uuy633u.png) | [![Знак Gemini после qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/42858417874f6cd8bc7c9bdb39f6bde8aa32310a3e219e7ee2dff23a4742c7b1.png)](docs/images/qwen-zimage/Gemini/Gemini_Generated_Image_633uuy633uuy633u_full_clean.png) |

Эти конкретные выходные файлы были проверены соответствующими верификаторами провайдеров. Этот
результат относится к этим файлам, а не к каждому seed, изображению или будущей версии
водяного знака.

## Типовые рецепты

### Удалить все обнаруженные видимые метки```bash
remove-ai-watermarks visible image.png -o clean.png

По умолчанию --mark auto проверяет все зарегистрированные видимые метки и удаляет каждое совпадение. Если метка видна вам, но детектор её пропускает, выберите её область явно:```bash remove-ai-watermarks erase image.png
--region 1640,1930,400,100
-o clean.png

`--region` использует `x,y,width,height` и может повторяться.

### Использование обученного бэкенда заполнения

Дополнение `visible` использует инпейнтинг OpenCV, когда обученный бэкенд не установлен.
Для более сложных фонов дополнения с обученным бэкендом автоматически включают те же
пиксельные зависимости:```bash
uv tool install --force "remove-ai-watermarks[migan]"
remove-ai-watermarks visible image.png -o clean.png --backend migan

| --no-color | Отключить цветной вывод | | --debug | Включить отладочный вывод | | --verbose | Включить подробный вывод | | --silent | Включить тихий режим | | --version | Показать версию программы и выход | | --help | Показать справочное сообщение и выход |```bash uv tool install --force "remove-ai-watermarks[lama]" remove-ai-watermarks visible image.png -o clean.png --backend lama

### Снижение использования памяти CUDA```bash
remove-ai-watermarks invisible image.png -o clean.png \
  --cpu-offload --force

CPU offload снижает нагрузку на память CUDA, перемещая компоненты модели между CPU и GPU, ценой снижения скорости.

Обработка каталога```bash

remove-ai-watermarks batch ./images --mode visible remove-ai-watermarks batch ./images --mode all

## Что инструмент может распознавать

Поддерживаемые видимые метки включают:

- видимый водяной знак-искру Google Gemini и Nano Banana;
- Doubao, словесный знак Jimeng и плашку `AI生成` в левом верхнем углу, Qwen, Kling AI,
  Yuanbao, Baidu, словесный знак LiblibAI в нижнем центре и компактную плашку в левом верхнем углу,
  а также метки RunningHub;
- один откалиброванный вариант белого AI-значка Microsoft в правом верхнем углу;
- один откалиброванный вариант метки Samsung Galaxy AI.

Проверка метаданных и происхождения охватывает C2PA, EXIF, XMP, IPTC, распространённые
параметры генератора в контейнерах изображений и видео, метки AIGC China TC260,
а также несколько сигналов, специфичных для отдельных производителей. Опциональные декодеры добавляют поддержку открытых
водяных знаков DWT-DCT и Adobe TrustMark.

Точная матрица поддержки, включая важные ограничения по локалям и детекторам, находится
в [supported signals](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/supported-signals.md).
[Галерея синтетических примеров](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/data/fixtures/visible/README.md) содержит один канонический
образец для каждой зарегистрированной метки изображения и видео.

## Как это работает

Удаление видимых меток состоит из трёх шагов:

1. Обнаружение зарегистрированной метки в её ожидаемой области.
2. Построение маски вокруг метки.
3. Заполнение только замаскированной области с помощью OpenCV, MI-GAN или LaMa.

Удаление метаданных использует учитывающее формат удаление. Удаление метаданных JPEG сохраняет
закодированный скан изображения вместо его повторного сжатия. Нативные значения TC260 в MP4/MOV
и ключевые параметры генерации обнуляются без изменения размеров боксов или
смещений медиаданных. Другие поддерживаемые контейнеры используют соответствующий путь
работы с метаданными.

Удаление невидимых меток через CLI и высокоуровневый API перегенерирует изображение через
диффузионный конвейер. Специализированные вызывающие стороны могут вместо этого декодировать и нарушать
положительно идентифицированный локальный формат Microsoft Paint с гораздо меньшими изменениями пикселей.
Ни один из путей не может гарантировать, что каждый проприетарный верификатор отклонит каждый результат.

См. [supported signals](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/supported-signals.md) и
[known limitations](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/known-limitations.md) для полной технической границы.

## Python API

API удаления видимых меток требует `remove-ai-watermarks[visible]`.```python
import remove_ai_watermarks as raiw

result, removed = raiw.remove_visible("watermarked.png", "clean.png")
print(removed)

report = raiw.remove_visible_detailed("watermarked.png", "clean.png")
print(report.status)  # cleaned | partial | unvalidated | no_watermark

complete = raiw.remove_all("watermarked.png", "clean.png")
print(complete.visible_status, complete.visible_marks)

images = raiw.remove_batch("images", "images_clean", mode="visible")
for item in images.items:
    print(item.source, item.visible_status, item.visible_marks)

provenance = raiw.identify_video("input.mp4")
report = raiw.inspect_video_metadata("input.mp4")
complete = raiw.remove_video_all("input.mp4", "clean.mp4")
print(complete.visual_invisible_action, complete.audio.watermark_status)
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")
print(synthid_cleaned.visual_invisible_action, synthid_cleaned.audio.watermark_status)
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 принимает путь к файлу или массив NumPy в формате BGR. Для входных данных в виде пути он также считывает метаданные происхождения, сохраняет альфа-канал и может удалять метаданные ИИ из записанного результата.

См. руководство по Python API для видимого удаления, полного конвейера remove_all и remove_batch, проверки происхождения, удаления метаданных и использования диффузии.

Навык агента

Агенты программирования могут установить опубликованный навык и управлять этим CLI:```bash npx skills add wiltodelta/remove-ai-watermarks

Claude Code может добавить этот репозиторий как торговую площадку плагинов:```text
/plugin marketplace add wiltodelta/remove-ai-watermarks
/plugin install remove-ai-watermarks@remove-ai-watermarks

Навык отказывается от меток стоковых агентств и других сторонних платных ресурсов. См. руководство по навыку агента.

ComfyUI

Отдельный пакет ComfyUI Remove AI Watermarks предоставляет узлы для видимого удаления, обнаружения, стирания областей и невидимого удаления.

Важные ограничения

  • Отсутствие локального сигнала означает неизвестность, а не чистоту. Проприетарные пиксельные водяные знаки могут остаться после удаления метаданных.
  • Видимое удаление реконструирует небольшую область. Результаты зависят от фона и выбранного бэкенда заполнения.
  • Невидимое удаление изменяет всё изображение и может исказить лица, текст или мелкие детали.
  • Видимое удаление видео распознаёт движущийся словесный знак Sora 2, текущий ромб Veo плюс устаревший текст Veo, заключённую в рамку метку AI Seedance, а также фиксированные метки Doubao, Dola, Hailuo AI и Kling AI. Оно не распознаёт более старый завиток в углу Sora Turbo или незарегистрированные макеты от этих провайдеров. Классический бэкенд OpenCV может размазывать структурированные фоны; используйте MI-GAN или LaMa, когда важна качество восстановления.
  • Регенерация Video SynthID изменяет разрешение, частоту кадров и детализацию изображения. Поставляемый профиль сертифицирован оракулом, но ни один публичный локальный декодер не может сертифицировать произвольный вывод во время выполнения. Перепроверяйте особо важные выводы после изменений у провайдера.
  • Удаление невидимых водяных знаков через CLI и высокоуровневый API требует CUDA. Все диффузионные профили отказываются от любого другого устройства при создании, а не переключаются на то, которое не может их запустить. Специализированный локальный Paint API, видимое удаление, удаление метаданных и identify работают без CUDA.
  • Системы водяных знаков провайдеров могут меняться. Проверяйте важные выводы с помощью собственного верификатора провайдера, когда он доступен.

Поставляемая команда video invisible использует сертифицированный профиль noise_std=0.15. Сопутствующий исследовательский инструмент scripts/video_synthid_sweep.py строит согласованный контроль повторного кодирования плюс кандидаты, регенерированные VAE, и оставляет вердикт верификатора пустым:```bash uv run --extra video --extra diffusion python scripts/video_synthid_sweep.py input.mp4 -o sweep/

Чтобы оценить, во что фактически обошёлся вывод, используйте `scripts/video_fidelity_probe.py`:
собственный PSNR движка измеряется после изменения размера входного изображения и перед финальным
кодированием, поэтому только зонд видит доставленную картинку.```bash
uv run --extra video python scripts/video_fidelity_probe.py input.mp4 input_clean.mp4

Контрольный образец всё ещё должен давать положительный результат SynthID, прежде чем отрицательный кандидат может считаться доказательством удаления. В калибровке на двух клипах от 2026-07-29 оба подобранных контрольных образца дали положительный результат во встроенном верификаторе SynthID от Gemini; более сильный кандидат дал отрицательный результат на обоих носителях, тогда как более слабый кандидат дал отрицательный результат на одном. Последующая состязательная проверка, в которой обычному Gemini было предложено переинтерпретировать результат по пикселям, вернула UNAVAILABLE; эта последующая проверка не была повторным запуском верификатора и не отменяет встроенные вердикты. Проверка полного клипа от 2026-07-31 на публичном восьмисекундном образце Veo показала, что 0.10 всё ещё обнаруживается, а 0.15 не обнаруживается, поэтому 0.15 теперь является сертифицированным значением по умолчанию. Воспроизводимые хеши и вердикты для этой проверки полного клипа -- один носитель, две строки -- находятся в data/evaluations/video-synthid-oracle.csv. Более ранняя калибровка на двух клипах носит исключительно описательный характер: её вердикты не были зафиксированы в отслеживаемом манифесте, поэтому считайте, что сертифицированное значение по умолчанию опирается на строки от 2026-07-31.

Документация

Начните с индекса документации.

Исследовательские заметки и исторические эксперименты перечислены отдельно в индексе документации. Они объясняют прошлые решения, но не определяют текущий публичный API.

Участие в разработке

Установите среду разработки и запустите проектный контроль:```bash uv sync --frozen --extra dev bash maintain.sh

См. [внутреннее устройство модулей](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/module-internals.md) перед изменением подсистемы с документированными инвариантами.

## Лицензия

[Apache 2.0](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/LICENSE). Copyright 2025-2026 wiltodelta.

Категории