TL;DR
GeoEdit — агентный пайплайн, который не блюрит и не зашумляет фото, а находит в кадре улики места и точечно их меняет. Улики — это тип застройки, табличка, остановка, вид деревьев. Агент работает по циклу «найти улики → придумать правку → проверить атакой». В проверке другая модель играет доксера (того, кто по фото вычисляет адрес) и пытается определить место на отредактированном фото.
Главная находка: размытие и «защитный шум» плохо защищают и портят картинку. Шум рассчитан на конкретную модель и ломается от сжатия или ресайза. Остальные улики при этом остаются, и сильная модель собирает адрес по ним. Простая просьба «отредактируй так, чтобы не определили место» почти не помогает: правки получаются слишком мягкими. Точность на уровне «до 1 км» падает всерьёз только тогда, когда каждую правку проверяют настоящей попыткой взлома.
Суть метода в трёх шагах. Сначала модель размечает и ранжирует улики по вкладу в определение места. Затем генерирует несколько вариантов правок, бьющих по самым «весомым» уликам. Наконец, правка принимается, только если доксер ошибся сильнее, а картинка осталась естественной. Удачные правки агент превращает в короткие текстовые правила и подставляет их в начало промпта для следующих фото.
Схема метода
ЦИКЛ (ReAct: рассуждение → действие → наблюдение), отдельные вызовы инструментов:
ШАГ 1 — Risk (оценка риска): модель вытаскивает улики по схеме
(текст, ориентиры, стиль застройки, погода, подсказки в подписи...)
→ список улик + вклад каждой («что будет, если убрать эту улику»)
+ маски областей на картинке (сегментация SAM)
ШАГ 2 — Edit (правка): под топ-улики пишутся N вариантов инструкций редактору
→ N отредактированных картинок
ШАГ 3 — Eval (проверка): модель-доксер определяет место до и после правки
→ принять правку, только если ошибка выросла И картинка осталась похожей
→ иначе откат
ПОСЛЕ БАТЧА: сравнить лучшие и худшие попытки → записать 3–5 текстовых правил
в «буфер инсайтов» → вставлять их в начало промпта на следующих фото
Пример применения
⚠️ В статье нет готовых промптов, а система собрана на коде (сегментация, байесовская сеть, несколько моделей). Ниже ручная версия того же цикла в чате. Это моя реконструкция по описанию авторов, а не их шаблон.
Задача: SMM-менеджер экспертного Telegram-канала хочет выложить живое фото основательницы: она гуляет с собакой во дворе своего дома в Екатеринбурге. Явных ориентиров нет, но на заднем плане видны типовая панелька, кусок вывески и остановка. Адрес основательницы светить нельзя: недавно уже были звонки от незнакомцев.
Промпт (шаг 1, Risk — новый чат, загрузи фото):
Ты проводишь проверку приватности МОЕГО СОБСТВЕННОГО фото перед публикацией.
Определи, где сделан снимок, как это сделал бы аналитик по открытым источникам.
Сначала выпиши все улики по группам:
1. Текст в кадре (вывески, номера, таблички, язык, шрифты)
2. Застройка и инфраструктура (тип домов, серия, дорожные знаки, остановки, столбы, покрытие)
3. Природа и погода (растения, освещение, сезон)
4. Ракурс и качество (что видно, а что скрыто)
Затем для КАЖДОЙ улики оцени: если её убрать, насколько упадёт твоя уверенность
в локации (0–100%). Отсортируй улики по этому падению, от самых «выдающих».
В конце дай: лучшую гипотезу места (город/район), уверенность в %, и топ-3 улики,
которые надо менять в первую очередь.
Промпт (шаг 2, Edit — тот же чат):
Для топ-3 улик предложи по 2 варианта МИНИМАЛЬНОЙ правки, которая:
— ломает связь этой улики с локацией (меняем деталь, а не замазываем);
— выглядит естественно, без следов редактирования;
— не меняет героя и главный сюжет кадра.
Каждую правку оформи как готовую инструкцию для редактора изображений.
Дальше выполни правки в редакторе (Gemini, ChatGPT, Photoshop) и проверь результат в НОВОМ чате тем же промптом шага 1.
Результат: в первом чате модель выдаст структурированный список улик с оценкой вклада каждой, гипотезу места и топ-3 цели для правки. Во втором шаге придут пары вариантов правок в виде готовых инструкций редактору. В новом чате с отредактированным фото модель покажет, упала ли её уверенность и осталась ли гипотеза верной. Если место всё ещё угадывается, цикл повторяется на следующих уликах.
Почему это работает
Слабость. Блюр и шум воздействуют на восприятие картинки, но не на смысл. Модель всё равно видит «панельку, остановку и часть вывески», связывает их между собой и выдаёт город. Шум ещё и подогнан под конкретную модель, поэтому разваливается на новой версии или после сжатия.
Сильная сторона. Те же модели отлично умеют рассуждать по уликам и честно сообщают, на что опирались. Значит, их можно использовать как атакующего: пусть покажет, какая улика его выдаёт. Кроме того, редакторы изображений умеют менять мелкую деталь, не ломая сцену.
Как метод это соединяет. Он разрывает цепочку улик, а не прячет картинку. Проверка настоящей атакой отсекает «красивые, но бесполезные» правки. Правило «принять, только если стало лучше и картинка осталась похожей» не даёт перестараться.
Рычаги управления: - Число вариантов правок (N) → больше вариантов, выше шанс найти рабочую правку, но дороже. - Порог похожести на оригинал → строже порог, естественнее картинка, но слабее защита. - Состав доксера → проверяй разными моделями. В статье доксер изолирован от итоговой награды и работает на других моделях, чтобы агент не «подгонял» правки под одну из них. - Буфер правил → подставляй 3–5 правил из прошлых удачных правок в начало промпта.
Шаблон промпта
Это реконструкция цикла по описанию в статье. Структура Risk → Edit → Eval с откатом сохранена.
Ты — защитник приватности моего собственного фото. Цель: сделать так, чтобы
по фото нельзя было определить место, но оно оставалось естественным.
{правила_из_прошлых_правок}
T_risk: найти улики по схеме {схема_улик}, оценить вклад каждой
(что будет, если убрать), вернуть топ-{k} целей.
T_edit: предложить {n} минимальных правок под цели, как инструкции редактору.
T_eval: (в НОВОМ чате, как доксер) определить место на правленом фото,
вернуть гипотезу и уверенность.
While риск не снижен ИЛИ шагов < {макс_шагов}:
1. Thought: что сейчас самая выдающая улика?
2. Action: T_risk → T_edit
3. Я вставляю результат T_eval.
4. Observation: ошибка доксера выросла? картинка осталась естественной?
- Да обе → принять правку, перейти к следующей улике
- Нет → откатить, выбрать другой вариант правки
Стоп: доксер ошибается минимум на {порог_км} км или уверенность ниже {порог_%}.
Что подставлять:
- {правила_из_прошлых_правок}: правила из прошлых прогонов или пусто.
- {схема_улик}: группы из таблицы статьи (текст в кадре; ориентиры и застройка; погода и ракурс; подсказки в подписи и метаданных).
- {k}, {n}, {макс_шагов}: например 3, 2 и 4.
- {порог_км}, {порог_%}: например 750 км и 20%.
🚀 Быстрый старт — вставь в чат:
Вот шаблон цикла «найти улики → правка → проверка доксером». Адаптируй под мою
задачу: {какое фото и где публикую}. Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, что на фото, что в нём нельзя менять, какой редактор у тебя есть и какая угроза (случайные подписчики или целенаправленный поиск). Это нужно, чтобы выбрать допустимые правки и пороги остановки. Структуру цикла она возьмёт из шаблона.
Ограничения
⚠️ Нужна инженерия: авторская система опирается на сегментацию SAM, байесовскую сеть риска, несколько моделей и автоматический цикл. Чатом воспроизводится только упрощённая ручная версия.
⚠️ Проверка не абсолютна: защиту проверяли на шести моделях-атакующих. Опытный аналитик, новая модель или другая версия могут справиться лучше. «Тест пройден» ≠ «безопасно».
⚠️ Не везде лучше: на самом грубом уровне (страна и континент) метод местами проигрывает защитному шуму. Выигрыш главным образом в точном определении места и в сохранении картинки.
⚠️ Естественность измерили косвенно: похожесть оценивали по CLIP-метрике, а не по тому, заметит ли человек правку. Свежий взгляд на результат всё равно нужен.
⚠️ Остальные утечки не закрыты: метаданные файла (EXIF) и подпись под фото статья не решает. Их надо чистить отдельно.
⚠️ Этика: промпт-доксер — это инструмент атаки. Используй его только на своих фото.
Как исследовали
Исследователи собрали LifePhotoBench: 1553 «бытовых» снимка из двух известных наборов (прогулки, обеды, портреты на фоне города), причём фото с очевидными ориентирами сознательно выбросили. Защиту проверяли на шести современных мультимодальных моделях, включая GPT-5.1 и Claude. Сравнивали с тремя вариантами: шум против моделей (M-Attack, GeoShield) и простая просьба к модели отредактировать картинку (Vanilla Edit).
Измеряли долю точных угадываний места (в радиусе от 1 км до 2500 км), медианную ошибку в километрах и «похожесть» отредактированной картинки на оригинал.
Результат: на фото без защиты GPT-5.1 угадывал место с точностью до 1 км примерно в 30% случаев, а после GeoEdit — менее чем в 3%. Медианная ошибка выросла более чем до 5000 км, а похожесть осталась около 0,94. У методов с шумом похожесть была ниже 0,35, то есть картинка заметно портилась. Простая просьба «отредактируй» сохраняла картинку (0,89), но давала слабую защиту: точность в 1 км падала лишь до 18%.
Без «буфера инсайтов» результат был хуже: точность на 1 км вдвое выше (5,2% вместо 2,6%), а похожесть ниже. Правила, выведенные из удачных и неудачных попыток, реально помогают.
Неожиданно, что простая просьба «отредактируй» почти не защищает: модель правит осторожно и косметически. Практический вывод: без проверки атакой редактировать вслепую бессмысленно.
Адаптации и экстраполяции
🔧 Техника: вклад улики → порядок правок
Чтобы не править всё подряд, попроси модель ранжировать улики по вкладу: «если убрать эту улику, насколько упадёт твоя уверенность в месте?» Правь только самые «весомые». Меньше правок — естественнее картинка.
🔧 Техника: чистка подписи и метаданных
В статье отдельный фактор — подсказки в подписи и метаданных (Geo-Hint). Добавь в промпт шага 1: «проверь также текст подписи: {подпись}. Что в нём выдаёт локацию?» Затем отдельно сотри EXIF.
Экстраполяция: буфер правил для агента или кастомного GPT
Идею «сравнить удачные и неудачные попытки и записать правила» можно применить к любой повторяющейся работе, например к правке карточек товара. Ниже мой перенос принципа, а не метод статьи:
Вот 5 моих правок: 2 принятые и 3 отклонённые, с причинами.
Сравни их и выведи 3–5 коротких правил «делай так / так не делай».
Формулируй конкретно, без общих слов. Эти правила я вставлю в начало
следующего промпта (или в файл инструкций агента).
Ресурсы
- Работа: GeoEdit: Adversarial De-Evidencing for Silent Geoprivacy Protection via Image Editing
- Авторы: Yu Yan, Shengjia Cheng, Fei Ma, Zhe Wang, Peng Chen
- Организации: People's Public Security University of China (Пекин); Guangming Laboratory (Шэньчжэнь)
- Датасет: LifePhotoBench (из Im2GPS3k и YFCC4k)
- Опорные работы: ReAct (Yao et al.), схема улик из Cheng et al. [4], GeoShield, M-Attack, Doxing via the Lens
