LLMImageIndexer 是一款智能图像处理和索引工具,它利用本地 AI 为您的图像集合生成全面的元数据。该工具使用高级语言模型来分析图像并生成标题和关键字元数据。
智能图像分析:利用本地人工智能模型为每张图像生成可变数量的关键字和标题。
元数据增强:可以使用生成的标签自动编辑图像元数据。
本地处理:所有处理都在您的计算机上本地完成。
多格式支持:处理多种图像格式,包括所有主要的原始相机文件。
用户友好的 GUI :包括 GUI 和安装程序。依赖于 Koboldcpp(单个可执行文件)来实现所有 AI 功能。
GPU 加速:如果可以的话,将使用 Apple Metal、Nvidia CUDA 或 AMD (Vulkan) 硬件来大幅加快推理速度。
跨平台:支持Windows、macOS ARM和Linux。
停止和启动功能:可以停止和启动,而无需再次重新处理所有文件。
关键字后处理:扩展关键字,以便将所有同义词添加到具有同义词之一的每张图像中,或者通过使用最常用的同义词代替所有匹配同义词来删除重复的关键字。
在继续使用此脚本之前,您应该了解以下内容:
这是一个由完全不熟悉专业摄影师使用的正式协议的人制作的项目。如果您依靠摄影来支付账单,则应该在对任何重要的事情运行该脚本之前广泛测试该脚本的效果
如果指示写入元数据,它将使用 exiftool 写入以下标签:MWG:关键字、XMP:描述、状态、XMP:标识符。这些不一定是 exiftool 决定将使用的标签的名称。 exiftool 开发人员可能是文件元数据模式方面最重要的专家,并且比我希望的更好地知道放置元数据的适当位置。我确实花了很多时间来使其尽可能“低影响”,同时仍然保持跟踪已处理图像的状态的能力,而无需中央数据库或信息存储库,以便文件可以移动到任何地方或重命名,而无需使用中央数据库或信息存储库。问题,但您需要确保您的图像不会受到这些字段中的数据的负面影响
这是一个相当技术性的过程。希望一切正常,我试图做到这一点,但我在其他机器或平台上测试这一点的能力有限(re:none),因此可能会出现任何数量的错误。我会努力与人们合作解决问题,但您应该具备排除故障并遵循指示的技术技能。如果你做不到这一点,你应该犹豫不决地继续。
Python 3.8 或更高版本
狗头人CPP
需要一个视觉模型,但如果您使用 llmii-run.bat 打开它,那么第一次运行时,它将从 Huggingface 上的 Bartowski 存储库下载 MiniCPM-V 2.6 Q4_K_M gguf 和 F16 投影仪。如果您不想使用它,只需打开 llmii-no-kobold.bat 并打开 Koboldcpp.exe 并加载您喜欢的任何模型。
克隆存储库或下载 ZIP 文件并将其解压缩。
安装适用于 Windows 的 Python。
下载 KoboldCPP.exe 并将其放置在 LlavaImageTagger 文件夹中。如果它的名称不是 KoboldCPP.exe,请将其重命名为 KoboldCPP.exe
运行llmii-run.bat
并等待 exiftool 安装。完成后,您必须再次启动该文件。如果您从终端窗口调用它,则需要关闭窗口并重新打开它。然后它将创建一个 python 环境并下载模型权重。下载相当大(6GB)并且没有进度条,但只需要执行一次。完成后,KoboldCPP 将启动,其中一个终端窗口将显示Please connect to custom endpoint at http://localhost:5001
,然后就准备好了。
克隆存储库或下载 ZIP 文件并将其解压缩。
如果尚未安装,请安装 Python 3.7 或更高版本。您可以使用自制程序:
brew install python
安装 Exif 工具:
brew install exiftool
下载适用于 macOS 的 KoboldCPP 并将其放入 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
安装 Exif 工具。在Ubuntu上:
sudo apt-get install libimage-exiftool-perl
从 KoboldCPP 版本下载适合您的 Linux 发行版的 KoboldCPP 二进制文件,并将其放置在 LLMImageIndexer 文件夹中。
在 LLMImageIndexer 文件夹中打开终端并运行:
chmod +x koboldcpp-linux-x64 ./llmii-run.sh
对于所有平台,该脚本将设置 Python 环境、安装依赖项并下载必要的模型权重(总共 6GB)。此初始设置仅执行一次,并且需要几分钟时间,具体取决于您的下载速度。
启动 LLMImageIndexer GUI:
在 Windows 上:运行llmii-run.bat
在 macOS/Linux 上:运行python3 llmii-gui.py
确保 KoboldCPP 正在运行。等到您在 KoboldCPP 窗口中看到以下消息:
Please connect to custom endpoint at http://localhost:5001
在 GUI 中配置索引设置:
选择目标图片目录
设置 API URL(默认:http://localhost:5001)
选择要生成的元数据标签(关键字、描述)
设置附加选项(抓取子目录、备份文件等)
单击“运行图像索引器”开始该过程。
监视 GUI 输出区域中的进度。
Directory :目标图像目录(默认包含子目录)
API URL : KoboldCPP API 端点(如果在另一台机器上运行则更改)
API 密码:如果您的 KoboldCPP 设置需要,请设置
说明文字:让 LLM 描述图像并将其设置在 XMP:Description 中(处理时间加倍)
GenTokens :LLM 生成的代币数量
跳过不在数据库中的已处理文件:不会尝试重新处理具有 UUID 和关键字的文件,即使它们不在 llmii.json 数据库中
重新处理失败:如果上一轮有任何文件失败,它将尝试再次处理它们
重新处理全部:已处理的文件存储在数据库中,如果稍后恢复,则跳过,这将重新处理它们
不要抓取子目录:禁用子目录扫描
写入前不要进行备份:跳过创建备份文件(注意:这适用于处理和后处理;如果您启用后处理并保留此选项,它将进行第二次备份!)
假装模式:模拟处理而不写入文件或数据库
跳过处理:如果您想使用关键字处理并且不希望它在开始之前检查目录中的每个图像,请选中此框
关键字:选择清除并写入新关键字或更新现有关键字
后处理关键字:保持生成的关键字,通过将所有同义词应用于匹配关键字来扩展关键字,或通过用最常见的同义词替换匹配同义词来扩展关键字;这些选项在索引器完成后发生,除非选中“跳过处理”框
请参阅 wiki 以获取更多信息和故障排除步骤。
欢迎贡献!请随时提交 Pull 请求。
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅许可证文件。
用于元数据操作的 ExifTool
用于本地 AI 处理的 KoboldCPP
PyQt6 GUI 框架
修复损坏的 JSON 和 Json Repair 以帮助解决损坏的 JSON 解析