Какую задачу решает поиск дубликатов
В фототеке накапливаются повторные загрузки, копии из мессенджеров, переименованные резервные файлы и отредактированные версии. Имя не доказывает, что изображения идентичны, а сжатая копия в галерее может выглядеть как оригинал. Поэтому инструмент отдельно проверяет точное совпадение файлов и визуальное сходство.
Он предназначен для фотографов, семей, редакционных команд и всех, кто объединяет папки с телефонов, камер, облачных экспортов или старых дисков. Файлы выбираете вы сами. Приложение не обходит компьютер самостоятельно и никогда не получает права удалять данные.
Точные дубликаты и визуальные совпадения
В точную группу входят файлы с одинаковым SHA-256: их байты совпадают, даже если названия и папки различаются. Визуальные группы используют 64-битный разностный хеш dHash, рассчитанный из очень маленького полутонового изображения. Он может связать уменьшенную или повторно сжатую копию с той же сценой, хотя байты уже отличаются.
Визуальное сходство не является доказательством дубликата. Серийные кадры, слегка изменённые скриншоты и соседние снимки могут иметь близкие хеши. Чтобы цепочка слабых совпадений не объединяла несвязанные края, каждый участник группы обязан укладываться в порог относительно всех остальных.
- Строгий 4: снижает риск ложных совпадений.
- Сбалансированный 8: подходящая отправная точка для смешанной фототеки.
- Широкий 12: находит больше обработанных вариантов, но требует тщательной ручной проверки.
- Точные группы не зависят от визуального порога.
Как сканировать и проверять фототеку
- Используйте Выбрать папку, если браузер поддерживает доступ к каталогам, иначе выберите файлы вручную. Подпапки включаются только тогда, когда браузер передаёт пути.
- Сначала можно загрузить безопасное демо, чтобы увидеть процесс без личных фотографий.
- Задайте визуальный порог и начните сканирование. Декодирование, хеширование и группировка идут в Web Worker, поэтому прогресс и Отмена остаются доступны.
- Сначала откройте точные группы. Рекомендация предпочитает разрешение, затем размер и дату, но вы можете выбрать другое фото.
- Каждую визуальную группу рассматривайте как задачу сравнения. Изучите превью и метаданные; близкий хеш не означает, что файлы взаимозаменяемы.
- Экспортируйте CSV, JSON или HTML для документирования. Отмечайте кандидатов после проверки и создайте резервную копию перед ручным удалением или перемещением.
Пример: четыре файла одной фотосессии
В папке лежат beach-original.jpg, beach-copy.jpg, beach-messenger.jpg и sunset-next-frame.jpg. У первых двух разные имена, но одинаковые байты. Версия из мессенджера уменьшена и повторно сжата, а последний файл — самостоятельный кадр через несколько секунд.
Точный анализ объединит оригинал и копию по SHA-256. dHash может связать версию из мессенджера с оригиналом. При широком пороге следующий серийный кадр тоже может показаться близким, поэтому верное действие — сравнить, а не удалить автоматически.
- Точный результат
- 2 файла с одинаковым SHA-256; один можно проверить как лишний.
- Визуальный результат
- Оригинал и уменьшенная копия с dHash в пределах выбранного порога.
- Решение человека
- Сохранить нужное качество и метаданные; отдельно оценить соседний кадр.
Как устроено локальное сравнение
Сначала файлы группируются по размеру в байтах. SHA-256 вычисляется только для размеров с двумя и более кандидатами: идентичные байт в байт файлы обязательно имеют одинаковый размер. Это сокращает лишнее полное чтение без потери точности. Дайджест создаёт Web Crypto API браузера.
Для визуального анализа браузер декодирует поддерживаемое изображение, уменьшает его до 9 на 8 пикселей и переводит в яркость. Каждый пиксель сравнивается с соседом, а 64 результата образуют dHash. Расстояние Хэмминга считает отличающиеся биты: ноль означает крайне близкую структуру, большее число допускает изменения.
BK-дерево сокращает число кандидатов вместо проверки всех возможных пар. Затем complete-link-проверка требует, чтобы каждая пара внутри группы удовлетворяла порогу. Worker регулярно уступает выполнение, а превью создаются только для результатов и небольшой выборки, чтобы ограничить память.
- Точная идентичность: одинаковый SHA-256.
- Визуальное расстояние: число разных битов между двумя 64-битными dHash.
- Рекомендация: больше пикселей, затем больший файл и более новая дата.
- Потенциальное место — оценка размеров кандидатов, а не факт удаления.
Конфиденциальность, сохранённые сканы и отчёты
Декодирование, хеши и группировка выполняются на устройстве. Фотографии, превью, хеши, имена и локальные пути не отправляются Xephory. Доступ к папке только для чтения выдаётся через окно браузера. Analytics и автоматическая реклама отдельно регулируются общим Google Consent сайта.
Последний результат можно сохранить в IndexedDB, чтобы восстановить группы и решения в этом браузере. Кнопка удаления сохранённого скана стирает запись. Отчёты создаются локально, но могут содержать имена и пути, поэтому при обмене считайте их частными документами.
Поддержка HEIC и HEIF
Сначала сканер просит браузер декодировать изображение. Если встроенной поддержки HEIC/HEIF нет, используется локальный декодер сайта. Фото не отправляется сервису конвертации. Редкая разновидность, повреждённый файл или нехватка памяти всё же могут вызвать ошибку.
HEIC без визуального декодирования может участвовать в точном сравнении, если другой выбранный файл имеет такой же размер и SHA-256. Интерфейс показывает ограничение, а не скрывает его за ошибочным выводом об отсутствии дубликата.
Важные ограничения перед очисткой
- Перцептивный хеш измеряет структуру, но не смысл и личную ценность фотографии.
- Обрезанная, повёрнутая или сильно обработанная копия может не совпасть.
- Серийные кадры и повторные скриншоты могут дать ложные совпадения, особенно при широком пороге.
- Повреждённые или неподдерживаемые изображения могут участвовать только в точном тесте.
- Браузер не видит невыбранные папки и не обходит системные разрешения.
- Скорость большой библиотеки зависит от устройства и памяти; при необходимости делите работу.
- Перед удалением или перемещением оригиналов всегда храните отдельную резервную копию.
Частые вопросы о дубликатах фотографий
Мои фотографии загружаются на сервер?
Нет. Байты, превью, хеши, имена и пути обрабатываются локально и не отправляются Xephory.
Что доказывает точное совпадение?
Оба файла должны иметь одинаковый SHA-256. Сначала кандидаты фильтруются по размеру, затем хешируется их полное содержимое.
Что означает расстояние сходства 8?
Между двумя 64-битными dHash допускается до восьми разных битов. Это удобный стартовый порог, но не доказательство взаимозаменяемости.
Инструмент удаляет дубликаты?
Нет. Он создаёт рекомендации и списки проверки. Удаление и перемещение выполняются вручную в файловом менеджере.
Можно сканировать HEIC с iPhone?
Да, если вариант поддерживает браузер или включённый локальный декодер. Точное сравнение может работать даже без визуального превью.
Почему похожие фото попадают в разные группы?
Каждая пара внутри группы должна пройти порог. Так цепочка слабых совпадений не объединит действительно разные изображения.
Почему рекомендуется оставить конкретное фото?
По умолчанию учитываются число пикселей, размер файла и дата. Метаданные и личную ценность оцениваете вы.
Можно продолжить прошлую проверку?
Последний скан и выбор сохраняются в IndexedDB этого браузера. Кнопка удаления сохранённого скана стирает их.