Dataset Tools for Metadata & Captioning

详情

模型描述

数据集工具:AI 元数据查看器

依赖审查 CodeQL 构建状态


英文README Wiki 讨论 通知 许可证


Dataset Tools 是一款桌面应用程序,旨在帮助用户浏览和管理其图像数据集,特别是用于 AI 艺术生成工具(如 Stable Diffusion WebUI Forge、A1111、ComfyUI)和模型文件(如 Safetensors)的数据集。该工具使用 Python 和 PyQt6 开发,提供直观的图形界面,用于浏览文件、查看嵌入的生成参数以及检查相关元数据。

本项目受到 AI 艺术社区工具的启发,尤其是 receyuki 的 stable-diffusion-prompt-reader,旨在帮助用户优化其数据集整理工作流程。我们欢迎贡献!欢迎分叉仓库并提交拉取请求!


联系与支持我们


GitHub Discord Twitch 在 Ko-fi 上支持我们


功能

  • 轻量且快速:专为快速加载和高效元数据显示而设计。

  • 跨平台:使用 Python 和 PyQt6 构建(兼容 Windows、macOS、Linux)。

  • 全面的元数据查看

    • 清晰显示提示信息(正向、负向、SDXL 特有)。
    • 展示来自各种 AI 工具的详细生成参数。
  • 直观的文件处理

    • 拖放:轻松加载单个图像文件或整个文件夹。拖入的文件会自动选中。
    • 文件夹浏览与文件列表导航。
  • 图像预览:为选中图像提供清晰、可缩放的预览。

  • 复制元数据:一键将解析的元数据复制到剪贴板。

  • 可主题化的界面:支持通过 qt-material 应用主题(如 dark_pink、light_lightgreen_500)。

  • 高级元数据引擎

    • 完全重构的解析系统:全新的 MetadataEngine,具备优先级检测、强大的 Unicode 处理和全面的格式支持。
    • 增强的 ComfyUI 支持:高级工作流遍历、节点连接分析,支持现代自定义节点(如 smZ CLIPTextEncode 等)。
    • CivitAI 集成:全面支持 CivitAI 的双元数据格式,包含 URN 资源提取和工作流解析。
    • 坚如磐石的 Unicode 处理:通过完备的回退链和鲁棒编码检测,彻底消除乱码问题。
    • A1111 格式修复:修复并增强 A1111 JPEG 支持,改进检测规则。
    • 智能回退系统:当专用解析器无法处理文件时,系统会优雅地回退至内置解析器,确保最大兼容性。
    • 25+ 专用解析器:为多种 AI 工具和平台提供专用解析器,持续扩展中。
    • 模型文件支持:增强元数据查看功能(Safetensors 和 GGUF 支持即将推出!)
  • 可配置日志:通过命令行参数控制应用日志的详细程度,便于调试。

已知问题

  • Material 主题兼容性:集成的 qt-material 主题虽然视觉效果出色,但并非 100% 兼容所有 PyQt6/Qt6 元素。尽管应用仍可正常运行,但可能存在一些细微的视觉不一致。我们正积极寻找替代方案,并计划在未来迁移到 Tkinter,以解决这些及其他兼容性问题。

  • 高级解析器:高级解析功能已完成约 75%。目前我们难以让大量 T5 类模型在 ComfyUI 中被正确解析。如果您或您认识的人使用 ComfyUI,并能提供有关工作流或当前使用节点的信息,我们将非常感激!

  • Draw Things:XMP 提取器可能有效,但由于对 Draw Things 的数据有限,且原始内置代码当前无法运行,我们尚不确定其实际工作情况。

支持的格式

Dataset-Tools 旨在从多种来源读取元数据。当前支持能力包括:

AI 图像元数据

  • A1111 webUI / Forge:PNG(parameters 块)、JPEG/WEBP(UserComment)。
  • ComfyUI
    • 标准 PNG(在 "prompt" 块中嵌入工作流 JSON)。
    • Civitai 生成的 JPEG/PNG(UserComment JSON,含 "extraMetadata")。
    • 高级 ComfyUI 工作流:虽然支持许多工作流,但部分复杂或自定义的 ComfyUI 工作流可能尚未完全解析。我们正持续改进兼容性。请提供未解析的工作流示例以帮助我们改进!
  • NovelAI:PNG(旧版 "Software" 标签及 "Comment" JSON;Alpha 通道中的 Stealth LSB)。
  • Midjourney:流行规则!这是旧时代的黄金标准(嘘,我凌晨一点写的)。
  • InvokeAI:(当前正在重构,此版本可能无法正确解析。修复计划在下一次重大更新中推出。)
  • Easy Diffusion:PNG、JPEG、WEBP(嵌入 JSON 元数据)。
  • Fooocus:PNG("Comment" 块 JSON)、JPEG(JFIF 注释 JSON)。
  • Midjourney YAY
  • RuinedFooocus:JPEG(UserComment JSON)。
  • Draw Things:(当前正在重构,此版本可能无法正确解析。修复计划在下一次重大更新中推出。)
  • StableSwarmUI:PNG、JPEG(EXIF 或 PNG/UserComment 中的 "sui_image_params")。
  • (其他格式的支持正在开发中,详情请参阅问题或讨论)

即将推出和/或部分支持的文件类型

模型文件元数据(头部信息)

  • .safetensors
  • .gguf

其他文件类型

  • .txt:显示内容。
  • .json.toml:显示内容(未来:结构化视图)。

安装

安装非常简单,且跨平台。由于可执行文件可能导致未来问题(当开发者无法确定其工作原理时),目前我们仍处于密集开发阶段,发布可执行文件至少还需数月甚至近一年。然而,将工具推送到 PYPI 以外的包管理系统计划正在顺利进行中。接下来我们将优先支持 Homebrew,以及 Windows 和 Linux 的兼容包管理器!

🚀 快速安装(推荐)

一条命令即可完成:

pip install kn-dataset-tools
dataset-tools

要求:Python 3.10 或更高版本

搞定!工具将启动带有 GUI 界面的 AI 元数据查看器。


📦 从源码安装

如果您希望获取最新开发版本:

git clone https://github.com/Ktiseos-Nyx/Dataset-Tools.git
cd Dataset-Tools
pip install .
dataset-tools

🔧 高级安装(可选)

对于开发者或偏好隔离环境的用户:

点击展开高级选项

使用虚拟环境

# 创建虚拟环境
python -m venv dataset-tools-env

# 激活环境
# Windows: dataset-tools-env\Scripts\activate
# macOS/Linux: source dataset-tools-env/bin/activate

# 安装
pip install kn-dataset-tools

使用 uv(最快)

uv pip install kn-dataset-tools

对于贡献者

git clone https://github.com/Ktiseos-Nyx/Dataset-Tools.git
cd Dataset-Tools
pip install -e .  # 开发用可编辑安装

🆚 与 SD Prompt Reader 对比

与专注于基础提示查看的 SD Prompt Reader 不同,Dataset Tools 提供:

  • 高级 ComfyUI 工作流分析
  • LoRA 训练元数据提取
  • 25+ 专用 AI 格式解析器
  • 模型文件支持(SafeTensors、GGUF)
  • 全面的元数据引擎

两款工具都非常优秀! 请选择更符合您工作流程的那一个。

使用方法

启动应用程序

    python dataset_tools

安装后,从终端运行应用程序

   dataset-tools

高级命令行选项

 python -m dataset_tools.main [选项]

提示

    --log-level LEVEL:设置日志详细程度。

选项:DEBUG、INFO(默认)、WARNING、ERROR、CRITICAL。简写形式:d、i、w、e、c(不区分大小写)。

   示例:python -m dataset_tools.main --log-level DEBUG

GUI 交互

加载文件

  1. 点击“打开文件夹”按钮,或使用“文件 > 更改文件夹...”菜单选项。
  2. 拖放:将单个图像/模型文件或整个文件夹直接拖到应用程序窗口上。
  3. 如果拖入单个文件,其父文件夹将被加载,且该文件将自动在列表中选中。
  4. 如果拖入文件夹,该文件夹将被加载。

导航

  1. 从左侧面板的列表中选择文件以查看其详细信息。

    • 图像预览:选中的图像将在右侧预览区显示。非图像文件或无法预览的文件将显示“无可用预览”信息。
    • 元数据显示:解析的提示(正向、负向)、生成参数(步数、采样器、CFG、种子等)及其他相关信息将显示在图像预览下方/旁边的文字区域中。提示信息和生成信息的标题将根据检测内容自动更新。
    • 复制元数据:使用“复制元数据”按钮,将当前显示的解析元数据(来自文字区域)复制到系统剪贴板。
    • 文件列表操作排序文件:点击“排序文件”按钮,按类型(图像 → 文本 → 模型)对文件列表进行字母排序。
    • 设置与主题:通过底部的“设置...”按钮或“查看 > 主题”菜单访问应用设置(如显示主题、窗口大小偏好)以快速更改主题。

主题

目前,该应用中为 PyQt6 分支提供了大量令人震惊、夺目、刺眼且充满梗图风格的主题,均以 QSS 格式提供。未来开发将包括类似格式的 Tkinter 主题。请注意,本应用的主要开发者完全不懂 QSS,只是想提供一些好的和坏的主题。您可以通过访问 QSS 主题 使用这些主题。您应该能将自定义的 QSS 样式表放入主题文件夹中。我们的疯狂并非必需,您也无需感谢我们。是的,我们已提供主题信息免责声明,我们不拥有其中任何名称、品牌或概念,也无意冒犯——请相信我,没人会因为使用“只有母亲才会爱的颜色”这个主题而嘲笑你,你肯定想试试。

我们还使用了以下导入主题:

未来开发路线图

核心功能:

  • 模型文件支持: 完整的 Safetensors 和 GGUF 元数据显示与编辑功能。

  • 完整元数据编辑: 高级图像元数据编辑与保存功能。

  • 插件架构: 可扩展的插件系统,便于添加自定义解析器和功能。

  • 批量操作: 从文件夹导出元数据、根据元数据重命名文件、批量处理。

  • 高级搜索与过滤: 基于元数据内容和参数的数据集搜索与过滤。

用户体验:

  • 增强的 UI/UX: 改进的提示显示,支持语法高亮的文本文件查看。(计划迁移至 Tkinter 以提升跨平台兼容性和 UI 一致性。)

  • 主题系统扩展: 增加更多主题和自定义选项。

  • 键盘快捷键: 为高级用户提供全面的快捷键支持。

平台与集成:

  • 独立可执行文件: 为 Windows、macOS 和 Linux 提供原生构建版本。

  • PyPI 发布: 官方包分发,支持 pip install dataset-tools

  • CivitAI API 集成: 直接查询模型和资源。

  • 跨平台兼容性: 增强对不同操作系统的支持。

技术改进:

  • 全面的测试套件: 自动化测试以确保稳定性并防止回归。

  • 增强的格式支持: 支持更多 AI 工具格式和元数据标准。

  • 性能优化: 提升大型数据集的加载和处理速度。

  • 错误处理: 改进错误报告与恢复机制。

生态系统集成:

  • 数据集管理工具: 与 HuggingFace、模型下载器和转换工具集成。

  • 工作流集成: 支持 AI 生成工作流与管道管理。

  • 社区功能: 解析器共享、格式贡献系统。

贡献

欢迎您的贡献!无论是错误报告、功能请求、文档改进还是代码提交,请随时参与。

  • 问题(Issues): 请查看问题标签页中已有的 bug 或建议。如未发现您的问题,请新建一个清晰描述并附上复现步骤(针对 bug)的 issue。

  • 拉取请求(Pull Requests): 分叉本仓库,为您的功能或修复创建新分支(git checkout -b feature/您的功能名称 或 bugfix/问题编号)。进行修改并提交清晰、描述性强的提交信息。将分支推送至您的分叉仓库(git push origin feature/您的功能名称)。向 Ktiseos-Nyx/Dataset-Tools 仓库的主分支提交拉取请求,并在 PR 中清晰说明您的更改。

许可证

本项目依据 GNU 通用公共许可证 GPL 3.0 授权。完整许可证文本请参阅仓库根目录下的 LICENSE 文件。

致谢

  • 核心解析逻辑与灵感来源: 本项目整合并显著改进了由 receyuki 开发的 Stable Diffusion Prompt Reader 的解析功能。感谢其基础性工作。原始仓库:stable-diffusion-prompt-reader 该嵌入代码的原始 MIT 许可证包含于 NOTICE.md 文件中。

  • UI 主题: 精美的 PyQt 主题得益于 qt-material(由 DunderLab 开发)、GTRONICK - GTRONICKS 以及 UNREAL STYLE SHEET 创建者 UNREAL STYLESHEET

  • 核心依赖库: 本项目依赖众多优秀的开源 Python 库,包括 PillowPyQt6piexifpyexiv2tomlPydanticRich。各库的许可证条款适用。

  • Anzhc 持续的支持与鼓励。

  • 我们的同行及更广泛的 AI 与开源社区,感谢你们持续的支持与启发。

  • AI 语言模型(如来自 Google、OpenAI、Anthropic 的模型),在开发过程中协助代码生成、文档编写与问题解决。

  • ……还有更多!


支持我们

如果您觉得 Dataset Tools 有用,请考虑支持创作者!

Join us on Discord Support us on Ko-fi Follow us on Twitch

此模型生成的图像

未找到图像。