Снятие SynthID с картинок gpt-image: SD1.5 img2img vs qwen-zimage

Пять картинок, сгенерированных gpt-image (C2PA + SynthID), прогнаны через два регенерационных ремувера на разной силе денойза. Оракул — OpenAI Content Provenance API, один запрос на файл. PSNR считается к оригиналу.

strengthSD1.5 img2img
noai-watermark, dreamshaper-8, M1 Pro MPS
qwen-zimage
remove-ai-watermarks, Qwen-Image-2512 + Z-Image, A100
0.052 из 5 чистые (вывеска, натюрморт)2 из 5 чистые (портрет 32 dB, вывеска 34 dB)
0.083 из 5 (портрет, вывеска, натюрморт)5 из 5
0.155 из 5, текстуры перерисованы5 из 5 (0.156, дефолт для OpenAI)

Коротко: qwen-zimage снимает знак на 0.08 при заметно лучшем сохранении деталей; SD1.5 ломает текст и кожу раньше, чем задевает watermark. Плоская графика чистится при минимальной силе у обоих. Текст на вывесках — главная жертва любой регенерации.

Инструменты и модели

Оракул — OpenAI Content Provenance API, один запрос на файл. Все оригиналы: SynthID + C2PA detected. Первая строка — уменьшенная картинка целиком, вторая — кроп самого показательного участка (центр кадра, у улицы — зона вывесок) в масштабе 1:1, если помещается в колонку. Колонка «Оригинал» закреплена: при горизонтальном скролле она остаётся слева для попарного сравнения. Клик по картинке открывает полный файл.

img01
Оригинал
SD1.5 img2img
strength 0.05
SD1.5 img2img
strength 0.08
SD1.5 img2img
strength 0.15
qwen-zimage
strength 0.05
qwen-zimage
strength 0.08
qwen-zimage
strength 0.156
1295×1214
PSNR 29.6 dB SynthID остался
PSNR 29.2 dB SynthID снят
PSNR 28.4 dB SynthID снят
PSNR 32.1 dB SynthID снят
PSNR 30.9 dB SynthID снят
PSNR 28.8 dB SynthID снят
Портрет с большим количеством мелкой текстуры: поры, веснушки, отдельные пряди, вязка свитера. Главный тест на сохранение кожи.Знак остался. Кожа уже сглажена, веснушки бледнеют — SD1.5 портит текстуру раньше, чем задевает watermark.Знак снят. Кожа гладкая как после beauty-фильтра, веснушки почти исчезли, глаза чуть перерисованы. Для соцсетей сойдёт, для печати нет.Знак снят, но лицо перерисовано: веснушек нет, ресницы и пряди сгенерированы заново, свитер другой, тон теплее.Знак снят при почти нетронутой картинке (32 dB): веснушки, поры, ресницы на месте. Лучший результат по портрету во всей таблице.Знак снят. Лёгкое сглаживание кожи, веснушки и поры сохранены. Без оригинала рядом не отличить.Знак снят. Сглаживание чуть заметнее, чем при 0.08. Лицо всё равно держится хорошо — его правит отдельная Z-Image-стадия, а не глобальная сила.
img02
Оригинал
SD1.5 img2img
strength 0.05
SD1.5 img2img
strength 0.08
SD1.5 img2img
strength 0.15
qwen-zimage
strength 0.05
qwen-zimage
strength 0.08
qwen-zimage
strength 0.156
1536×1024
PSNR 24.6 dB SynthID остался
PSNR 23.5 dB SynthID остался
PSNR 22.5 dB SynthID снят
PSNR 25.6 dB SynthID остался
PSNR 23.8 dB SynthID снят
PSNR 21.1 dB SynthID снят
Улица с вывесками, дорожными знаками и толпой. Стресс-тест на текст и мелкие лица.Знак остался, а текст уже разрушен: BANANA REPUBLIC → «RANLNA BE», ONE WAY → «OIE BRJ». Худший вариант: платим качеством, ничего не получаем.Знак остался. Текст сломан ещё сильнее («SANIVA REV», «ORE IRN»), лица в толпе плывут.Знак снят. Весь текст уничтожен (BANANA REPUBLIC → «S.A3DOH.HE», ONE WAY → «OHB IIH»), лица смазаны, дорожный знак поплыл.Знак остался. Зато картинка почти нетронута: BANANA RE…, ONE WAY читаются, люди и здания на месте.Знак снят. Текст частично жив: ANN TAYLOR читается, BANANA REPUBLIC → «PANANA SEPUBLIC», ONE WAY и табличка улицы — каша. Геометрия и люди целы.Знак снят. Весь латинский текст в мусор («PRNONA VERLOR», «ANET PRPLON», пакет ZARA → «MIOM»), лица в толпе слегка другие. Геометрия сцены цела.
img03
Оригинал
SD1.5 img2img
strength 0.05
SD1.5 img2img
strength 0.08
SD1.5 img2img
strength 0.15
qwen-zimage
strength 0.05
qwen-zimage
strength 0.08
qwen-zimage
strength 0.156
1536×1024
PSNR 23.7 dB SynthID остался
PSNR 22.9 dB SynthID остался
PSNR 22.1 dB SynthID снят
PSNR 24.6 dB SynthID остался
PSNR 22.9 dB SynthID снят
PSNR 20.7 dB SynthID снят
Горный пейзаж на закате: скалы, снежники, хвойный лес. Сплошная высокочастотная текстура без лиц и текста.Знак остался. Хвоя и скалы слегка размыты.Знак остался. Размытие заметнее: лес теряет отдельные деревья, скалы — трещины.Знак снят, но пейзаж перерисован: снежники другой формы, деревья переставлены, облака перекроены. По сути новая картинка по мотивам.Знак остался. Практически оригинал, едва заметное смягчение.Знак снят. Текстуры смягчены, деревья кляксами, но рельеф и композиция на месте.Знак снят. Заметно «живописнее»: лес превращается в мазки, скалы сглажены. Общий вид тот же.
img04
Оригинал
SD1.5 img2img
strength 0.05
SD1.5 img2img
strength 0.08
SD1.5 img2img
strength 0.15
qwen-zimage
strength 0.05
qwen-zimage
strength 0.08
qwen-zimage
strength 0.156
1536×1024
PSNR 33.7 dB SynthID снят
PSNR 32.3 dB SynthID снят
PSNR 30.9 dB SynthID снят
PSNR 34.3 dB SynthID снят
PSNR 33.1 dB SynthID снят
PSNR 30.6 dB SynthID снят
Плоская векторная вывеска: сплошные заливки, резкие края, крупный текст. Самый простой контент для регенерации.Знак снят. Буквы целы, края чуть мягче. На плоской графике watermark слабый — уходит при минимальной силе.Знак снят. Края букв мягче и «жирнее», чем при 0.05.Знак снят. Буквы целы, на увеличении края заметно размыты. Для плоской графики всё ещё приемлемо.Знак снят. Не отличить от оригинала (34 dB).Знак снят. Не отличить от оригинала.Знак снят. Буквы чуть мягче на увеличении, в остальном идентично.
img05
Оригинал
SD1.5 img2img
strength 0.05
SD1.5 img2img
strength 0.08
SD1.5 img2img
strength 0.15
qwen-zimage
strength 0.05
qwen-zimage
strength 0.08
qwen-zimage
strength 0.156
1370×1148
PSNR 23.9 dB SynthID снят
PSNR 23.3 dB SynthID снят
PSNR 22.5 dB SynthID снят
PSNR 24.9 dB SynthID остался
PSNR 23.4 dB SynthID снят
PSNR 21.3 dB SynthID снят
Натюрморт «под масло»: импасто, видимые мазки, блики на фруктах. Тест на сохранение манеры письма.Знак снят. Мазки размыты, узор на чаше и кожура апельсина потеряли фактуру. Самый низкий порог среди SD1.5-вариантов на живописи.Знак снят. Размытие как при 0.05, чуть сильнее: фактура холста уходит.Знак снят. Мазки размыты, узор чаши поплыл, апельсин без фактуры. Манера ещё узнаваема, детали переписаны.Знак остался. Мазки и фактура целы, едва заметное смягчение.Знак снят. Импасто сглажено, но манера письма сохранена. Фактура холста потеряна.Знак снят, но модель навешала капли воды на все фрукты и разгладила мазки — стало похоже на фотореалистичный рендер, а не на живопись.

Сохранение текста (img02, qwen-zimage 0.08)

Регенерация ломает надписи. Два способа их сохранить, оба проверены через API (по одному запросу): вернуть исходные пиксели по маске или штатный --text-manifest с ручной разметкой боксов (schema 2, geometry-only). Кроп зоны вывесок, масштаб 1:1 при ширине окна ≥ 2300 px.

Та же маска поверх SD1.5 0.15 — SynthID возвращается (detected, 1 запрос). Одна разметка, те же 1.8% кадра: у SD1.5 после регенерации остаётся больше остаточного сигнала, и нетронутые боксы добивают до порога. Наивная маска — лотерея; надёжен только режим без исходных пикселей, а он есть лишь у remove-ai-watermarks.

Оригинал
Вывески и знаки как есть.
qwen-zimage 0.08 SynthID снят
Знак снят, текст в кашу: «PANANA SEPUBLIC», «OHE IIAP».
qwen 0.08 + маска SynthID снят
Оригинальные пиксели возвращены в 5 боксов текста (1.8% кадра, растушёвка 3 px). Текст без потерь. Вопреки ожиданиям знак не вернулся: доля площади слишком мала.
qwen 0.08 + --text-manifest SynthID снят
Штатный режим remove-ai-watermarks: глифы реконструируются через VAE пайплайна, область стирается LaMa, буквы накладываются по силуэтам из оригинала. Исходных пикселей в кадре нет. Текст читается, чуть мягче.