Спросите HN: Каков стек 2025 года для самостоятельной библиотеки фотографий с локальным ИИ? Прежде всего, это чисто личный учебный проект для меня, направленный на объединение трех моих страстей: фотографии, разработки программного обеспечения и моих семейных воспоминаний. У меня большая коллекция семейных фотографий, и я хочу создать интерактивный опыт для их изучения, как функции Google или Apple Photo.
Моя цель — создать систему с возможностями интеллектуального поиска, и одно из самых важных требований — чтобы она работала полностью на моем локальном оборудовании. Конфиденциальность — это ключ, но главный драйвер — это вызов и радость от самостоятельного создания (очевидно, чему поучиться).
Ключевые особенности, на которые я ориентируюсь:
Автоматическая идентификация и маркировка членов семьи (локальное распознавание лиц).
Создание описательных подписей для каждой фотографии.
Поиск на естественном языке (например, «Покажи мне наши фотографии на пляже в Лукильо прошлым летом»).
Я уже подсказал инструменты ИИ для высокоуровневого плана проекта, и они предоставили надежный план (например, Ollama с LLaVA, векторная база данных, такая как ChromaDB, вы знаете ее). Теперь мне очень интересен реальный человеческий опыт. Я ищу советы, обучающие истории и мелкие детали, которые появляются только при создании чего-то похожего.
Какие инструменты, модели и лучшие практики вы бы рекомендовали для такого проекта в 2025 году? В частности, мне интересно объединить структурированные метаданные (EXIF), данные распознавания лиц и семантический векторный поиск в единое, связное приложение.
Буду очень признателен за любые советы. Спасибо!
Я строил нечто подобное, но для личного пользования.
На данный момент я использую модель SentenceTransformer для фрагментации файлов, blip для субтитров («Семейный отпуск в Банфе, февраль 2025 г.») и mtcnn с InsightFace для распознавания лиц. Мой индекс хранит субтитры, вставки лиц и метаданные EXIF (дата, GPS) для запросов типа «показать наши фотографии в Банфе прошлой зимой». Я работаю над интеграцией ChromaDB для более быстрого поиска.
В конечном итоге я планирую хранить индексы следующим образом:
{
“filename”: “/Vacation/Banff/Wife.jpg”, “chunk_id”: 0, “text”: “Семья в Банфе, февраль 2025 г.”, “caption_embedding”: [0.1, 0.2, …], “face_embeddings”: [{“name”: “NT”, “embedding”: [0.3, 0.4, …]}, …], “exif”: { “DateTimeOriginal”: “2025:02:15”, “GPSCoordinates”: “18.387, -65.992” } }
Я также создал пользовательский интерфейс (похожий на Spotlight Search) для поиска по этим индексам.
Код (в процессе): https://github.com/neberej/smart-search
Я думаю, Иммих проверяет многие из них.
Мне также интересно узнать о лучшем локальном высококачественном удалении фона, например, для изображений с градацией, где люди носят кисточки.
Это может вас не заинтересовать, но Ente отвечает большинству этих пунктов для меня. У него есть распознавание лиц и поиск объектов на основе ИИ из коробки, и вы можете разместить их сервер с открытым исходным кодом самостоятельно без каких-либо ограничений. Модели, которые они использовали, могут вас заинтересовать.
Я бы попробовал модели Qwen перед LLaVa
Вам нужно, чтобы вставки были приватными? Или только фотографии?
https://immich.app/
https://github.com/LibrePhotos/librephotos
https://github.com/photoprism/photoprism
Source: news.ycombinator.com