这是一个利用多模态大型语言模型(Multimodal Large Language Models)为 Eagle 素材库中的图片和字体文件自动生成标签(Tags)和注释(Annotation)的 Python 脚本。
- 自动化处理:自动为图片和字体文件生成描述性的标签和注释。
- 双模式支持:支持两种模式运行:
- 本地模式:通过 LM Studio 等工具在本地部署和调用模型。
- 云端模式:通过 API 调用云服务提供商的模型(当前已集成通义千问
qwen-vl-max)。
- 高度可配置:通过
lm_config.json文件,可以轻松配置模型、API密钥、提示词模板和处理规则。 - 自定义提示词:可以为不同文件类型(如
.jpg,.png,.ttf)指定不同的提示词模板。 - CSV标签支持:使用
Tags-zh.csv标签表进行标准化标签生成和翻译,确保标签一致性。 - 内置标签库:将
Tags-zh.csv中的中文标签直接嵌入到提示词中,AI可以直接参考并使用这些标签,避免生成过多非标准化标签。 - 智能历史标签融合:从历史标签中提取3-5个最鲜明的特征标签,当没有合适的现有标签时,AI会优先考虑这些特征标签。
- 历史标签记忆:自动保存生成的标签到
history_tags.json,后续打标时参考历史标签保持一致性。 - 跨平台:基于 Python,可在 Windows, macOS, Linux 等系统上运行。
-
预处理标签库:
- 从
Tags-zh.csv中提取中文标签,并过滤掉不需要的标签(如人物名称) - 将过滤后的中文标签嵌入到提示词模板
PIC通用反推标签 2.txt中,形成内置标签库 - 保存提取的中文标签到
chinese_tags.txt文件中,便于后续维护
- 从
-
脚本触发运行(例如,通过
运行打标.bat)。 -
配置加载:
- 读取
lm_config.json配置文件,获取当前要使用的模式(本地/云端)、模型参数等信息 - 加载历史标签记录
history_tags.json,用于保持标签一致性 - 加载
Tags-zh.csv标签表,用于标签标准化和翻译
- 读取
-
数据准备:
- 根据文件类型(图片或字体),准备要发送给模型的数据
- 对于图片,将其转换为适合模型处理的格式(如 base64)
-
提示词构建:
- 加载对应的提示词(Prompt)模板文件(如
PIC通用反推标签 2.txt) - 从历史标签中提取3-5个最鲜明的特征标签,当没有合适的现有标签时使用
- 加载对应的提示词(Prompt)模板文件(如
-
模型调用:
- 将数据和完整的提示词发送给指定的大语言模型(本地或云端)
- 等待模型返回结果
-
结果处理:
- 接收模型返回的 JSON 格式结果,包含生成的标签和注释
- 使用
Tags-zh.csv进行标签标准化和翻译 - 去重处理,确保标签不重复
- 更新历史标签记录
-
结果应用:
- 将处理后的标签和注释写入到素材文件的
metadata.json中 - 保持与 Eagle 素材库的兼容性
- 将处理后的标签和注释写入到素材文件的
/
├── lm_clipboard_tag.py # 主程序脚本
├── restore.py #还原操作脚本
├── lm_config.json # 配置文件,所有设置都在这里
├── requirements.txt # Python 依赖库
├── 运行打标.bat # Windows 下的快捷运行脚本
├── 还原打标.bat # Windows 下的快捷运行脚本
├── PIC通用反推标签 2.txt # 图片文件的提示词模板(增强版)
├── 字体反推提示模板.txt # 字体文件的提示词模板
├── Tags-zh.csv # 中英双语标签表,用于标准化标签生成
├── history_tags.json # 历史标签记录,用于保持标签一致性
└── README.md # 项目说明文档
-
安装 Python 依赖:
- 确保您已安装 Python 3.x。
- 运行以下命令来安装所需的库:
pip install -r requirements.txt
-
配置本地环境 (仅本地模式需要):
- 安装 LM Studio: 从 官网 下载并安装 LM Studio。
- 配置硬件加速: 在 LM Studio 的设置中,将硬件加速(Hardware Acceleration)设置为
Vulkan以获得最佳性能。 - 下载模型: 在 LM Studio 内搜索并下载推荐的模型,例如:
qwen/qwen3-vl-4bqwen/Qwen3-VL-30B-A3B-Instruct
- 加载模型: 将下载好的模型加载到本地AI服务器上。
这是最关键的一步。打开 lm_config.json 文件进行修改。
provider_mode: 设置为1使用 本地模式,设置为2使用 云端模式。
local_base_url: 设置你本地模型服务(如 LM Studio)的 API 地址,通常是http://localhost:1234/v1。local_model: 设置加载到本地服务中的模型标识符。
cloud_base_url: 云服务商的 API 地址。默认已填好通义千问的地址。cloud_model: 要使用的云端模型名称,例如qwen-vl-max。api_key: (重要) 填入你的云服务商提供的 API Key。
templates_by_ext: 为不同后缀名的文件指定不同的提示词模板文件。image_rules/font_rules: 控制是否为图片/字体生成注释和标签。- 模型参数(
temperature,top_p等):根据需要调整模型的创造性和随机性。
- 完成上述安装与配置。
- 对于本地模式:确保你的本地模型服务(如 LM Studio)已经启动,并加载了正确的模型。
- 对于云端模式:确保你的 API Key 正确且账户有足够余额。
- 在eagle复制文件的路径, 双击
运行打标.bat或在终端中运行python lm_clipboard_tag.py来启动打标。 - 在eagle复制文件的路径, 双击
还原打标.bat或在终端中运行python lm_clipboard_tag.py来启动还原操作。提示:你可以通过使用quiker软件来快速打开指定文件
- 添加对于其他任意类型文件,通过阅读thumbnail图片给出标签的能力(已实现)
- 重构和简化AI生成的代码,删除不必要的内容,使其更容易被人类维护
- 进一步降低AI生成的标签的随机性,使标签重复率更高。可以通过设置“固定标签库”+“动态标签库”+修改提示词模板来实现。