LibrePhotos помогает превратить большую коллекцию снимков и видео в управляемую фототеку: программа индексирует файлы, строит хронологическую ленту, распознаёт лица и сцены, использует геоданные, ищет по метаданным и смыслу, объединяет связанные файлы, находит дубликаты, создаёт альбомы и даёт инструменты для просмотра, отбора, тегирования и общего доступа.
Работа строится вокруг общей ленты Photos, разделов Albums, Faces, Places, Things и служебных представлений. После сканирования каталога LibrePhotos извлекает дату съёмки, параметры камеры, координаты и другие доступные метаданные, создаёт миниатюры, запускает фоновые задачи анализа и связывает результаты с конкретными кадрами. Пользователь получает не просто сетку файлов, а несколько способов пройти одну и ту же коллекцию: по времени, людям, месту, содержимому, папке, рейтингу, избранному или результатам поиска.
Лучше всего LibrePhotos раскрывается на постоянно пополняемой библиотеке, где исходные файлы уже разложены по дискам и важно сохранить их как первоисточник, но добавить удобную навигацию и автоматическую классификацию. При этом часть возможностей зависит от качества EXIF и GPS, выбранных моделей машинного анализа и ресурсов сервера: распознавание не следует считать безошибочным, а запись рейтингов, поворота или меток обратно в файлы стоит включать только после проверки резервной копии.
Скачать LibrePhotos
- Ретушь фото
- Русский интерфейс
- Просто для новичков
- Нужен Docker и сервер
- ИИ требователен к памяти
- События надо генерировать
Как устроена фототека LibrePhotos
Главное представление Photos показывает библиотеку как непрерывную временную ленту. Кадры сгруппированы по дате, поэтому длинный архив можно просматривать без ручного перелистывания страниц. Для быстрого перемещения используется скролл по временной шкале: это особенно полезно, когда в базе уже десятки лет семейных съёмок. Сетка служит не только просмотром. В режиме выбора можно отметить один или много элементов и выполнить групповое действие: добавить в альбом, изменить состояние, подготовить загрузку, переместить в корзину или запустить другую доступную операцию.
Если дата съёмки определена неверно, проблема заметна сразу: фотография оказывается не в том году или попадает в раздел No Timestamp. LibrePhotos позволяет исправить время у конкретного кадра, а для систематических случаев предусмотрены правила разбора дат. Это важнее, чем кажется: дата участвует в сортировке, формировании событий и в практической навигации по коллекции. Перед массовыми исправлениями полезно проверить несколько файлов из одной камеры или сканера, чтобы не заменить корректные EXIF-значения ошибочным шаблоном.
Отдельный кадр открывается в lightbox. В нём можно переходить к соседним фотографиям, включить полноэкранный режим и слайд-шоу, а справа открыть информационную панель. В верхней части панели отображаются имя исходного файла, его размеры и объём; ниже — данные камеры и объектива, диафрагма, выдержка, фокусное расстояние, ISO, время, место, лица, теги, альбомы и блок похожих фотографий, если соответствующие данные присутствуют. Такой режим удобен для проверки архива: изображение остаётся крупным, а техническая информация не требует отдельного окна.
В lightbox доступны оценка и избранное. Порог, при котором рейтинг автоматически считается избранным, задаётся в настройках; по умолчанию ориентиром служит оценка четыре. Это позволяет выстроить простой отбор: сначала расставить рейтинг, затем работать с Favorites как с коротким списком лучших кадров. Для библиотеки, где оценки уже записаны в метаданных совместимым инструментом, LibrePhotos умеет читать рейтинг и при разрешённой синхронизации записывать его обратно.
Скрытие и корзина решают разные задачи. Hidden убирает кадр из основной ленты, не превращая его в удалённый. Trash используется, когда элемент действительно нужно вывести из рабочей библиотеки. Если файл исчез с диска вне LibrePhotos, запись о нём может сохраниться как отсутствующая: программа специально удерживает связанные метаданные, рейтинги, подписи, распознанные лица и членство в альбомах, чтобы информация не пропала из-за временно отключённого тома или перемещения. Для окончательной уборки таких записей предусмотрена отдельная операция удаления отсутствующих фотографий.
Просмотр по папкам, избранному и служебным выборкам
Хронология удобна не всегда. Если физическая структура каталога уже имеет смысл — например, Семья/2024/Отпуск или Сканирование/Плёнка-03 — можно пользоваться представлением Folders. Оно показывает дерево каталогов и помогает переходить по привычной структуре, не отказываясь от индексации и поиска. В современных сборках для папок предусмотрены хлебные крошки, постраничная навигация и агрегированные количества снимков во вложенных каталогах, поэтому глубоко вложенный архив остаётся управляемым.
Recently Added полезен для контроля свежего импорта: после копирования новой съёмки легко убедиться, что она действительно проиндексирована. No Timestamp собирает файлы, для которых LibrePhotos не смог уверенно определить время. Videos отделяет ролики от фотографий, а Favorites — отмеченные кадры. Эти представления не создают отдельные копии медиатеки; они показывают разные срезы одной базы. Поэтому изменение рейтинга, даты, лица или альбома сразу влияет на другие способы навигации.
Для коллекции с большим количеством технических изображений, скриншотов и промежуточных файлов стоит заранее решить, какие каталоги вообще должны попадать в сканирование. Чем меньше в библиотеке случайного мусора, тем полезнее автоматические альбомы, семантический поиск и статистика. В конфигурации можно задавать шаблоны исключений. Их удобно применять к служебным папкам устройств, кэшу и другим каталогам, которые физически лежат рядом с фотографиями, но не имеют ценности как часть архива.
Сканирование библиотеки и фоновая обработка
Добавление существующей коллекции начинается со Scan Library. Обычное сканирование ищет новые файлы и изменения, а Rescan предназначен для повторной обработки уже известных элементов, когда нужно обновить извлечённые данные или заполнить поля, появившиеся после изменения настроек. Во время прохода LibrePhotos создаёт записи в базе, формирует миниатюры, читает метаданные, определяет варианты одного снимка, извлекает лица и ставит в очередь дальнейшие задачи — подписи, теги, геокодирование и другие вычисления.
Важно различать завершение первичного прохода и завершение всей интеллектуальной обработки. Часть операций выполняется фоновыми рабочими процессами. Поэтому после того, как фотографии уже появились в ленте, подписи, места или результаты анализа лиц могут продолжать заполняться. В большой библиотеке это нормальное поведение. Администратор может смотреть состояние фоновых сервисов и журналы, а при диагностике — выгрузить отчёт serverstats.json с данными о процессоре, памяти, накопителе и статистикой пользователей.
Повторное сканирование стоит запускать осмысленно. Оно дороже по времени, чем поиск только новых файлов, и может снова выполнить тяжёлые этапы. Если изменён только провайдер геокодирования или требуется обновить конкретную категорию данных, сначала проверьте, есть ли отдельное действие для этой задачи. Для лиц, событий, дубликатов и вариантов файлов предусмотрены специализированные команды, позволяющие не перерабатывать всё без необходимости.
Когда библиотека монтируется в контейнер только для чтения, просмотр и анализ исходников остаются возможными, но операции, предполагающие запись непосредственно в медиафайл, будут ограничены. Это хорошая защитная схема для первого знакомства: сначала индексировать архив без права изменения оригиналов, оценить качество дат, лиц и тегов, а уже потом решать, нужен ли обратный экспорт отдельных метаданных.
Загрузка фотографий через интерфейс
Кроме сканирования серверной папки, LibrePhotos умеет принимать файлы через кнопку загрузки. Администратор должен разрешить uploads в Site Settings; в исходной конфигурации эта возможность может быть выключена, и тогда кнопка просто не показывается. Пользователь выбирает несколько изображений или видео, после чего клиент считает идентификатор, передаёт данные порциями и регистрирует файл. Для совпадающего содержимого предусмотрена проверка, предотвращающая бессмысленную повторную загрузку того же файла в рамках учётной записи.
При заданном каталоге сканирования веб-загрузки помещаются в подкаталог uploads/web внутри пользовательской области, а затем проходят обычный конвейер: метаданные, миниатюры, подпись, геолокация, даты альбомов и извлечение лиц. Это означает, что загруженный через интерфейс кадр не становится особым типом объекта — после обработки он участвует в поиске, распознавании и альбомах на тех же принципах, что и файлы, найденные при сканировании.
Для больших исходников качество канала и свободное место важнее, чем внешний вид индикатора прогресса. Если загрузка прерывается, сначала проверяют доступность каталога назначения и настройки разрешений, затем журнал фоновых задач. Не следует путать ошибку передачи файла с задержкой анализа: фотография может уже находиться в библиотеке, пока нейросетевые операции ещё выполняются.
Подключение Nextcloud и существующих каталогов
LibrePhotos умеет подключать Nextcloud: пользователь задаёт адрес и верхний каталог, после чего содержимое можно передать в библиотеку для обработки. Такой вариант удобен, если фотографии уже собираются в Nextcloud. Перед массовым импортом проверьте тестовую папку с реальными типами файлов, потому что у этой синхронизации есть собственные особенности, в том числе для видео.
Для серверной папки основное правило проще: LibrePhotos должен видеть путь внутри своей среды исполнения. Ошибка на хосте папка есть, в библиотеке пусто почти всегда требует проверки монтирования тома и фактического пути, доступного контейнеру. В конфигурации пути должны соответствовать тому, что видит сервис, а не только файловому менеджеру операционной системы. После изменения монтирования полезно открыть Library и выполнить Scan, а не ждать, что ранее отсутствовавший каталог появится автоматически.
Если файловый архив хранится на NAS, производительность сканирования зависит от сети и задержек чтения. Миниатюры, база и кэш моделей выгоднее держать на быстром накопителе сервера, а тяжёлые оригиналы можно оставить на ёмком хранилище. Такая схема не меняет функций LibrePhotos, но заметно ускоряет повседневную работу, потому что сетка и поиск чаще используют производные данные, а исходник нужен главным образом для полного просмотра и скачивания.
Метаданные: EXIF, рейтинг, время и параметры съёмки
LibrePhotos извлекает из файлов техническую информацию и показывает её в панели Details. Для фотографа наиболее полезны модель камеры, объектив, диафрагма, выдержка, ISO, фокусное расстояние, разрешение, размер файла и время съёмки. Для видео читаются доступные поля QuickTime, включая длительность и дату. Набор фактически заполненных строк зависит от контейнера и от того, что записала камера или предыдущая программа обработки.
Дата — один из ключевых атрибутов. Если в файле есть несколько кандидатов, LibrePhotos применяет правила выбора и разбора. Эти правила можно просматривать и настраивать. При смешанном архиве со сканами, экспортами мессенджеров и фотографиями разных камер полезно сначала найти типичные исключения: кадры без EXIF, файлы, у которых дата экспорта новее даты съёмки, и изображения с часовым поясом, отличным от принятого в библиотеке. Исправив закономерность, можно избежать сотен ручных правок.
Рейтинг читается и может записываться. Это даёт возможность сохранить отбор не только в базе LibrePhotos, но и в переносимых метаданных, если включена соответствующая синхронизация. Избранное связано с настраиваемым минимальным рейтингом: при стандартном пороге кадр с оценкой четыре или выше становится кандидатом в Favorites. Такой подход удобен, если рейтинг уже используется в другом фотокаталоге.
Поворот изображения тоже связан с политикой метаданных. Когда синхронизация отключена, изменение остаётся на уровне библиотеки. При разрешённой записи LibrePhotos может обновить оригинал или XMP-описание в соответствии с режимом. Перед включением записи на архиве без резервной копии лучше создать тестовую папку и проверить, как конкретные форматы и sidecar-файлы ведут себя в других программах.
Синхронизация метаданных и XMP
В настройках Metadata выбирается, должны ли изменения существовать только в базе, записываться в медиафайлы или сохраняться через XMP sidecar там, где это предусмотрено. Решение влияет на переносимость. База удобна и не касается оригинала, но привязывает изменения к экземпляру LibrePhotos. XMP позволяет перенести часть информации вместе с фотографиями и лучше сочетается с рабочими процессами, где один архив открывается несколькими каталогизаторами.
Особенно заметно это на лицах. LibrePhotos умеет писать подписанные лица как XMP MWG-RS regions — формат регионов, который понимают некоторые другие фотопрограммы. Возможен и обратный сценарий: при наличии RegionInfo можно импортировать размеченные области лиц, созданные, например, в digiKam, Lightroom или XnView. Это снижает объём повторной ручной разметки при миграции.
Запись метаданных нельзя рассматривать как нейтральную настройку. Она меняет файлы или создаёт sidecar рядом с ними, а права доступа и резервное копирование должны это учитывать. Если библиотека служит цифровым архивом с принципом оригиналы неизменяемы, безопаснее оставить запись отключённой и экспортировать нужные данные отдельным процессом. Если же переносимость рейтингов и лиц важнее, включать её стоит после проверки на копии нескольких JPEG, RAW и видео из реальной коллекции.
RAW, HEIC, видео и варианты одного снимка
Проект рассчитан не только на JPEG. Официальные материалы прямо указывают поддержку RAW, HEIC и видео, а интерфейс умеет показывать, что один логический снимок представлен несколькими файлами. Это особенно полезно фотографам, которые снимают RAW+JPEG: вместо двух соседних элементов с одинаковым сюжетом LibrePhotos может сгруппировать пару как file variants. Аналогичный принцип используется для Live Photos, где неподвижная фотография и связанный ролик должны восприниматься как один момент.
Группировка вариантов выполняется при сканировании в два этапа и опирается на каталог и базовое имя. В ленте остаётся одна запись, а в сведениях появляется переключатель форматов. При скачивании вариантный набор учитывается вместе: пользователь получает файлы, относящиеся к выбранному логическому снимку. Если старая библиотека была создана до появления механизма или пары сформировались неверно, в Library есть операция Repair file variants.
RAW-файл не следует путать с готовым проявлением. LibrePhotos выступает каталогом и средством просмотра, а не заменяет полноценный RAW-конвертер с экспозицией, кривыми, профилями камеры и локальной коррекцией. Его задача — держать RAW рядом с JPEG, отображать доступные производные и сделать набор удобным для поиска. Поэтому для творческой обработки разумно оставлять привычный редактор, а LibrePhotos использовать как слой организации и доступа к архиву.
Стеки для серий, брекетинга и связанных кадров
Stacks решают другую задачу, чем file variants. Варианты — это разные файлы одного снимка, например RAW и JPEG. Стек объединяет отдельные кадры, которые логически относятся к одной серии. В интерфейсе Organizing есть вкладка Stacks, где можно посмотреть группы, выбрать обложку, раскрыть кадры, разъединить их или объединить вручную. В основной ленте обычно показывается обложка, что уменьшает визуальный шум от похожих серий.
Автоматическое создание стеков может опираться на признаки серии. В настройках burst доступны правила по EXIF Burst Mode, sequence-полям и шаблону имени, а также дополнительные условия близости времени и визуального сходства. Для обычной серийной съёмки особенно полезно окно времени: кадры, снятые одной камерой почти подряд, рассматриваются как кандидаты. Перцептивное сходство помогает не объединять совершенно разные сцены только потому, что они появились с разницей в секунду.
Автоматика требует проверки. Репортажная серия на одном месте может содержать разные важные кадры, а брекетинг экспозиции визуально похож, но предназначен для дальнейшего HDR. Поэтому после массового обнаружения стеков стоит пройти Organizing и убедиться, что обложки выбраны правильно, а в одну группу не попали независимые сюжеты. Ручное объединение остаётся полезным для тех случаев, которые правила определить не могут.
Распознавание лиц и Face Dashboard
Лица — одна из самых сильных сторон LibrePhotos. Современный механизм использует InsightFace: детектор SCRFD находит область лица, а ArcFace строит векторное представление размерностью 512. Эти векторы затем применяются для кластеризации и сопоставления. Результат пользователь видит не как технические числа, а как группы лиц в Face Dashboard и персональные альбомы.
Рабочий процесс начинается с извлечения лиц, затем выполняется Train faces. В панели есть вкладки для уже подписанных, предполагаемых и неизвестных лиц. Для предполагаемого совпадения можно подтвердить имя или отклонить его. Это принципиально важно: автоматический результат является подсказкой, а не фактом. На детских фотографиях, близких родственниках, масках, сильном боковом ракурсе и старых сканах ошибки вероятнее, поэтому имена следует подтверждать человеком.
В Site Settings выбирается модель распознавания. Базовый вариант buffalo_sc экономнее по памяти. Более крупные buffalo_l и antelopev2 могут дать лучшую точность, но требуют больше ресурсов. После смены модели не стоит ожидать мгновенного улучшения уже рассчитанных признаков: нужно планировать соответствующую повторную обработку и следить за памятью. На машине с 4 ГБ тяжёлый профиль легко конкурирует с базой, миниатюрами и другими задачами.
Параметры кластеризации позволяют управлять тем, насколько охотно алгоритм объединяет лица. Minimum Cluster Size задаёт минимальный размер группы, Minimum Samples влияет на консервативность, Cluster Selection Epsilon — на слияние близких кластеров. Есть и порог Confidence when Matching Unknown — Other Faces. Изменять эти параметры лучше по одному и на библиотеке, где уже известны несколько сложных примеров; иначе невозможно понять, какая настройка ухудшила результат.
Команда Rescan Faces ищет лица там, где их ещё нужно обработать, а обучение работает с найденными представлениями. Удаление конкретного face-record имеет особый смысл: такое лицо скрывается из интерфейса и не должно заново появиться при обычном повторном поиске. Это полезно для ложных детекций — рисунков на футболке, лиц на плакате или сильно повреждённых фрагментов.
Люди, персональные альбомы и перенос разметки
После присвоения имени человеку формируется People album: он собирает фотографии, где это лицо связано с выбранной персоной. В отличие от ручного альбома, такой раздел поддерживается результатами распознавания. Если пользователь подтверждает новые лица, они становятся доступны в том же персональном представлении без ручного добавления каждого кадра.
При большой семейной коллекции выгодно начинать с часто встречающихся людей. Несколько десятков уверенных примеров для каждого ключевого родственника дают системе больше опорных точек, а затем можно обрабатывать предполагаемые совпадения. Если сразу подписывать редкие и плохо видимые лица, времени уходит больше, а практический эффект в поиске невелик. Отдельно стоит разобрать случаи одного человека в сильно разных возрастах: детские и взрослые фотографии могут потребовать больше ручного подтверждения.
Импорт XMP RegionInfo позволяет использовать ранее размеченные лица. Для архивов, которые годами велись в другом каталогизаторе, это важнее автоматического обучения с нуля. Перед миграцией проверьте несколько sidecar и встроенных XMP, чтобы убедиться, что имена и области читаются правильно. Если включена обратная запись face tags, LibrePhotos также может сохранить подтверждённую разметку в переносимом виде.
Распознавание сцен, Things и подписи
Раздел Things строится на автоматических тегах содержимого. В Site Settings можно выбрать модель классификации. Places365 ориентируется на категории сцен, а SigLIP 2 использует современное визуально-языковое представление и лучше подходит для более гибкой смысловой работы. Названия, которые появляются в Things, не являются ручными пользовательскими тегами: это машинные предположения, поэтому странная категория не означает, что метаданные исходника испорчены.
Автоматические подписи работают по схожему принципу: изображение анализируется, после чего формируется текстовое описание, которое можно использовать в поиске и просмотре. В зависимости от конфигурации доступно уточнение подписи языковой моделью. Для приватного архива важно понимать, где выполняется конкретный этап и какие внешние сервисы настроены администратором; если подключаются сторонние API, политика конфиденциальности определяется уже не только LibrePhotos.
Машинные теги удобны как навигация по неразмеченной библиотеке. Запрос вроде снег, интерьер или пляж может вывести кадры, к которым пользователь никогда не добавлял ключевые слова. Но для юридически значимой классификации, профессионального учёта или точного научного описания эти результаты нужно воспринимать как средство поиска кандидатов. Финальную категорию лучше подтверждать ручным тегом или альбомом.
Spotlight и обычный поиск
Глобальный Spotlight вызывается сочетанием Ctrl+K или Cmd+K и объединяет несколько направлений поиска. В одном поле можно находить людей, места, вещи, альбомы, теги, страницы интерфейса и команды. Клавиатурная навигация ускоряет работу, когда нужный раздел известен по названию: вместо последовательного раскрытия меню достаточно открыть Spotlight, начать ввод и перейти к результату.
Текстовый поиск использует подписи и индексируемые метаданные. Это полезно для технических запросов: найти кадры по камере, месту или другим сохранённым признакам. Качество результата напрямую зависит от того, что было извлечено при сканировании. Если камера не записала координаты, поиск по городу не сможет восстановить место из ничего; если у скана отсутствует дата, сначала потребуется ручная коррекция времени.
Spotlight также служит навигатором по служебным разделам. Через него можно быстро перейти к Favorites, Hidden, Videos, Trash, Recently Added, No Timestamp, Sharing, Faces Dashboard, Statistics, Settings, Profile, Library и административным экранам. Там же доступны команды сканирования, обучения лиц, генерации событий и другие действия, если у текущего пользователя есть соответствующие права.
Семантический поиск и похожие фотографии
Semantic Search ищет не буквальное совпадение слов в EXIF, а близость текста и изображения в общем пространстве признаков. Он полезен, когда пользователь помнит содержание, но не дату и не папку: человек у водопада, красная машина вечером, собака на снегу. В настройках эта возможность может быть выключена; также задаётся количество верхних результатов — например 10, 50 или 100.
Для семантики требуется индекс эмбеддингов. Он хранится в памяти процесса поиска и перестраивается после перезапуска backend, поэтому первый запрос после рестарта может быть ощутимо медленнее следующих. На очень большой библиотеке это нужно учитывать при диагностике: единичная задержка сразу после перезапуска не равна постоянной низкой производительности.
Блок Similar Photos в карточке кадра использует визуальную близость, чтобы показать похожие изображения. Это другой сценарий, чем Duplicate Photos. Похожими могут быть разные фотографии одного места или объекта; дубликаты же предназначены для поиска фактических копий и почти одинаковых кадров. Поэтому кнопку похожих удобно применять для поиска серии или повторяющегося сюжета, а освобождение диска начинать со специализированного детектора дубликатов.
Ручные альбомы и автоматические группы
LibrePhotos поддерживает несколько типов альбомов. User Albums создаются человеком: можно выделить кадры, добавить их в новый или существующий альбом, назначить название и затем менять состав. Это основной инструмент для подборок, смысл которых невозможно вывести из метаданных: для печати, портфолио, подарок бабушке, документы для проекта.
People Albums заполняются по распознанным лицам. Places строятся по геоданным. Things отражают результаты классификации сцен. Events формируются автоматически по временным разрывам между съёмками, но сама генерация запускается отдельной командой. Это важная особенность: после нового сканирования событие не обязано немедленно появиться, пока пользователь или администратор не инициирует Generate Event Albums.
Алгоритм событий группирует кадры прежде всего по времени. География и распознанные люди используются для названия и представления, а не как обязательное условие объединения. В результате поездка с несколькими соседними локациями может остаться одним событием, если фотографии сделаны непрерывно. Если же между двумя частями отпуска большой временной разрыв, вероятны отдельные события.
Автоматическая группа не должна заменять ручной альбом, если требуется стабильная авторская подборка. Модель, дата или место могут быть пересчитаны, тогда как пользовательский альбом выражает намерение владельца. Практичный подход — использовать автоматические разделы для обнаружения материала, а важные коллекции закреплять вручную.
Геолокация и раздел Places
Если фотография содержит GPS, LibrePhotos извлекает координаты и выполняет обратное геокодирование: превращает числовую точку в читаемые названия места. После обработки Places показывает географические группы, а карта позволяет исследовать библиотеку пространственно. Маркеры объединяются в кластеры при отдалении; при перемещении и изменении масштаба можно фильтровать видимые альбомы по области карты.
Место можно исправить вручную. В панели фотографии доступен выбор на карте и поиск позиции, что полезно для сканов и файлов с ошибочными координатами. Однако отсутствие GPS само по себе не даёт программе основания назначить точку: пользователь должен определить её сам. Для старого семейного архива разумно сначала привязать только значимые серии — дом, поездку, мероприятие — вместо попытки геокодировать каждый кадр.
Для обратного геокодирования доступны Nominatim и коммерческие провайдеры Mapbox, MapTiler, OpenCage и TomTom. Nominatim не требует ключа, но публичный сервис ограничивается примерно одним запросом в секунду, причём лимит общий для фоновых работников LibrePhotos. Поэтому десятки тысяч геотегированных фотографий могут получать названия мест ещё долго после основного сканирования. Подключение дополнительных workers этот конкретный предел не снимает.
Отдельно настраиваются картографические тайлы. Варианты — PhotoPrism, OpenStreetMap или None. Отключение карт через None скрывает картографический фон в Places, мини-карте фотографии и выборе координат. Это может быть полезно в закрытой сети или при строгих требованиях к приватности, потому что загрузка тайлов с внешнего сервера сама по себе раскрывает провайдеру приблизительно просматриваемую область.
Дубликаты: точные копии и визуальные совпадения
Duplicate Detection сочетает два метода. Точные копии определяются по MD5, а визуальные — по перцептивному хэшу, рассчитанному по крупной миниатюре. Второй метод может найти файлы, которые отличаются байтово из-за перекодирования, размера или метаданных, но выглядят очень похоже. Для старых записей, где perceptual hash ещё не рассчитан, перед поиском визуальных дублей может понадобиться Rescan.
В настройках detection задаётся чувствительность: Strict даёт меньше, но более уверенных совпадений; Normal предназначен для обычной проверки; Loose расширяет выборку и повышает риск ложных пар. Это не качество удаления, а ширина поиска кандидатов. На семейной библиотеке лучше начать со Strict или Normal, посмотреть несколько групп и только затем переходить к Loose.
Страница Duplicate Photos поддерживает состояния pending, resolved и dismissed. Пользователь видит потенциальную экономию места, может раскрыть группу и решить, какие файлы оставить. Нельзя удалять всё автоматически только потому, что картинки похожи: серия с разными выражениями лица, брекетинг и экспорт в разных разрешениях могут быть ценными самостоятельными файлами.
Есть документированная особенность интерфейса: фильтр Dismissed может не возвращать группы, потому что при отклонении связь между фотографиями удаляется. Если пользователь ожидает там историю всех отклонённых совпадений, отсутствие записей не обязательно означает сбой сканирования. Это пример ограничения, которое важно знать до большой кампании по очистке.
Общий доступ к альбомам
User Album можно открыть другим пользователям того же экземпляра или опубликовать по ссылке. Для публичной ссылки задаётся slug и срок действия: доступны фиксированные периоды и вариант без истечения. В диалоге отдельно контролируется, какие сведения увидит посетитель: местоположение, данные камеры, время, подписи и распознанные лица. Таким образом, общий доступ не обязан раскрывать всю техническую информацию, которая видна владельцу.
Публичные ссылки собраны в Sharing → Links. Оттуда можно открыть уже созданный адрес, скопировать его или вернуться к параметрам конкретного альбома. Настройки по умолчанию для новых публикаций задаются в профиле, но каждый альбом допускает собственную комбинацию. Для семейных фотографий разумно оставить координаты и распознанные лица выключенными, если получателям они не нужны.
Удаление фотографии из User Album удаляет только членство в подборке, а не исходный файл из библиотеки. Это снижает риск случайной потери при редактировании общедоступной подборки. Чтобы действительно удалить медиа, нужно использовать операцию для самой фотографии и понимать дальнейшее поведение корзины.
Несколько пользователей и границы приватности
LibrePhotos поддерживает несколько учётных записей, собственные каталоги сканирования и персональные метаданные. Администратор управляет регистрацией, пользователями и путями. Для домашнего сервера это удобно: каждый член семьи может иметь свой вход, а общие альбомы передаются через функции Sharing вместо одного общего пароля.
При этом файловая система остаётся первоисточником, и пользовательская изоляция в приложении не заменяет права доступа на уровне хоста. Если разные люди должны иметь строго разделённые исходные файлы, каталоги и монтирования нужно проектировать соответственно. Не стоит считать отдельный профиль автоматической песочницей для любых файлов, доступных контейнеру.
В административной области можно разрешить или запретить самостоятельную регистрацию и загрузки. Чем шире доступ из внешней сети, тем важнее закрыть ненужную регистрацию, использовать HTTPS на обратном прокси, хранить резервные копии базы и следить за обновлениями образов. LibrePhotos предоставляет управление библиотекой, но сетевой периметр, домен и резервирование остаются обязанностью владельца сервера.
Настройки пользователя и администратора
Профиль содержит имя, электронную почту, пароль, аватар, язык и параметры общего доступа. Интерфейс переводится через i18next; русская локализация присутствует в проекте и подходит для основных пользовательских разделов, хотя отдельные новые строки могут появляться сначала на английском. Смена языка не влияет на уже сохранённые подписи и пользовательские названия альбомов.
В Settings есть параметры отображения, слайд-шоу, альбомов, лиц, метаданных, семантического поиска, дубликатов, временной зоны и burst-группировки. Интервал слайд-шоу задаётся в секундах. Inferred faces confidence регулирует, какие предполагаемые лица будут показаны в персональных альбомах. Default timezone особенно важен для файлов, где время записано без полноценной информации о часовом поясе.
Администратор выбирает tagging model, map provider, map tiles и глобальные возможности вроде загрузки. В служебной зоне доступны состояние сервисов и журналы. Такая концентрация настроек полезна при диагностике: если исчезла карта, загрузка или модель классификации ведёт себя иначе, сначала проверяется Site Settings, а уже потом контейнеры и переменные среды.
Статистика и визуальный анализ коллекции
Раздел Statistics не просто считает количество файлов. Place Tree показывает иерархию мест в виде дерева или радиальной диаграммы; элементы можно раскрывать, масштабировать и искать. Это помогает увидеть географическую структуру архива — например, какие страны, города и районы встречаются чаще всего — без последовательного просмотра карт.
Word Clouds строятся по Places, Things и People и выводят до сотни наиболее заметных элементов. Для Things есть важное ограничение: облако рассчитано на категории Places365 и может быть пустым при использовании SigLIP 2. Поэтому отсутствие облака вещей при работающей классификации не обязательно означает, что теги не создаются; это различие конкретной визуализации и модели.
Timeline charts показывают изменение активности съёмки во времени. Social Graph связывает людей, которые появляются вместе на фотографиях, а Face Clusters визуализирует положение векторов лиц после проекции. Последний график полезен скорее как диагностика качества группировки: близкие точки должны образовывать понятные кластеры, но сама двумерная проекция не является оценкой личности или сходства в бытовом смысле.
Статистика особенно интересна после очистки дат, геолокации и лиц. Если половина архива находится в No Timestamp, а большинство GPS отсутствует, красивые диаграммы будут отражать качество метаданных, а не реальную историю съёмки. Поэтому сначала стоит привести ключевые атрибуты в порядок, а уже потом делать выводы по визуализациям.
Требования к ресурсам и совместимость
Официально указанный минимум — 4 ГБ оперативной памяти, 2 ядра процессора и около 10 ГБ места сверх объёма самой фотоколлекции. Рекомендуется 8 ГБ памяти или больше, четыре и более ядер и SSD для служебных данных. Причина повышенного требования к RAM — машинные функции: распознавание лиц, классификация сцен и генерация подписей одновременно используют модели и фоновые процессы.
Система запускается там, где поддерживается Docker; в качестве предпочтительной среды указан Linux. На Windows и macOS практический путь также проходит через Docker-совместимую среду, поэтому пользователю важнее корректное монтирование каталогов и достаточный объём памяти Docker, чем название настольной ОС. Для серверов NAS нужно отдельно проверить возможности конкретной модели и архитектуры.
Стандартная конфигурация рассчитана на x86 и ARM64. GPU-ускорение предусмотрено для NVIDIA и требует драйверов и NVIDIA Container Toolkit. При этом опубликованный GPU backend ориентирован на linux/amd64; ARM для этого варианта не поддерживается. Если сервер на ARM, планируйте машинный анализ на CPU и не закладывайте CUDA как обязательное ускорение.
Хранилище состоит не только из оригиналов. База, миниатюры, модели, кэш и служебные данные занимают дополнительное место, поэтому ровно 10 ГБ свободного пространства нельзя считать достаточным для крупной коллекции. SSD особенно полезен под базу и миниатюры; оригиналы при необходимости могут находиться на более ёмком томе.
Производительность на большой библиотеке
Первое индексирование — наиболее тяжёлая операция. Сервис читает каждый файл, создаёт производные изображения, извлекает EXIF и запускает машинный анализ. На десятках тысяч кадров время определяется не одним параметром: важны скорость чтения оригиналов, CPU, количество RAM, выбранные модели, наличие геоданных и число фоновых работников. Поэтому сравнивать две установки только по количеству фотографий некорректно.
Недостаток памяти обычно проявляется сильнее, чем недостаток ядер: тяжёлые модели могут вытеснять друг друга, а система начнёт активно использовать swap или перезапускать процессы. Если сервер близок к минимуму 4 ГБ, разумно сначала отключить необязательные ML-функции, завершить базовое сканирование и затем включать анализ поэтапно. На 8 ГБ и выше сценарий заметно комфортнее, что прямо отражено в официальной рекомендации.
Перцептивные хэши и эмбеддинги — дополнительные расчёты, но они экономят время пользователя позже. После заполнения индекса поиск похожих и дубликатов становится практичным; после распознавания лиц персональные альбомы не требуют ручного просмотра тысяч кадров. Имеет смысл проводить тяжёлую обработку ночью, когда сервер не занят другими задачами, а повседневный просмотр оставлять на уже подготовленных миниатюрах.
Если карта заполняется медленно при Nominatim, увеличение worker concurrency почти не помогает из-за ограничения частоты геокодирования. Если первый семантический запрос после restart медленный, причина может быть в восстановлении индекса в памяти. Если лента медленная всегда, проверяются база, накопитель, миниатюры и системная нагрузка. Разные симптомы требуют разных решений.
Первичная настройка без риска для архива
Безопасный старт лучше делать на копии небольшой репрезентативной выборки. Возьмите несколько JPEG, пару RAW+JPEG, HEIC, короткое видео, файлы с GPS и без него, старый скан без EXIF и кадр с уже записанным XMP-рейтингом. После первого Scan проверьте, как LibrePhotos определил даты, варианты, поворот, места и лица. Такая десятиминутная проверка выявляет больше проблем, чем попытка сразу прогнать весь архив.
На первом этапе оставьте Synchronize metadata to disk выключенным. Так можно оценить редактирование рейтинга, времени и лиц, не изменяя исходники. Если результаты устраивают и требуется переносимость, включите нужный режим на тестовом каталоге, измените несколько полей и откройте файлы в другом инструменте. Только после этого переносите политику на основной архив.
Далее задайте язык, часовую зону, модель лиц и модель тегирования. Не стоит одновременно менять все пороги кластеризации: стандартные значения дают базовую точку сравнения. Сначала подпишите несколько людей и посмотрите качество inferred faces. Если система объединяет разных людей — повышайте консервативность; если одно лицо постоянно распадается на множество групп — корректируйте параметры в обратную сторону.
После лиц настройте геокодирование и карту, затем запустите события и дубликаты. Такой порядок облегчает диагностику: в каждый момент понятно, какая новая функция добавила нагрузку или неправильные результаты. В конце создайте тестовый публичный альбом и проверьте его в приватном окне браузера, чтобы увидеть именно то, что увидит внешний посетитель.
Рабочий сценарий: семейный архив
Для семейного архива сначала полезно привести в порядок годы и людей. Сканируйте каталог, откройте No Timestamp и исправьте очевидные пробелы, затем подпишите нескольких самых часто встречающихся родственников. После обучения персональные альбомы быстро превращаются в навигацию по жизненным периодам: один человек может быть найден через десятилетия без знания имени папки.
Следующий слой — события и места. Generate Event Albums разделит непрерывные периоды съёмки, а GPS поможет назвать поездки и показать их на карте. Если старые фотографии не имеют координат, можно вручную поставить место только для важных серий. Не нужно заполнять данные ради полноты: несколько точных привязок полезнее тысячи приблизительных.
Для отправки родственникам создайте User Album, отберите кадры из людей, событий и поиска, а затем включите публичную ссылку. Перед публикацией отключите сведения, которые получателю не нужны: координаты, лица или параметры камеры. Срок действия ссылки удобен для временной передачи подборки после праздника или путешествия.
Рабочий сценарий: архив фотографа с RAW+JPEG
Фотографу выгодно сохранить исходную структуру съёмок и позволить LibrePhotos проиндексировать её без перемещения файлов. RAW+JPEG распознаются как варианты, поэтому лента не удваивается. После Scan нужно проверить несколько камер: одинаково ли сформированы базовые имена и не создают ли программы импорта неожиданные суффиксы, мешающие автоматической связке.
Рейтинг можно использовать как мост между каталогизацией и редактором. Если метаданные читаются из существующего XMP, избранные кадры сразу появляются в нужных выборках. При обратной записи рейтинг, подтверждённые лица и другие поддерживаемые поля могут быть сохранены переносимо. Но творческие параметры RAW-проявки LibrePhotos не заменяет и не должен использоваться как единственное место для них.
Для серийной съёмки настройте stacks. Сначала включите условия EXIF или filename pattern, затем при необходимости добавьте временную близость и визуальное сходство. В Organizing просмотрите результат и выберите обложки. Так репортаж из нескольких сотен почти одинаковых серий превращается в более чистую ленту, а оригинальные кадры остаются доступны внутри стека.
Duplicate Detection применяйте отдельно от stacks. Стек означает связанные кадры, дубликат — кандидат на устранение повторного файла. Смешение этих понятий опасно: похожие кадры серии могут быть нужны для отбора, а точная копия, случайно сохранённая в двух каталогах, обычно действительно избыточна.
Рабочий сценарий: путешествия и география
Для тревел-архива GPS превращает Places в один из главных разделов. После сканирования дождитесь обратного геокодирования и откройте карту. Кластеры покажут плотные точки съёмки, а дерево мест — иерархию стран и городов. Если часть кадров сделана камерой без GPS, координаты можно перенести вручную по памяти или по соседней серии, но LibrePhotos не назначает отсутствующую точку автоматически.
Events дополняют карту временем. Длинная поездка может дать несколько событий, если между днями съёмки есть существенные разрывы. Название события использует известные места и людей, поэтому сначала полезно дождаться геокодирования и хотя бы базового распознавания лиц, а затем генерировать события.
Для поиска сюжетов включите semantic search. Вместо перебора страны и даты можно искать визуальное содержание: мост, горы, ночной город, рынок. Результат стоит воспринимать как ранжирование кандидатов. Если нужен гарантированно полный набор для публикации, дополните семантический запрос ручной проверкой события, места и соседних дат.
Рабочий сценарий: старые сканы без EXIF
Сканированные фотографии требуют иной стратегии: автоматические дата и GPS часто отсутствуют, зато лица и визуальный поиск всё ещё полезны. Начните с No Timestamp и назначайте не точные минуты, а достоверные даты или хотя бы порядок там, где он известен. Если архив уже разложен по папкам 1970-е, Школа, Дача, Folders станет важной страховкой от неполных метаданных.
Лица на старых сканах могут распознаваться хуже из-за зерна, повреждений и маленького размера. Подписывайте уверенные крупные лица, а неоднозначные оставляйте в Unknown до появления лучших примеров. Неверно подписанное лицо создаёт больше работы, чем неподписанное, потому что ошибочные inferred matches распространяют путаницу на другие кадры.
Things и semantic search помогают найти визуальные темы даже без текстовых полей. Однако исторический снимок может содержать предметы и сцены, которые современная модель классифицирует неточно. Для устойчивой архивной разметки используйте ручные альбомы и теги, а машинные результаты оставляйте инструментом разведки.
Рабочий сценарий: очистка повторов
Перед поиском дублей сделайте резервную копию базы и убедитесь, что исходники доступны. Затем выполните Rescan, если библиотека старая и perceptual hashes могли не заполняться. Начните с exact matches: такие группы проще проверить, потому что содержимое совпадает байтово. После этого переходите к visual duplicates в режиме Normal.
В каждой группе смотрите не только миниатюру, но и размер файла, формат и контекст. JPEG может выглядеть так же, как RAW-превью, а уменьшенная копия — как оригинал, но удалять её не всегда правильно: она могла быть подготовлена для сайта или отправки. Перцептивный детектор отвечает на вопрос похоже ли изображение, а решение о ценности остаётся за владельцем.
Loose полезен в самом конце, когда очевидные повторы уже убраны. Чем шире чувствительность, тем больше серий и почти одинаковых кадров попадёт в кандидаты. Если группа важна и не должна снова мешать, её можно отклонить. Помните об особенности Dismissed: интерфейс не является полноценным журналом всех когда-либо отклонённых связей.
Типичные ошибки: библиотека не видит файлы
Если Scan завершается, но фотографии не появляются, первым делом проверяется путь scanDirectory и монтирование тома. Путь на хосте и путь внутри контейнера — не одно и то же. Сервис должен иметь возможность прочитать реальную директорию в своей файловой системе. Также проверьте шаблоны исключений: слишком широкий pattern способен отфильтровать целую ветку.
Если новые файлы видны, а старые нет, запустите Rescan для тестовой папки и посмотрите журнал. Не следует сразу удалять базу: ошибка может быть связана с неподдержанным или повреждённым файлом, правами доступа, неверной датой или зависшей фоновой задачей. Library показывает прогресс и служит лучшей отправной точкой, чем повторная установка.
При NAS-хранилище отдельно проверьте момент монтирования после перезагрузки. Если контейнер стартовал раньше сетевого тома, он может увидеть пустую точку монтирования. Автоматический запуск нужно организовать так, чтобы исходная библиотека была доступна до сканирования.
Типичные ошибки: нет кнопки загрузки или загрузка не завершается
Отсутствующая кнопка Upload часто объясняется настройкой Allow uploads. Она может быть выключена по умолчанию, и тогда интерфейс намеренно скрывает действие. Администратор включает загрузки в Site Settings; после изменения следует обновить страницу и убедиться, что текущая роль имеет доступ.
Если кнопка есть, но файл не появляется, разделите диагностику на передачу и обработку. Сначала проверьте, создан ли файл в uploads/web и хватает ли места. Затем смотрите очередь фоновых задач. Если файл уже сохранён, а миниатюра, подпись или лицо ещё отсутствуют, повторная отправка только создаст лишнюю работу.
При больших видео учитывайте ограничения прокси, если LibrePhotos открыт через внешний домен. Ограничение размера запроса или тайм-аут может находиться не в самом приложении, а в Nginx или другом обратном прокси. Проверка прямого доступа внутри сети помогает отделить сетевую конфигурацию от проблем библиотеки.
Типичные ошибки: лица определяются плохо
Если один человек постоянно разбивается на множество групп, начните с качества исходников: фронтальный ракурс, достаточный размер лица и несколько подтверждённых примеров дают лучший базис. Затем проверьте модель и параметры кластеризации. Слишком консервативные Minimum Samples и epsilon могут мешать объединению, а слишком мягкие — смешивать людей.
Когда LibrePhotos уверенно предлагает неправильного человека, не подтверждайте совпадение ради обучения. Отклоните его и добавьте более качественные образцы правильной персоны. Для близких родственников полезно иметь снимки разных периодов и освещения. Если модель менялась, планируйте повторный расчёт векторов, а не сравнивайте новый порог со старыми признаками.
Ложные области — лицо на постере, статуе или экране — можно удалить из Face Dashboard. Удаление face-record скрывает такой объект и предотвращает обычное повторное обнаружение того же нежелательного элемента. Это эффективнее, чем присваивать ему выдуманное имя.
Типичные ошибки: места не появляются или карта пустая
Сначала откройте Details конкретной фотографии и убедитесь, что GPS действительно прочитан. Если координат нет, геокодер ничего не сможет сделать. Если координаты есть, проверьте Map Provider и очередь фоновых задач. При Nominatim большой архив заполняется постепенно из-за ограничения частоты запросов.
Пустая карта при заполненных названиях мест может быть связана с Map Tiles = None. Это отдельная настройка от обратного геокодирования: можно получать текстовые города, но намеренно не загружать картографический фон. При выборе PhotoPrism или OpenStreetMap сервер браузера должен иметь доступ к соответствующим источникам тайлов.
Если после смены провайдера старые фотографии не получили новые места, выполните предусмотренную повторную обработку геоданных или Rescan по документации, а не редактируйте базу вручную. Ручная установка координат подходит для отдельных кадров, но не исправляет системную ошибку провайдера.
Типичные ошибки: метаданные не записываются
Проверьте Synchronize metadata to disk. Если режим выключен, изменение рейтинга, времени или лица может существовать только в базе — это ожидаемое поведение. При записи в XMP убедитесь, что каталог доступен на запись и sidecar можно создать рядом с исходником. При записи непосредственно в медиа права должны позволять изменение файла.
Если другой каталогизатор не видит лицо, проверьте именно формат XMP region tags и то, где LibrePhotos сохранил данные. Поддержка MWG-RS повышает совместимость, но разные программы по-разному обрабатывают sidecar для RAW, JPEG и видео. Тест на одном файле быстрее массового переписывания.
Наконец, отличайте метаданные библиотеки от параметров обработки RAW. Рейтинг и область лица относятся к каталогизации; кривые, маски и рецепт проявки конкретного RAW-редактора LibrePhotos не переносит как универсальную настройку. Такие данные нужно продолжать хранить в формате редактора.
Типичные ошибки: после обновления странное поведение контейнеров
В стандартной схеме недостаточно выполнить только docker compose pull. Файл docker-compose.yml тоже меняется со временем, поэтому документация рекомендует сначала обновить checkout, затем остановить сервисы, подтянуть образы и снова запустить compose. Если использовать старый compose-файл с новыми образами, новые переменные могут не передаваться в backend.
Отдельно задокументировано изменение тома PostgreSQL 18+: база должна монтироваться в /var/lib/postgresql, а не в старый путь /var/lib/postgresql/data. При обновлении существующей установки этот момент критичнее визуальных изменений интерфейса, потому что неверное монтирование затрагивает данные. Перед изменением схемы томов обязательна резервная копия базы.
После обновления, если интерфейс открылся, но часть функций не работает, проверьте состояние всех сервисов, логи и свободное место. Machine-learning workers, frontend, backend, proxy и база выполняют разные роли; работа одной страницы не доказывает, что фоновые процессы здоровы.
Сравнение LibrePhotos с аналогами
| Программа | Лучше подходит для | Главное ограничение |
|---|---|---|
| LibrePhotos | Существующих фотопапок, распознавания лиц, мест, смыслового поиска и подробной организации архива | Для машинного анализа желательно 8 ГБ памяти и требуется администрирование Docker |
| Immich | Автоматической выгрузки снимков со смартфонов и современной семейной медиатеки с быстрым доступом | Сервер и резервирование всё равно требуют внимания владельца |
| PhotoPrism | Индексирования большой коллекции, поиска, метаданных и карт с акцентом на существующий архив | Тяжёлая индексация предъявляет требования к серверным ресурсам |
| Photoview | Просмотра существующей структуры папок через относительно простой веб-каталог | Меньше развитых средств интеллектуальной организации и очистки |
| Piwigo | Ручных альбомов, публикации галерей и контролируемого веб-доступа к подборкам | Меньше акцента на автоматической ML-классификации личного архива |
Для мобильного резервного копирования сравнивайте Immich; для индексации папок — LibrePhotos и PhotoPrism; для простой галереи — Photoview; для публикации альбомов — Piwigo. ФотоМАСТЕР не прямой аналог: он и предназначен для редактирования снимков.
Что LibrePhotos не заменяет
LibrePhotos не следует выбирать ради ретуши, сложного цветокора или покадрового RAW-проявления. В нём есть операции, связанные с ориентацией, временем, рейтингом, тегами и географией, но нет набора кистей, масок, слоёв и тональных инструментов, характерного для фоторедактора. Для фотографа это не недостаток архитектуры, а граница назначения: каталог отвечает на вопрос где нужный кадр и что о нём известно.
Система также не является заменой резервного копирования. Индекс, база, миниатюры и публичные ссылки не создают независимую страховочную копию оригиналов. Архив должен иметь отдельную схему backup, а база LibrePhotos — собственное резервирование, если в ней накоплены ручные альбомы, подписи, рейтинги и подтверждённые лица.
Наконец, автоматическое распознавание не превращает фотографию в достоверно размеченный документ. Лицо, сцена, подпись и визуальное сходство всегда вероятностны. Для поиска это огромная экономия времени, но важные подписи, имена и категории следует подтверждать.
Когда LibrePhotos подходит особенно хорошо
Программа особенно уместна, если исходники уже лежат в понятной файловой структуре и владелец не хочет отдавать многолетний архив внешнему облаку. LibrePhotos добавляет к папкам веб-доступ, миниатюры, людей, места, события, статистику и поиск, не заставляя строить организацию только на одном принципе.
Второй удачный случай — семейная библиотека на домашнем сервере или NAS. Несколько пользователей получают отдельные входы, альбомы можно делиться внутри системы или по временной публичной ссылке, а лица и география делают старые снимки гораздо доступнее. При этом владелец контролирует, где расположены оригиналы и служебные данные.
Третий сценарий — фотограф, которому нужен интеллектуальный индекс поверх RAW+JPEG без отказа от специализированного редактора. Варианты файлов и стеки уменьшают дублирование в ленте, рейтинг и XMP связывают отбор с другими программами, а поиск по метаданным и похожим кадрам ускоряет возврат к старым съёмкам.
Когда стоит выбрать другой инструмент
Если единственная задача — быстро исправить экспозицию, убрать дефект кожи, заменить фон или подготовить фотографию к печати, серверная фототека создаст лишний слой и не даст нужного редакторского инструментария. Для такого процесса нужен фоторедактор. Если главное — автоматическая резервная выгрузка со смартфона с минимальной настройкой, стоит отдельно оценить решения, где мобильный backup является центральным сценарием.
Если сервер нельзя администрировать, нет возможности выделить хотя бы 4–8 ГБ памяти или фотоколлекция должна открываться без какой-либо собственной инфраструктуры, LibrePhotos окажется неудобным. Его преимущества связаны именно с контролем над хранилищем и вычислениями, а контроль требует обновлений, резервных копий и диагностики.
Для публичного фотосайта, где важнее оформление галерей, темы, комментарии и веб-публикация, специализированная галерея может подойти лучше. LibrePhotos умеет делиться альбомами, но его центр тяжести — личная фототека, поиск и организация.
Чек-лист перед импортом большой коллекции
- Проверьте резервную копию оригиналов и отдельно запланируйте backup базы LibrePhotos.
- Убедитесь, что сервер видит реальные каталоги и имеет стабильное монтирование после перезагрузки.
- Оставьте не менее 10 ГБ под служебные данные сверх размера фототеки; для большой базы предусмотрите заметный запас.
- Выделите 8 ГБ RAM или больше, если хотите активно использовать лица, сцены и подписи.
- На первом тесте отключите запись метаданных в оригиналы.
- Соберите выборку из JPEG, RAW, HEIC, видео, GPS-файлов и старых сканов.
- Проверьте даты и часовую зону до генерации событий.
- Настройте лица на нескольких известных людях, не меняя сразу все пороги кластеризации.
- Определите провайдера геокодирования и политику карт с учётом приватности.
- Сгенерируйте события только после базовой обработки дат и мест.
- Перед visual duplicate detection убедитесь, что для старых фото рассчитаны perceptual hashes.
- Перед публичной ссылкой проверьте, какие поля — GPS, лица, камера, время, подпись — реально видит гость.
Такой порядок снижает риск двух самых дорогих ошибок: массового изменения исходников до проверки настроек и многократного перерасчёта одной и той же коллекции из-за хаотичной смены моделей и параметров. LibrePhotos даёт много независимых механизмов, поэтому последовательная настройка обычно быстрее, чем попытка включить всё сразу.
Практические ответы на частые вопросы
Можно ли оставить исходники в существующих папках?
Да. Один из основных сценариев — сканировать уже существующую файловую библиотеку. Важно правильно смонтировать каталог и указать путь, доступный сервису. Для дополнительной защиты исходный том на первом этапе можно предоставить только для чтения, если не планируется запись метаданных.
Нужно ли вручную создавать альбом для каждого человека?
Нет. После распознавания и подписывания лиц People albums формируются автоматически. Пользователь подтверждает или отклоняет предполагаемые совпадения, а ручные User Albums остаются отдельным инструментом для авторских подборок.
Почему событие не появилось сразу после Scan?
Потому что генерация Event Albums запускается отдельной операцией. Сканирование индексирует файлы и ставит задачи обработки, но события создаются по команде Generate Event Albums. Перед запуском полезно дождаться корректных дат.
Можно ли искать фотографию по описанию, если тегов нет?
Да, для этого предназначен семантический поиск. Он сопоставляет текст с визуальными эмбеддингами и выдаёт наиболее близкие изображения. Результат ранжированный, а не гарантированно полный, поэтому для окончательной выборки его дополняют датой, местом или ручной проверкой.
Почему первая семантическая выдача после перезапуска медленнее?
Индекс сходства восстанавливается в памяти после запуска backend. Первый запрос может включать эту подготовку, последующие выполняются быстрее. Если замедление сохраняется постоянно, уже имеет смысл проверять ресурсы сервера.
Что произойдёт с RAW+JPEG?
При корректных именах и расположении они могут быть связаны как file variants одного логического снимка. В ленте не требуется показывать две независимые карточки, а доступ к форматам остаётся через сведения о фотографии.
Можно ли удалить дубликаты автоматически?
Детектор находит кандидатов, но визуальные совпадения нужно проверять. Перцептивный хэш способен считать похожими ценные кадры серии. Для безопасной очистки сначала разбирают точные MD5-копии, затем визуальные группы с умеренной чувствительностью.
Что делать, если карта нежелательна по соображениям приватности?
В Map Tiles можно выбрать None. Тогда картографический фон скрывается во всех соответствующих представлениях. Текстовые геоданные при этом являются отдельным аспектом и зависят от выбранного провайдера и уже сохранённых координат.
Есть ли смысл в GPU?
Для тяжёлых нейросетевых задач ускорение NVIDIA может быть полезно, но GPU-образ ориентирован на linux/amd64. Обычная CPU-конфигурация остаётся рабочей; на ARM следует рассчитывать именно на неё.
Почему русская локализация иногда смешивается с английскими строками?
Переводы развиваются вместе с интерфейсом, и новые элементы могут некоторое время не иметь готовой строки на выбранном языке. Это не влияет на данные библиотеки. Названия пользовательских альбомов, тегов и подписей остаются такими, какими их создал владелец.
Итоговая оценка рабочего процесса
LibrePhotos сильнее всего там, где надо не улучшить одну фотографию, а сделать доступными десятки тысяч уже существующих файлов. Хронология, Folders, People, Places, Things, ручные альбомы, события и Spotlight дают несколько независимых путей к одному кадру. Даже если часть EXIF неполна, лица и визуальный поиск могут компенсировать пробелы; если машинная классификация ошибается, ручные альбомы и теги остаются надёжной опорой.
Наиболее ценные функции требуют подготовки. Распознавание лиц выигрывает от подтверждённых примеров, география — от корректного GPS и работающего геокодера, события — от правильных дат, дубликаты — от рассчитанных хэшей, семантический поиск — от эмбеддингов и достаточной памяти. Поэтому качественная настройка LibrePhotos — это последовательное улучшение индекса, а не один переключатель проанализировать всё.
Если заранее продумать монтирование каталогов, резервное копирование, политику XMP и ресурсы для машинного анализа, программа становится удобным центром личной фототеки: оригиналы остаются под контролем владельца, а поверх них появляется поисковый и организационный слой, который трудно воспроизвести обычными папками. Для долгоживущего архива это и есть главный практический выигрыш.