Skip to content

这是一个利用多模态大型语言模型(Multimodal Large Language Models)为 Eagle 素材库中的图片和字体文件自动生成标签(Tags)和注释(Annotation)的 Python 脚本。

License

Notifications You must be signed in to change notification settings

dandancow874/EagleAutoTag

Repository files navigation

Eagle Auto Tagger

这是一个利用多模态大型语言模型(Multimodal Large Language Models)为 Eagle 素材库中的图片和字体文件自动生成标签(Tags)和注释(Annotation)的 Python 脚本。

主要功能

  • 自动化处理:自动为图片和字体文件生成描述性的标签和注释。
  • 双模式支持:支持两种模式运行:
    1. 本地模式:通过 LM Studio 等工具在本地部署和调用模型。
    2. 云端模式:通过 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 等系统上运行。

工作流程

  1. 预处理标签库

    • Tags-zh.csv 中提取中文标签,并过滤掉不需要的标签(如人物名称)
    • 将过滤后的中文标签嵌入到提示词模板 PIC通用反推标签 2.txt 中,形成内置标签库
    • 保存提取的中文标签到 chinese_tags.txt 文件中,便于后续维护
  2. 脚本触发运行(例如,通过 运行打标.bat)。

  3. 配置加载

    • 读取 lm_config.json 配置文件,获取当前要使用的模式(本地/云端)、模型参数等信息
    • 加载历史标签记录 history_tags.json,用于保持标签一致性
    • 加载 Tags-zh.csv 标签表,用于标签标准化和翻译
  4. 数据准备

    • 根据文件类型(图片或字体),准备要发送给模型的数据
    • 对于图片,将其转换为适合模型处理的格式(如 base64)
  5. 提示词构建

    • 加载对应的提示词(Prompt)模板文件(如 PIC通用反推标签 2.txt
    • 从历史标签中提取3-5个最鲜明的特征标签,当没有合适的现有标签时使用
  6. 模型调用

    • 将数据和完整的提示词发送给指定的大语言模型(本地或云端)
    • 等待模型返回结果
  7. 结果处理

    • 接收模型返回的 JSON 格式结果,包含生成的标签和注释
    • 使用 Tags-zh.csv 进行标签标准化和翻译
    • 去重处理,确保标签不重复
    • 更新历史标签记录
  8. 结果应用

    • 将处理后的标签和注释写入到素材文件的 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               # 项目说明文档

安装与配置

1. 前置需求

  1. 安装 Python 依赖:

    • 确保您已安装 Python 3.x。
    • 运行以下命令来安装所需的库:
      pip install -r requirements.txt
  2. 配置本地环境 (仅本地模式需要):

    • 安装 LM Studio: 从 官网 下载并安装 LM Studio。
    • 配置硬件加速: 在 LM Studio 的设置中,将硬件加速(Hardware Acceleration)设置为 Vulkan 以获得最佳性能。
    • 下载模型: 在 LM Studio 内搜索并下载推荐的模型,例如:
      • qwen/qwen3-vl-4b
      • qwen/Qwen3-VL-30B-A3B-Instruct
    • 加载模型: 将下载好的模型加载到本地AI服务器上。

2. 配置 lm_config.json

这是最关键的一步。打开 lm_config.json 文件进行修改。

模式选择

  • provider_mode: 设置为 1 使用 本地模式,设置为 2 使用 云端模式

本地模式配置 (provider_mode = 1)

  • local_base_url: 设置你本地模型服务(如 LM Studio)的 API 地址,通常是 http://localhost:1234/v1
  • local_model: 设置加载到本地服务中的模型标识符。

云端模式配置 (provider_mode = 2)

  • cloud_base_url: 云服务商的 API 地址。默认已填好通义千问的地址。
  • cloud_model: 要使用的云端模型名称,例如 qwen-vl-max
  • api_key: (重要) 填入你的云服务商提供的 API Key。

其他配置

  • templates_by_ext: 为不同后缀名的文件指定不同的提示词模板文件。
  • image_rules / font_rules: 控制是否为图片/字体生成注释和标签。
  • 模型参数(temperature, top_p 等):根据需要调整模型的创造性和随机性。

如何使用

  1. 完成上述安装与配置。
  2. 对于本地模式:确保你的本地模型服务(如 LM Studio)已经启动,并加载了正确的模型。
  3. 对于云端模式:确保你的 API Key 正确且账户有足够余额。
  4. 在eagle复制文件的路径, 双击 运行打标.bat 或在终端中运行 python lm_clipboard_tag.py 来启动打标。
  5. 在eagle复制文件的路径, 双击 还原打标.bat 或在终端中运行 python lm_clipboard_tag.py 来启动还原操作。提示:你可以通过使用quiker软件来快速打开指定文件

未来计划

  1. 添加对于其他任意类型文件,通过阅读thumbnail图片给出标签的能力(已实现)
  2. 重构和简化AI生成的代码,删除不必要的内容,使其更容易被人类维护
  3. 进一步降低AI生成的标签的随机性,使标签重复率更高。可以通过设置“固定标签库”+“动态标签库”+修改提示词模板来实现。

About

这是一个利用多模态大型语言模型(Multimodal Large Language Models)为 Eagle 素材库中的图片和字体文件自动生成标签(Tags)和注释(Annotation)的 Python 脚本。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •