
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 МП и удаление невидимых водяных знаков платные.
Этот проект предназначен для законного использования на контенте, которым вы владеете. Он не нацелен на превью стоковых агентств или другие водяные знаки, защищающие сторонний платный контент. См. область применения, безопасность и юридические примечания.
Выберите, что вы хотите сделать
| Цель | Команда | 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 без Torch | remove-ai-watermarks[detect] |
| Прямое локальное нарушение Paint InvisMark | remove-ai-watermarks[pixels] |
| Удаление невидимых водяных знаков из изображений (требуется CUDA) | remove-ai-watermarks[qwen-zimage] |
| Все производственные функции, доступные на активном Python | remove-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
| До | После |
| --- | --- |
|  |  |
Растр `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 после |
| --- | --- |
| [](data/synthid/originals/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM.png) | [](docs/images/qwen-zimage/ChatGPT/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM_full_clean.png) |
| Пример Gemini до | Пример Gemini после |
| --- | --- |
| [](data/synthid/originals/Gemini_Generated_Image_633uuy633uuy633u.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, заключённую в рамку меткуAISeedance, а также фиксированные метки 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.
Документация
Начните с индекса документации.
- Установка
- Руководство по CLI
- Python API
- Поддерживаемые сигналы
- Известные ограничения
- Область применения, безопасность и правовые замечания
- Внутреннее устройство модулей
- Релиз и распространение
- Навык агента
Исследовательские заметки и исторические эксперименты перечислены отдельно в индексе документации. Они объясняют прошлые решения, но не определяют текущий публичный 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.