LLMImageIndexer — это интеллектуальный инструмент обработки и индексирования изображений, который использует локальный искусственный интеллект для создания полных метаданных для вашей коллекции изображений. Этот инструмент использует расширенные языковые модели для анализа изображений и создания подписей и метаданных ключевых слов.
Интеллектуальный анализ изображений : использует локальную модель искусственного интеллекта для генерации переменного количества ключевых слов и подписи для каждого изображения.
Улучшение метаданных : можно автоматически редактировать метаданные изображения с помощью сгенерированных тегов.
Локальная обработка : вся обработка выполняется локально на вашем компьютере.
Поддержка нескольких форматов : обрабатывает широкий спектр форматов изображений, включая все основные файлы RAW камеры.
Удобный графический интерфейс : включает графический интерфейс и программу установки. Для всех функций искусственного интеллекта используется Koboldcpp, единый исполняемый файл.
Ускорение графического процессора : будет использоваться оборудование Apple Metal, Nvidia CUDA или AMD (Vulkan), если оно доступно, для значительного ускорения вывода.
Кроссплатформенность : поддерживает Windows, macOS ARM и Linux.
Возможность остановки и запуска : можно останавливать и запускать без необходимости повторной обработки всех файлов.
Постобработка ключевых слов : разверните ключевые слова, чтобы все синонимы добавлялись к каждому изображению с одним из синонимов, или выполните дедупликацию ключевых слов, используя наиболее часто используемый синоним вместо всех совпадающих синонимов.
Прежде чем приступить к использованию этого скрипта, вы должны знать следующее:
Это проект, созданный человеком, совершенно незнакомым с формальными протоколами, используемыми профессиональными фотографами. Если вы полагаетесь на свою фотографию для оплаты счетов, вам следует тщательно протестировать эффект этого сценария, прежде чем запускать его для чего-то важного.
Если указано на запись метаданных, они будут записаны в следующие теги с помощью exiftool: MWG:Keywords, XMP:Description, Status, XMP:Identifier. Это не обязательно имена тегов, которые, по решению exiftool, будут использоваться. Разработчик exiftool, вероятно, является ведущим экспертом по схеме метаданных файлов и знает подходящее место для размещения метаданных лучше, чем я когда-либо мог надеяться. Я потратил много времени на то, чтобы сделать это как можно более «минимальным воздействием», сохраняя при этом возможность отслеживать состояние обработанных изображений без центральной базы данных или хранилища информации, чтобы файлы можно было перемещать куда угодно или переименовывать без необходимости. проблема, но вам необходимо убедиться, что данные в этих полях не окажут негативного влияния на ваши изображения.
Это достаточно технический процесс. Надеюсь, все просто работает, и я пытался это сделать, но у меня ограниченная (re:none) возможность протестировать это на других машинах или платформах, поэтому может возникнуть любое количество ошибок. Я буду стараться работать с людьми над решением проблем, но вы должны обладать техническими навыками, чтобы устранять неполадки и следовать указаниям. Если вы не можете этого сделать, вам следует продолжать с колебаниями.
Питон 3.8 или выше
КобольдCPP
Нужна модель видения, но если для ее открытия использовать llmii-run.bat, то при первом запуске он загрузит gguf MiniCPM-V 2.6 Q4_K_M и проектор F16 из репозитория Бартовски на Huggingface. Если вы не хотите его использовать, просто откройте llmii-no-kobold.bat, откройте Koboldcpp.exe и загрузите любую модель, которая вам нравится.
Клонируйте репозиторий или загрузите ZIP-файл и распакуйте его.
Установите Python для Windows.
Загрузите KoboldCPP.exe и поместите его в папку LlavaImageTagger. Если имя файла не KoboldCPP.exe, переименуйте его в KoboldCPP.exe.
Запустите llmii-run.bat
и дождитесь установки exiftool. Когда он будет завершен, вам придется запустить файл снова. Если вы вызвали его из окна терминала, вам нужно будет закрыть окна и снова открыть его. Затем он создаст среду Python и загрузит веса модели. Загрузка довольно большая (6 ГБ), индикатор выполнения отсутствует, но сделать это нужно только один раз. Как только это будет сделано, KoboldCPP запустится, и в одном из окон терминала появится сообщение Please connect to custom endpoint at http://localhost:5001
, и тогда все будет готово.
Клонируйте репозиторий или загрузите ZIP-файл и распакуйте его.
Установите Python 3.7 или выше, если он еще не установлен. Вы можете использовать Homebrew:
brew install python
Установите ExifTool:
brew install exiftool
Загрузите KoboldCPP для macOS и поместите его в папку LLMImageIndexer.
Откройте терминал в папке LLMImageIndexer и запустите:
chmod +x koboldcpp-mac-arm64 ./llmii-run.sh
Клонируйте репозиторий или загрузите и распакуйте ZIP-файл.
Установите Python 3.7 или выше, если он еще не установлен. Используйте менеджер пакетов вашего дистрибутива, например, в Ubuntu:
sudo apt-get update sudo apt-get install python3 python3-pip
Установите ExifTool. В Убунту:
sudo apt-get install libimage-exiftool-perl
Загрузите соответствующий двоичный файл KoboldCPP для вашего дистрибутива Linux из выпусков KoboldCPP и поместите его в папку LLMImageIndexer.
Откройте терминал в папке LLMImageIndexer и запустите:
chmod +x koboldcpp-linux-x64 ./llmii-run.sh
Для всех платформ скрипт настроит среду Python, установит зависимости и загрузит необходимые веса модели (всего 6 ГБ). Эта первоначальная настройка выполняется только один раз и займет несколько минут в зависимости от скорости загрузки.
Запустите графический интерфейс LLMImageIndexer:
В Windows: запустите llmii-run.bat
В macOS/Linux: запустите python3 llmii-gui.py
Убедитесь, что KoboldCPP работает. Подождите, пока в окне KoboldCPP не появится следующее сообщение:
Please connect to custom endpoint at http://localhost:5001
Настройте параметры индексации в графическом интерфейсе:
Выберите целевой каталог изображений
Установите URL-адрес API (по умолчанию: http://localhost:5001).
Выберите теги метаданных для создания (ключевые слова, описания)
Установите дополнительные параметры (сканирование подкаталогов, резервных копий файлов и т. д.).
Нажмите «Запустить индексатор изображений», чтобы начать процесс.
Отслеживайте ход выполнения в области вывода графического интерфейса.
Каталог : целевой каталог образа (по умолчанию включает подкаталоги).
URL-адрес API : конечная точка API KoboldCPP (измените при запуске на другом компьютере)
Пароль API : установите, если этого требует ваша настройка KoboldCPP.
Подпись : попросите LLM описать изображение и установить его в XMP:Description (время обработки удваивается).
GenTokens : количество токенов, которые LLM будет генерировать.
Пропускать обработанные файлы, которых нет в базе данных : не будет пытаться повторно обработать файлы с UUID и ключевыми словами, даже если их нет в базе данных llmii.json.
Ошибка повторной обработки : если какие-либо файлы не удалось обработать в последнем раунде, они попытаются обработать их еще раз.
Повторно обработать ВСЕ : файлы, которые уже обработаны, сохраняются в базе данных и пропускаются, если вы возобновите работу позже, это приведет к их повторной обработке.
Не сканировать подкаталоги : отключить сканирование подкаталогов.
Не делайте резервные копии перед записью : пропустите создание файлов резервных копий (ПРИМЕЧАНИЕ: это относится к обработке и постобработке; если вы включите постобработку и оставите этот флажок неотмеченным, будет создана вторая резервная копия!)
Режим имитации : имитирует обработку без записи в файлы или базу данных.
Пропустить обработку : если вы хотите использовать обработку ключевых слов и не хотите, чтобы она проверяла каждое изображение в каталоге перед запуском, установите этот флажок.
Ключевые слова : выберите очистку и запись новых ключевых слов или обновление существующих.
Ключевые слова постобработки : сохранять ключевые слова в том виде, в каком они были сгенерированы, расширять ключевые слова, применяя все синонимы к совпадающим ключевым словам, или ключевые слова Dedepe, заменяя совпадающие синонимы наиболее частыми синонимами; эти параметры действуют после завершения индексатора, если не установлен флажок «пропустить обработку».
Обратитесь к вики для получения дополнительной информации и действий по устранению неполадок.
Вклады приветствуются! Пожалуйста, не стесняйтесь отправить запрос на включение.
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.
ExifTool для манипулирования метаданными
KoboldCPP для локальной обработки ИИ
PyQt6 для инфраструктуры графического интерфейса
Исправьте поврежденный JSON и Json Repair, чтобы помочь с искаженным анализом JSON.