Размножили объявление по городам, тексты переписали, а карточки всё равно склеило? Почти всегда причина — фотографии. Разберём, что именно робот Авито сверяет в картинках, как уникализировать фото руками в XnView MP и Photoshop — честно, по шагам — и где ручной способ перестаёт окупаться.

Что робот сверяет в фотографиях

Авито не сравнивает файлы побайтово — он считает перцептивный хэш: цифровой отпечаток того, как картинка выглядит. Упрощённо алгоритм работает так: изображение сжимается до крошечной сетки (порядка 8×8), переводится в оттенки серого, и по яркости ячеек строится битовая строка. У «того же фото, но пережатого» строка получается та же — поэтому смена качества, формата и имени файла отпечаток не трогают. Сдвигают его только правки, меняющие композицию и распределение яркости: кроп, шум, локальный тон.

Дополнительно робот распознаёт текст на снимках: номер телефона или логотип на борту машины читаются и участвуют в сравнении — поэтому один полупрозрачный водяной знак, работавший в 2022-м, сегодня не решает задачу. Полная механика фильтра — с текстом, ценами и связками — разобрана в отдельной статье; здесь сосредоточимся на картинках.

Что не работает (и почему)

ПриёмПочему не помогает
Переименовать файлимя файла в хэше не участвует вообще
Пересохранить с другим качествомперцептивный хэш к пережатию устойчив
Только отзеркалитьхэш это переживает, а надписи становятся зеркальными
Инстаграм-фильтр на всю папкуодинаковая правка на всех фото — тот же сдвиг отпечатка у всех, копии остаются похожими друг на друга
Удалить EXIF «под ноль»метаданные — вторичный сигнал; их отсутствие подозрительно, а хэш не меняет

Что реально сдвигает отпечаток

Главная правка — изменение кадрирования: несимметричная обрезка 5–12% меняет композицию кадра, и хэш пересчитывается. Остальное — усилители: слабый шум по всему кадру (ломает попиксельное сравнение), микросдвиги яркости, контраста и гаммы, лёгкая резкость со случайной силой. Работает только каскад: одна правка в одиночку либо заметна глазу, либо не двигает отпечаток.

Вручную: XnView MP, пакетная обработка

Бесплатный XnView MP умеет прогонять папку целиком (Инструменты → Пакетная обработка). Рабочий рецепт на один набор:

  1. Обрезка. «Кадрирование» в процентах: например, 4% слева, 7% сверху, 6% справа, 3% снизу. На следующем наборе — другие цифры.
  2. Возврат размера. «Изменение размера» к исходным пропорциям, метод Ланцоша — разрешение не потеряется.
  3. Шум. Фильтр «Добавить шум», значение минимальное — 1–2%, глазом не видно.
  4. Тон. Яркость +1…−2, контраст ±2, гамма 0,98–1,02 — на каждом наборе свои значения.
  5. Метаданные. «Очистить метаданные» и досоздать EXIF заново (вкладка «Метаданные» или exiftool): одна модель камеры и одна дата на весь набор.
  6. Экспорт. Своё качество JPEG для набора (например, 87 вместо 92) — другая структура файла.

В Photoshop та же логика через Actions + «Обработчик изображений»: записываете экшен с кропом, Camera Raw-микроправками и шумом, прогоняете папку батчем. Быстрее XnView не будет, но у кого Photoshop под рукой — способ рабочий.

EXIF: заменить, а не удалить

Метаданные — вторичный, но реальный сигнал. Частая ошибка — стереть EXIF «под ноль»: у живых фотографий с телефона метаданные есть всегда, и их полное отсутствие на 200 снимках само по себе выглядит синтетикой. Правильная схема — согласованная замена: внутри одного набора у всех фото одна модель камеры и одна дата съёмки, между наборами они различаются. Руками это делается бесплатным exiftool: одна команда прописывает модель и дату на всю папку (exiftool -Model="Xiaomi 13" -DateTimeOriginal="2026:08:20 14:11:00" ./set1). Главное — не забыть сменить значения для следующего набора.

Как проверить, что получилось

Два уровня проверки перед заливкой в фид:

  • Глазами. Откройте оригинал и вариант рядом на весь экран: различий не должно быть видно. Если кроп заметен или тон «уехал» — параметры слишком агрессивные, покупатель это тоже увидит.
  • Технически. Сравните размер файлов в байтах и EXIF — они должны отличаться. Кто дружит с Python, может сверить перцептивные хэши напрямую: библиотека imagehash, функция phash() — расстояние Хэмминга между оригиналом и вариантом от 10 и выше означает, что отпечаток реально сдвинут.

И боевой тест: опубликуйте два клона с разными наборами в соседних городах. Если оба прошли модерацию и живут с нормальными показами больше недели — каскад работает.

Где предел ручного способа

На одном наборе — нигде: полчаса, и готово. Проблемы начинаются на объёме, когда городов десять и наборов нужно десять:

  • Время умножается. 10 наборов × 20 фото = 200 прогонов с разными параметрами. Это уже вечер, и так при каждом обновлении комплекта.
  • EXIF расползается. Держать согласованные «камеры» и даты на десяти наборах в голове — нереально; а вразнобой метаданные сами превращаются в сигнал.
  • Хостинг и ссылки. Для автозагрузки по фиду нужны прямые ссылки на каждое фото — их надо где-то хостить и собирать полотно руками, не перепутав порядок слайдов.
  • Учёт наборов. Какой вариант стоит в каком городе — через месяц не вспомнит никто. А ставить один набор в соседние города нельзя.

Ручной способ против автоматики: счёт времени

Посчитаем на реальном объёме — услуга с комплектом из 20 фото, геосетка на 10 городов:

ЭтапРуками (XnView + exiftool)Сервисом
Подбор параметров на набор5–10 мин × 10 наборов
Прогон обработки10 батчей с разными настройкамиодин запуск
EXIF на каждый набор10 команд exiftool, свои значенияавтоматически
Хостинг и сборка ссылокнайти хостинг, залить 200 файлов, собрать полотнассылки готовы сразу
Итоговечер, и снова при каждом обновлении фото2–3 минуты

На одном наборе ручной способ честно работает. На геосетке — время уходит не в уникализацию, а в логистику: параметры, метаданные, хостинг, порядок, учёт. Именно эту логистику и автоматизирует уникализатор фото AV Ranker: тот же каскад (несимметричный кроп, шум, микротон, согласованные EXIF, свой JPEG на набор), но на всю папку и нужное число наборов за один запуск. Порядок слайдов сохраняется по именам файлов, полотно ссылок для фида готово сразу, хостинг встроен, а какой набор где стоит — видно по коду. И это входит в единый тариф, а не оплачивается пофотно.

Чек-лист перед масштабированием

  1. На каждый город — свой набор фото, без «одни на троих».
  2. Первый слайд везде продающий: оффер, а не деталь интерьера.
  3. Кадры с надписями не зеркалить; телефоны на фото — убрать совсем (за них ловится и модерация).
  4. EXIF согласован внутри набора и различается между наборами.
  5. Тексты и адреса уникализированы тоже: фото — самый жёсткий слой фильтра, но не единственный.
Попробуйте на своих клиентах — 7 дней бесплатно Все функции AV Ranker, 1 аккаунт Авито, без карты. Подключение по официальному API за 2 минуты — пароль клиента не нужен.

Частые вопросы

Можно ли просто отзеркалить фото?

Как единственную правку — нет: перцептивный хэш устойчив к отражению, а надписи на фото станут зеркальными, и робот, читающий текст на снимках, это увидит. Зеркалирование работает только в каскаде с кропом и шумом, и только на кадрах без надписей.

Нужно ли удалять EXIF?

Удалять — плохая идея: полное отсутствие метаданных у «живых» фото само по себе выглядит подозрительно. Правильнее заменить EXIF на согласованный: одна модель камеры и одна дата съёмки на весь набор, у каждого набора — свои.

Как понять, что объявления склеило по фото?

Типичная картина: клоны с разными текстами получают статус «похожее объявление» или резко теряют показы после модерации, при этом тексты и адреса разные. Если наборы фото совпадают хотя бы частично — причина почти всегда в них.

Сколько наборов фото нужно на 10 городов?

Десять: у каждого клона — свой набор. Экономия «одни фото на три города» возвращает задачу в исходную точку: внутри этих трёх городов карточки снова дубли.

Смотрите также

Виталий Исаков
Виталий Исаков SEO и лидогенерация 12 лет. Автор AV Ranker — сервис собран на живых клиентских аккаунтах, не «на бумаге».
Запросить консультацию