Dataset Tools for Metadata & Captioning
详情
下载文件
关于此版本
模型描述
数据集工具:AI 元数据查看器
Dataset Tools 是一款用于浏览和管理 AI 图像数据集的桌面应用程序,支持全面的元数据提取。无论您是整理来自 A1111、ComfyUI、Civitai 或其他工具的生成结果,还是仅仅好奇某张酷炫图像的生成参数是什么,Dataset Tools 都能为您解决。
该工具使用 Python 和 PyQt6 构建,提供直观的界面,用于查看嵌入的生成参数、ComfyUI 工作流、模型元数据,甚至非 AI 图像的相机 EXIF 数据。
面向未来:我们正在考虑使用 Electron 重新开发前端界面。如果您有任何担忧、建议或想法,请随时加入我们的 Discord、提交 issue 或使用 GitHub 讨论区。我们将始终为任何 PyQt6 分支提供错误修复和问题支持。我们理解用户并不总是喜欢剧烈的变更,因此我们希望未来过渡尽可能平滑。
社区驱动开发:本项目灵感来源于 stable-diffusion-prompt-reader,并依赖社区贡献。发现错误?有无法解析的工作流?想为新工具添加支持?我们欢迎分支、修复和合并请求! 这是一个由社区构建、为社区服务的工具。
功能
轻量且快速:专为快速加载和高效元数据显示设计,内置智能缓存机制。
跨平台:使用 Python 和 PyQt6 构建(兼容 Windows、macOS、Linux)。
灵活的视图模式:
- 缩略图网格视图:通过缩略图预览直观浏览图像。
- 文件树视图:通过可展开的树状结构导航文件夹层级。
- 可调整窗口大小:自定义窗口尺寸,所有布局均动态适配。
全面的元数据查看:
- 清晰显示提示信息(正面、负面、SDXL 专用)。
- 展示来自多种 AI 工具的详细生成参数。
- 元数据编辑:直接在应用中修改并保存图像元数据。
- 非 AI 图像:查看来自相机和软件的 EXIF/XMP 数据(隐私提示:我们不会提取 GPS 坐标——没人需要知道您在 macOS 上的蓝牙垃圾信息 😄)。
直观的文件处理:
- 拖放支持:轻松加载单个图像文件或整个文件夹,拖入的文件会自动选中。
- 文件夹浏览与文件列表导航。
图像预览:清晰、可缩放的选定图像预览。
复制元数据:一键将解析的元数据复制到剪贴板。
可主题化界面:提供 40 多种主题的广泛主题浏览器,涵盖专业风格到“只有妈妈能欣赏的颜色”。
高级元数据引擎:
- 完全重建的解析系统:全新 MetadataEngine,支持优先级检测、强大的 Unicode 处理和全面的格式支持。
- 增强的 ComfyUI 支持:高级工作流遍历、节点连接分析,支持现代自定义节点。
- CivitAI 集成:支持双重元数据格式,包含 URN 资源提取和 Civitai API 集成(需 API 密钥以获取增强资源数据)。
- 坚如磐石的 Unicode 处理:通过完备的回退链和鲁棒编码检测消除乱码问题。
- 智能缓存:智能元数据缓存减少冗余解析,提升浏览速度。
- 智能回退系统:当专业解析器无法处理文件时,系统会优雅回退至内置解析器,确保最大程度兼容性。
- 25+ 专用解析器:为多种 AI 工具与平台提供专用解析器,持续扩展中。
- 模型文件支持:增强元数据查看功能(Safetensors 和 GGUF 支持正在开发中!)。
可配置日志:控制应用日志详细程度以辅助调试(参见 调试模式)。
已知问题
UI 局限性(v0.x)
PyQt6 布局问题:当前 PyQt6 UI 在不同屏幕分辨率下存在视口缩放和按钮居中方面的已知限制。虽然功能正常,但在调整窗口大小或使用非标准显示配置(4K、5K Retina 等)时,部分布局元素可能显得不一致。
Material 主题兼容性:集成的
qt-material主题虽视觉美观,但与所有 PyQt6/Qt6 元素并非 100% 兼容,可能存在轻微视觉不一致。未来 UI 方向:我们正积极研究在 v1.0 中迁移到 Electron,以解决上述 UI 限制,提供更好的主题灵活性、跨平台一致性以及更简易的无头/CLI 集成。Python 解析核心将保持不变——仅重写 UI 层。此方案仍在考虑中。如果您对 Chromium/Electron(隐私、资源消耗等)有顾虑,或有其他建议,请加入 Issue 或 Discord 讨论。
解析器状态
高级解析器:高级解析已完成约 75%。我们持续修复边缘情况并提升提取精度。目前我们正遇到难以解析大量 T5 风格模型在 ComfyUI 中的工作流问题。如果您或您认识的人正在使用 ComfyUI,并能提供关于工作流或当前使用的节点信息,我们将不胜感激。
Draw Things:XMP 提取器可能可用,但由于对 DrawThings 数据有限,且原始内置代码目前失效,我们尚不确定其实际工作状态。
注意:这是活跃开发软件(v0.x)。我们仍在修复错误和优化功能。可能会有粗糙之处,但核心解析稳定可靠!
支持的格式
Dataset-Tools 旨在读取多种来源的元数据。当前支持包括:
AI 图像元数据:
AI 图像生成工具:
Automatic1111 WebUI / Forge:PNG(参数块)、JPEG/WEBP(UserComment EXIF)。
ComfyUI:(提取并非 100% 完美——总有人创建出破坏解析的工作流!但我们始终致力于支持最新自定义节点。)
- 标准工作流(PNG 的 "prompt"/"workflow" 块)
- FLUX 工作流(UNETLoader、ModelSamplingFlux、FluxGuidance)
- SD3、SDXL、SD1.5 工作流
- Efficiency Nodes(Efficient Loader、KSampler Efficient)
- DynamicPrompts(带通配符的批量生成)
- QuadMoon 自定义节点(感谢 Joel Traugdor 让应用崩溃,同时也感谢您监督代码!)
- HiDream 工作流
- ComfyRoll 生态系统
- Griptape 工作流
- PixArt/T5 基础模型
- AuraFlow、Lumina、Kolors
- 高级采样器(SamplerCustomAdvanced、BasicGuider)
- 文本组合器与提示操作节点
- 以及其他众多自定义节点生态系统!
CivitAI 图像:
- FLUX 生成图像(A1111 和 ComfyUI 格式)
- A1111 风格生成
- 从 Civitai 导出的 ComfyUI 工作流
- LoRA 训练器输出
- 通过 Civitai API 增强:URN 提取和资源查询(需在设置中提供 API 密钥)
InvokeAI:PNG/JPEG 元数据提取
Draw Things:XMP 元数据支持(macOS/iOS)
SwarmUI / StableSwarmUI:PNG/JPEG 参数提取
Fooocus / RuinedFooocus:Comment 和 UserComment 元数据
Easy Diffusion:嵌入式 JSON 元数据
Mochi Diffusion:macOS 特定格式支持
NovelAI:PNG(旧版 "Software" 标签、"Comment" JSON、Stealth LSB Alpha 通道)
Midjourney:Discord 时代的元数据格式
非 AI 图像:
- 相机/照片元数据:来自相机和图像编辑软件的 EXIF、IPTC、XMP 数据
- 隐私提示:我们刻意不提取 GPS 坐标——您的位置数据保持私密!(这也是因为 macOS 上 PyQt6 需要蓝牙权限)
模型文件元数据(头部信息):
.safetensors- 仅限 LoRA(及相关类型).gguf(未知)
其他文件类型:
.txt:显示内容。.json:显示内容。
注意:非图像文件在网格视图中尚不显示缩略图——我们正在为更好的文件类型可视化添加 SVG 图标!
依赖项
Dataset-Tools 依赖多个优秀的开源库:
核心依赖:
- PyQt6 - GUI 框架(跨平台桌面界面)
- Pillow (PIL) - 图像处理与元数据提取
- pyexiv2 - 高级 EXIF/IPTC/XMP 元数据读取(增强集成 pypng)
- pypng - 用于大型 ComfyUI 工作流的 PNG 块读取
- piexif - 额外的 EXIF 操作
- pydantic - 数据验证与设置管理
- rich - 美观的终端输出与日志系统
- toml - 配置文件解析
- requests - 用于 Civitai API 集成的 HTTP 请求
- cryptography - 用于 CivitaiAPI 密钥的 Fernet 加密
- NumPy - 增强型工作流 NumPy 系统
- defusedxml - 安全的元数据提取
- jsonpath-ng - 支持 JSON Path 的 ComfyUI 工作流
所有依赖项均通过 pip 自动安装。
安装
安装简单且跨平台,目前没有可执行文件,因为这类文件在开发者无法确定其工作原理时可能在未来引发问题。目前我们仍处于密集开发阶段,发布可执行文件可能还需数月甚至近一年时间。然而,将软件推送到 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 . # 开发用可编辑安装
使用方法
启动应用程序
安装后,在终端中运行应用程序:
dataset-tools
完成!图形界面将启动,您可以开始浏览您的 AI 图像数据集。
调试模式
点击展开高级日志与调试模式
需要排查提取问题或报告漏洞?启用详细日志:
# 完全调试输出(最详细)
dataset-tools --log-level DEBUG
# 或使用简写形式
dataset-tools --log-level d
# 其他可用日志级别
dataset-tools --log-level INFO # 默认 - 正常运行
dataset-tools --log-level WARNING # 仅显示警告
dataset-tools --log-level ERROR # 仅显示错误
调试日志会显示详细的解析器决策、节点检测和提取步骤——非常适合找出为何某个工作流无法正确解析!
图形界面交互
加载文件:
点击“打开文件夹”按钮,或使用“文件 > 更改文件夹...”菜单选项。
拖放:将单个图像/模型文件或整个文件夹直接拖到应用程序窗口上。
如果拖放的是单个文件,其父文件夹将被加载,该文件会在列表中自动选中。
如果拖放的是文件夹,则该文件夹将被加载。
导航:
从列表/树视图中选择文件 以查看其详细信息
查看模式:
缩略图网格: 带图像预览的视觉浏览
文件树: 层级文件夹导航
通过“查看”菜单在模式间切换
图像预览:
选中的图像将在预览窗格中显示
可按需缩放、平移和调整大小
非图像文件显示“无预览可用”
元数据显示:
提示信息: 正面与负面提示
生成参数: 步数、采样器、CFG、种子、模型等
原始工作流: 完整的 ComfyUI 工作流 JSON(如有)
编辑元数据: 点击“编辑”按钮修改并保存元数据
复制元数据: 一键复制到剪贴板
设置与配置:
主题: 通过设置按钮或“查看 > 主题”菜单访问
Civitai API 密钥: 在设置中输入以获取增强的资源数据
窗口大小: 所有布局均可调整大小——拉伸以适应您的工作流程!
字体偏好: 自定义文本显示
主题
Dataset-Tools 内置 40+ 种主题,可通过内置主题浏览器访问:
专业主题:适用于严肃工作
Material Design 主题:现代美学风格
复古/控制台主题:怀旧终端氛围
梗图主题:如“只有妈妈会喜欢的颜色”(真的有!)
自定义主题:将您自己的 QSS 样式表添加到 themes 文件夹!
通过 查看 > 主题 菜单或设置按钮访问主题。我们的主题库从精美到...离谱都有,不加评判——用让你开心的就好!
主题致谢:
GTRONICK - QSS 主题灵感(霓虹按钮样式)
Unreal Stylesheet - 虚幻引擎风格主题
Dunderlab Qt-Material - Material Design 灵感(我们基于他们出色的工作创建了自定义兼容主题)
QSS 主题仓库 - 我们的自定义集合(此仓库已数月未更新)
关于 Material 主题的说明: 我们曾使用 Dunderlab 的 qt-material 依赖项,但发现其过度样式化的 QSS 导致与 PyQt6 小部件出现一些 UI 异常与兼容性问题。我们已将其替换为自研的 Material Design 风格主题,在保留美学的同时确保了更好的兼容性。衷心感谢 Dunderlab qt-material 项目带来的灵感——他们的工作非常出色,我们只是需要更适配我们小部件结构的主题。截图中仍显示安装了 MATERIAL 主题,是因为我们中有人忘了重新安装。
完整主题许可与归属请参见 NOTICE.md
未来发展路线图
核心功能:
模型文件支持: 完整支持 Safetensors 和 GGUF 元数据的显示与编辑功能。
完整元数据编辑: 提供图像元数据的高级编辑与保存功能。
插件架构: 可扩展的插件系统,便于添加自定义解析器和功能。
批量操作: 从文件夹导出元数据、根据元数据重命名文件、批量处理。
高级搜索与过滤: 根据元数据内容和参数对数据集进行搜索和过滤。
用户体验:
增强的 UI/UX: 改进提示显示,支持语法高亮的文本文件查看。(计划迁移到 Electron 以提升跨平台兼容性与 UI 一致性。)
主题系统扩展: 增加更多主题和自定义选项。
键盘快捷键: 为高级用户提供全面快捷键支持。
平台与集成:
独立可执行文件: 为 Windows、macOS 和 Linux 提供原生构建版本。
无头 CLI 以满足定制开发需求: 脱离图形界面,为高级用户提供前端 UI 选择。(如果您正在开发 Discord 机器人,这也很有用!)
PyPI 分发: 官方包发布,便于使用
pip install dataset-tools安装。CivitAI API 集成: 直接查询模型和资源。
跨平台兼容性: 增强对不同操作系统的支持。
技术改进:
全面的测试套件: 自动化测试确保稳定性并防止退化。(又没完成这个。)
增强的格式支持: 支持更多 AI 工具格式和元数据标准。
性能优化: 提升大型数据集的加载与处理速度。
错误处理: 改进错误报告与恢复机制。
更好的安全性: 已为 API 密钥添加 Fernet 加密,但仍存在其他漏洞,我们正在修复中。
生态系统集成:
数据集管理工具: 与 HuggingFace、模型下载器和转换工具集成。
工作流集成: 支持 AI 生成工作流与管道管理。
社区功能: 解析器共享、格式贡献系统。
贡献
我们欢迎分叉、修复和实验! Dataset-Tools 是一个社区项目——您可以:
分叉它 并将它变成您自己的
破坏它 看看会发生什么(然后告诉我们!)
修复它 当您发现漏洞时
扩展它 添加新的解析器或功能
分享它 给可能用得上的其他人
如何贡献
发现漏洞?
查看 Issues 标签页,确认是否已有人报告
如果没有,请新建一个 Issue,包含:
问题的清晰描述
复现步骤
示例图像(如果是解析问题)
使用
--log-level DEBUG生成的日志输出
想为新工具/节点添加支持?
在 GitHub Issue 中分享带元数据的示例图像
告诉我们工作流结构
我们一直在寻找新的 ComfyUI 自定义节点来支持!
代码贡献:
分叉仓库
创建分支:
git checkout -b feature/your-feature-name清晰地提交您的变更
推送到您的分叉:
git push origin feature/your-feature-name提交拉取请求并说明您的更改
ComfyUI 节点支持:
现实情况: ComfyUI 的提取永远无法做到 100% 完美。总会有人创建一个工作流,使用它,发来图片,然后……它就崩了。😂 但我们一直在努力支持最新的节点!如果您有无法正确解析的工作流,请分享给我们,以便我们添加支持。
无论多么微小的贡献都重要——拼写修正、文档改进和提问都很有价值!
许可证
本项目根据 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 Stylesheet 创作者 UNREAL STYLESHEET
核心依赖库:本项目依赖诸多优秀的开源 Python 库,包括 Pillow, PyQt6、piexif、pyexiv2、toml、Pydantic 和 Rich。其各自许可证适用。
Anzhc 持续的支持与鼓励。
我们的同行及更广泛的 AI 与开源社区,感谢他们持续的支持与启发。
AI 语言模型(如来自 Google、OpenAI、Anthropic 的模型),在开发过程中协助代码生成、文档撰写与问题解决。
还有更多!
特别感谢
指导者:@traugdor90
特别感谢贡献者:开源社区、Whitevamp、Exdysa 以及其他许多人。
支持我们
如果您觉得 Dataset Tools 有用,请考虑支持创作者!











