Как удалить SynthID с фото и видео: разбор 4 инструментов
SynthID сидит в пикселях, а не в метаданных. Разбираем четыре открытых инструмента, которые снимают его с фото и видео, и во что обходится результат…

Картинку из Gemini заливают в рекламный кабинет, она проходит модерацию, а через неделю аккаунт получает ограничение с формулировкой про сгенерированный контент. Или площадка сама вешает на пост плашку «Сделано с помощью ИИ», хотя в файле уже вычищены все метаданные. Обычно в этот момент и выясняется, что внутри картинки сидит SynthID.
Ниже разбор: что это за водяной знак, почему его не убрать теми же приёмами, что и EXIF, и какие открытые инструменты действительно позволяют удалить SynthID с фото и видео. Все четыре проекта мы открыли и проверили, один прогнали на своём сервере и замерили время работы.
Сразу главное, чтобы не тратить ваше время. Удалить SynthID чисткой метаданных нельзя. Единственный способ, который вообще заявлен как работающий, стоит видеокарты и потери качества, а проверить результат можно только вручную и не больше десятка файлов в сутки. Дальше по порядку, откуда это следует.
- Что такое SynthID и в чём он сидит
- Метаданные и пиксели: разные задачи
- Слой первый: провенанс в метаданных
- Слой второй: сам сигнал в пикселях
- Видимая метка это третья, отдельная история
- Единственный работающий метод против SynthID: перегенерация
- Четыре инструмента: что они умеют на самом деле
- wiltodelta/remove-ai-watermarks
- mertizci/noai-watermark
- froggeric/gemini-watermark-and-synthid-remover
- cebeuq/Synthid-Bypass
- Сводная таблица
- Что из этого работает с видео
- Как проверить, что метка действительно снята
- Что мы проверили руками
- Правовая рамка
- Что делать на практике
- Частые вопросы
- Можно ли удалить SynthID онлайн, без установки программ
- Поможет ли скриншот или пересохранение в другом формате
- Сколько нужно видеопамяти для перегенерации
- Портится ли качество после снятия SynthID
- Можно ли снять SynthID с видео
- Как понять, что метка действительно снялась
- Коротко
Что такое SynthID и в чём он сидит
SynthID это разработка Google DeepMind для маркировки контента, сделанного нейросетями. Метка вшивается прямо в момент генерации и не видна человеку. Google применяет её в четырёх форматах: изображения, видео, аудио (модель Lyria и подкасты в NotebookLM) и текст, где сигнал прячется в вероятностях выбора следующего токена.
Устойчивость заявлена высокая. По описанию Google, знак на картинках и видео переживает кадрирование, наложение фильтров, смену частоты кадров и сжатие с потерями. Для аудио отдельно указаны устойчивость к шуму, MP3-компрессии и изменению скорости. То есть привычная уникализация против него не работает: пережать в JPEG, обрезать пару процентов по краям и накинуть шум недостаточно.

На иллюстрации выше видно принцип любого невидимого водяного знака. Два верхних кадра для глаза одинаковые, но во втором сигнал уже есть. Нижние два показывают, как он выглядит, если вытянуть его обработкой: слабый шумовой узор, размазанный по всей площади картинки. Именно поэтому его нельзя вырезать, как логотип в углу: он не в углу, он везде.
Метаданные и пиксели: разные задачи
Файл с картинкой из нейросети обычно несёт два независимых слоя признаков, и их постоянно путают.
Слой первый: провенанс в метаданных
Это C2PA (Content Credentials), EXIF, XMP, IPTC и текстовые чанки внутри PNG. Там лежит запись о том, какая модель сделала файл, иногда промпт и параметры, а у Google и OpenAI ещё и прямое указание, что в пикселях стоит SynthID. Снимается такой слой за доли секунды и без единого потерянного пикселя, потому что это служебные блоки в контейнере, а не само изображение.
Масштаб бывает неожиданный. Мы прогнали через побайтовую чистку семь файлов и посмотрели, что в них лежало: у демо-картинки из Gemini манифест C2PA занимал 36 КБ, у обычного логотипа из чужого проекта 74 КБ. После удаления sha1 распакованных пикселей совпал с исходным, то есть изображение не пострадало вообще.
Слой второй: сам сигнал в пикселях
Вот он и есть SynthID. Метаданные можно снести целиком, а знак останется, потому что он записан в яркости и цвете точек. Проверяющий сервис Google смотрит именно на пиксели, метаданные ему для вердикта не нужны.
Отсюда простое правило. Если задача в том, чтобы файл не отдавал модель и промпт, хватит чистки метаданных, она бесплатная и безвредная. Если задача в том, чтобы детектор Google не узнал свою генерацию, чистка метаданных не поможет совсем.
Видимая метка это третья, отдельная история
Есть ещё звёздочка Gemini в углу картинки, подписи Doubao, Jimeng, Qwen, Kling и мультяшный маскот Sora на видео. Это обычная графика поверх кадра, и убирается она инпейнтом: детектор находит область, строит маску, модель дорисовывает фон.

Слева исходник, справа результат после MI-GAN. На нашем сервере без видеокарты картинка 2048×2048 обрабатывалась 6,8 секунды, изменилось 8% площади кропа ровно там, где стояла звёздочка. Работает это аккуратно, но к SynthID отношения не имеет: сняли графику, сигнал в пикселях остался на месте.
Здесь же стоит предупредить про ложные срабатывания, о которых в README проектов не пишут. Мы прогнали детектор видимых марок по 50 обычным картинкам с рабочего сервера (логотипы, скриншоты интерфейсов). Сработал он на шести. Причём настоящая звёздочка Gemini получила уверенность 0,652, а ложные срабатывания 0,60 и 0,70, то есть выше. Порогом эти случаи не разделяются, и это значит, что автоматом гонять инпейнт по всему потоку креативов нельзя: он будет замазывать куски чужих макетов там, где никакой метки нет.
Единственный работающий метод против SynthID: перегенерация
Ни один из проектов не умеет «вычесть» SynthID из картинки. Все, кто заявляет работу с ним, делают одно и то же: прогоняют изображение через диффузионную модель в режиме image-to-image. Картинка загоняется в латентное пространство, туда подмешивается шум, потом изображение собирается заново. Сигнал ломается вместе со всей мелкой структурой кадра.
Чтобы результат остался похож на оригинал, композицию удерживают ControlNet по картам границ (canny) и низкая сила зашумления. Дальше начинаются компромиссы, и они существенные:
- нужна видеокарта NVIDIA. У части проектов CPU формально поддерживается, но одна картинка считается минутами;
- модели весят гигабайтами и тянутся при первом запуске: от 4 ГБ у лёгких сборок до 10 ГБ у тяжёлых;
- качество падает. Мелкие детали, текст и лица перерисовываются в правдоподобные, но другие;
- результат сам становится диффузионным изображением и несёт следы генерации;
- слабое зашумление знак не убирает, сильное убивает картинку. Рабочая зона узкая.
Отдельно про текст на макетах. Если на креативе есть надписи, перегенерация почти наверняка их испортит: модель перерисует буквы похожими, но неверными. Для арбитражных креативов с оффером и ценой это часто приговор всей затее.
Четыре инструмента: что они умеют на самом деле
wiltodelta/remove-ai-watermarks

Репозиторий проекта самый зрелый из четырёх: пакет на PyPI, документация, тесты, отдельные экстры под каждую задачу. Умеет три вещи: снимать видимые марки десятка генераторов, чистить провенанс (C2PA, EXIF, XMP, IPTC, китайские метки TC260) и убирать невидимые знаки.
uv tool install remove-ai-watermarks
remove-ai-watermarks identify image.png
remove-ai-watermarks visible image.png -o clean.png
remove-ai-watermarks metadata image.png --remove -o clean.png
remove-ai-watermarks invisible image.png -o clean.png --forceПро последнюю команду важное. Режим invisible требует CUDA и падает на любом другом устройстве прямо при инициализации: ни CPU, ни MPS не поддерживаются, запасного варианта нет. Профили два, оба на видеокарте: Qwen-Image-2512 и SDXL, каждый с последующей отдельной починкой лиц.
Мы разворачивали этот пакет у себя и вот что стоит знать заранее. Бэкенд для заливки области по умолчанию стоит auto, и он выбирает big-LaMa с пиком около 4,7 ГБ памяти, ориентируясь на один лишь факт наличия onnxruntime, даже если весов ещё нет. В контейнере с лимитом это OOM на первом же запросе. Ставьте --backend migan: модель 28 МБ, пик около 1 ГБ, для видимых марок разницы почти нет.
Честность README тут выше среднего: авторы прямо пишут, что отсутствие найденного сигнала означает «неизвестно», а не «чисто».
mertizci/noai-watermark

Проект целится ровно в невидимые знаки: SynthID, StableSignature, TreeRing. Метод тот же, перегенерация, но реализованы два профиля. Обычный это простой image-to-image, второй, ctrlregen, добавляет ControlNet по границам, IP-Adapter на DINOv2 и подгонку гистограммы, за счёт чего структура и цвет держатся заметно лучше. Большие картинки режутся на плитки 512×512 и сшиваются с плавным переходом.
pip install noai-watermark
noai-watermark source.png -o cleaned.png
noai-watermark source.png --model-profile ctrlregen -o cleaned.png
noai-watermark source.png --strength 0.15 --steps 60 -o cleaned.pngВидеокарта не обязательна, устройство выбирается само в порядке CUDA, MPS, CPU. По памяти: 8 ГБ ОЗУ минимум и около 4 ГБ на диск для обычного профиля, 16 ГБ и порядка 10 ГБ для ctrlregen. Основные ручки это --strength (по умолчанию 0,04) и --steps (50), плюс готовые пресеты от минимального 0,04 до максимального 0,7.
Чего у проекта нет, так это внятной проверки. Метрик и таблиц с процентом успеха в README не приводится, вместо них предлагается сгенерировать картинку в Gemini, почистить и вручную загрузить обратно на проверку. Файла лицензии в репозитории тоже нет, а это значит, что права на использование кода формально не определены.
froggeric/gemini-watermark-and-synthid-remover

Кроссплатформенная утилита wmr на C++, заточенная под метки Google: Gemini, Veo и NotebookLM. Видимый ромб Gemini снимается математически, обратным альфа-смешиванием, а не инпейнтом, поэтому результат чище. Логотип NotebookLM так не берётся и дорисовывается через MI-GAN.
wmr remove image.png -o clean.png
wmr video video.mp4 -o clean.mp4
wmr synthid image.png -o clean.png
wmr remove image.png --synthid-attack regen -o clean.pngРежим --synthid-attack regen это перегенерация через SDXL image-to-image с низким стартовым шумом. Автор называет его единственной атакой из опубликованных работ, которая проверялась против SynthID-Image, и тут же обозначает границы этой проверки: набор из девяти картинок, сила 0,10 при 50 шагах, два прохода ручного верификатора Google. Более слабые значения 0,04 и 0,08 справлялись с одиночной меткой, но не с двойной.
Цена вопроса указана прямо: около 6,5 ГБ моделей на диск при первом запуске (на Apple Silicon 4,5 ГБ через CoreML), падение качества до 29–41 дБ PSNR относительно входа, картинка «заметно сглажена и упрощена». Отдельно сказано, что регенерация оставляет собственный след и результат сам детектируется как диффузионный.
Ещё две вещи из README, которые редко встретишь в подобных проектах. Первая: спектральный детектор SynthID из ранних версий убрали, потому что на размеченном наборе он показал ROC AUC 0,20, то есть работал хуже монетки. Вторая: снятие метки меняет только файл и не стирает серверную запись, связывающую генерацию с аккаунтом. Лицензия MIT.
cebeuq/Synthid-Bypass

Самый громкий по звёздам (около 900) и самый сырой. Это не программа, а граф для ComfyUI плюс набор нод. Версия 2 устроена в два прохода. Сначала сила зашумления считается от разрешения кадра, и один проход KSampler на Qwen Image в формате GGUF перерисовывает картинку под контролем Canny. Затем лица обрабатываются отдельно: их находит связка детектора Ultralytics, сетки MediaPipe и SAM, чинит Z-Image Turbo, после чего готовые области вклеиваются обратно.
Идея автора сама по себе любопытная: он попросил Nano Banana Pro нарисовать чёрный кадр, вытянул экспозицию и тени и увидел узор. Одно из наблюдений полезно для понимания механики: при повторной генерации того же промпта узор получается другим, то есть знак не фиксирован для промпта.
Дальше начинаются минусы. Доказательства это визуальные пары «до и после» в папке сравнений, детекторной проверки и процента успеха нет. Лицензии нет. Нужен приличный GPU и несколько сторонних наборов нод. Автор сам пишет, что это исследовательский воркфлоу, а не готовый инструмент, и что на высоких разрешениях требуется подбор параметров, а артефакты вылезают на мелких текстурах и тексте. При этом в README продвигается коммерческий сервис, что с рамкой «только для исследований» сочетается плохо.
Сводная таблица
| Проект | Что снимает | Железо | Проверка | Лицензия |
|---|---|---|---|---|
| remove-ai-watermarks | видимые марки, метаданные, SynthID | метаданные и видимое на CPU, SynthID только CUDA | метрики по видимым маркам, невидимое без цифр | Apache-2.0 |
| noai-watermark | SynthID, StableSignature, TreeRing, метаданные | работает на CPU, с GPU быстрее; 8–16 ГБ ОЗУ | ручная, без метрик | нет |
| wmr (froggeric) | видимые метки Google, метаданные, SynthID через regen | около 6,5 ГБ моделей, GPU желателен | 9 картинок против верификатора Google | MIT |
| Synthid-Bypass | SynthID (эксперимент) | ComfyUI и мощный GPU | только визуальные пары | нет |
Что из этого работает с видео
С видео ситуация хуже, чем с картинками, и это стоит понимать до того, как выделять на задачу время.
Видимые метки снимаются нормально. Утилита wmr обрабатывает Gemini, Veo и NotebookLM покадрово, режет ролик по сценам, звук пропускает без перекодирования. В remove-ai-watermarks есть свой набор под Sora 2, Veo, Seedance, Dola, Hailuo и Kling, с проверкой стабильности метки между соседними кадрами и оптическим потоком для временной согласованности.
А вот с SynthID в видео всё просто: у wmr его нет, он числится в списке желаемых доработок. В remove-ai-watermarks режим для видео есть, но это та же диффузионная перегенерация, применённая ко всей последовательности кадров, с обязательной CUDA. Для ролика на тридцать секунд при 30 кадрах в секунду это девятьсот перегенераций изображения. Посчитайте по времени своей карты и решите, стоит ли оно того.
Практический вывод для видеокреативов: снять видимые логотипы реально и недорого, снять SynthID из видео на домашнем железе почти нереально.
Как проверить, что метка действительно снята
Здесь у всех инструментов общая слепая зона. Декодер SynthID закрытый, публичного API нет, поэтому ни один проект не может проверить собственный результат.
Доступны два пути, оба ручные:
- загрузить файл в чат Gemini и спросить, сделан ли он с помощью ИИ Google;
- портал SynthID Detector, который Google открыл в ограниченном доступе и раздаёт по листу ожидания, в первую очередь журналистам и медиа.
Автор wmr отдельно отмечает, что ручной верификатор ограничен примерно десятью проверками в сутки. Это ставит крест на массовой валидации: проверить сотню креативов перед заливом не выйдет.
Из этого следует неприятный вывод, который стоит принять сразу. Ни один инструмент не может дать гарантию. Любое заявление в формате «SynthID удалён» это заявление о намерении, а не о проверенном факте, если рядом не лежит скриншот верификатора Google на конкретно вашем файле.
Что мы проверили руками
Чтобы не пересказывать чужие README, часть проверок мы сделали сами на своём сервере. Железо обычное: шесть ядер, 11 ГБ памяти, видеокарты нет.
- Чистка метаданных. Семь файлов в JPEG, PNG и WebP, включая настоящие манифесты C2PA. Пиксели после чистки побайтово идентичны исходным, файлы валидны, следов провенанса не осталось. Время на файл в пределах трёх секунд.
- Видимые марки. Звёздочка Gemini снялась за 6,8 секунды на картинке 2048×2048, качество заливки хорошее, шерсть животного дорисована без заметного шва.
- Ложные срабатывания. На 50 обычных изображениях детектор видимых марок сработал шесть раз. Уверенность ложных срабатываний перекрывается с настоящими, поэтому порогом их не отсечь.
- SynthID. Не запускался. Пакет отказывается инициализироваться без CUDA, обходного пути в коде нет.
Ещё одна деталь для тех, кто будет собирать это у себя: при записи результата расширение временного файла должно оставаться картиночным. И OpenCV, и Pillow выбирают кодек по расширению, так что имя вида image.png.tmp роняет обработку с ошибкой записи.
Правовая рамка
Инструменты открытые, и их авторы одинаково оговаривают допустимое применение: работа со своим контентом, исследование устойчивости алгоритмов, снятие меток с материалов, права на которые у вас есть. Выдавать сгенерированное за съёмку там, где это запрещено правилами площадки или законом о маркировке, никто не предлагает.
Практическая сторона тоже есть. Снятие метки из файла не отменяет запись на стороне генератора: связь между аккаунтом и сгенерированным материалом остаётся у поставщика модели. Плюс площадки всё чаще определяют ИИ-контент собственными классификаторами, которым SynthID не нужен вообще.
Что делать на практике
Если свести всё к последовательности действий, получается так.
Начните с метаданных. Это бесплатно, быстро и не портит картинку. В большинстве случаев, когда площадка вешает плашку «сделано с ИИ», она читает именно C2PA, а не пиксели. Снимайте C2PA, EXIF, XMP и IPTC, и половина проблем закрывается на этом шаге.
Уберите видимые логотипы, если они есть. Инпейнт по маленькой области дёшев и почти не портит кадр. Только проверяйте результат глазами: детектор ошибается чаще, чем обещает.
К перегенерации переходите последней. Она стоит видеокарты, гигабайтов моделей и заметной потери качества, а гарантий не даёт. Для креативов с текстом чаще всего проще перерисовать макет заново, чем чинить перегенерированный.
Не стройте процесс на непроверяемом шаге. Если результат нельзя проверить, закладывайте это в план: держите запасные креативы и не завязывайте залив на предположение, что метка снята.
Если задача проще и сводится к тому, чтобы одинаковые креативы не склеивались по хешу и не ловили дубли, перегенерация вам не нужна вовсе. Для этого есть уникализация фото и видео, которая меняет хеш и перцептивный отпечаток без всякой диффузии. А если разговор про модерацию рекламных площадок в целом, посмотрите разбор клоакинга под Facebook Ads и материал о том, как качество трафика влияет на выплаты.
Частые вопросы
Можно ли удалить SynthID онлайн, без установки программ
Нет. Браузер не потянет диффузионную модель нужного размера, а без неё сигнал в пикселях не тронуть. Онлайн-сервисы, которые обещают снятие SynthID прямо во вкладке, на деле чистят метаданные и перекодируют картинку. Метаданные они действительно снимают, сам знак нет.
Поможет ли скриншот или пересохранение в другом формате
Нет. Google заявляет устойчивость знака к сжатию с потерями, кадрированию и фильтрам, а пересохранение это как раз сжатие. Метаданные при скриншоте теряются, поэтому кажется, что помогло, но пиксельный сигнал остаётся.
Сколько нужно видеопамяти для перегенерации
Точных цифр авторы не публикуют, ориентируются на объём моделей: от 4 до 10 ГБ на диск в зависимости от сборки. У wmr тайлинг включён по умолчанию, и в README сказано, что без него обработка выше примерно 1024 пикселей падает на большинстве карт. Практический ориентир: карта от 8 ГБ видеопамяти, иначе придётся резать картинку на плитки и мириться со швами.
Портится ли качество после снятия SynthID
Да, и заметно. В README wmr приводят измерение: 29–41 дБ PSNR относительно входа, картинка «заметно сглажена и упрощена». Мелкий текст и лица страдают сильнее всего, потому что модель перерисовывает их заново.
Можно ли снять SynthID с видео
Видимые логотипы Gemini, Veo и Sora снимаются нормально и покадрово. Пиксельный SynthID из видео на практике не снимают: в wmr такой режим не реализован, а в remove-ai-watermarks он есть, но требует CUDA и перегенерации каждого кадра. Тридцать секунд ролика это девятьсот проходов диффузии.
Как понять, что метка действительно снялась
Загрузить файл в чат Gemini и спросить, сделан ли он с помощью ИИ Google. Второй вариант, портал SynthID Detector, открыт в ограниченном доступе по листу ожидания. Автоматизировать проверку нельзя, публичного API у детектора нет.
Коротко
SynthID это не строчка в метаданных, а сигнал в самих пикселях, устойчивый к сжатию, обрезке и фильтрам. Метаданные снимаются мгновенно и без потерь, видимые логотипы снимаются инпейнтом, а вот сам знак убирается только перегенерацией картинки диффузионной моделью, и это требует видеокарты, гигабайтов весов и согласия на потерю качества. Проверить результат можно лишь вручную через Gemini, десяток файлов в сутки. Из четырёх проектов самый аккуратный по инженерии remove-ai-watermarks, самый честный по описанию своих границ wmr, noai-watermark удобнее всех запускается, а Synthid-Bypass интересен как исследование, но на поток не годится.



