Dataset Tools for Metadata & Captioning

詳細

ファイルをダウンロード

モデル説明

データセットツール:AIメタデータビューア

Dependency review CodeQL Build Status GitHub Discord Twitch Support us on Ko-fi


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のBluetoothスパムを誰にも知られたくありませんよね 😄)。

  • 直感的なファイル処理

    • ドラッグ&ドロップ:単一の画像ファイルまたはフォルダ全体を簡単に読み込み。ドロップされたファイルは自動的に選択されます。

    • フォルダブラウジングとファイルリストナビゲーション。

  • 画像プレビュー:選択された画像の明確で拡大縮小可能なプレビュー。

  • メタデータコピー:解析されたメタデータを1クリックでクリップボードにコピー。

  • テーマ対応UI:プロフェッショナルなものから「母だけが愛する色」まで40以上のテーマを備えた豊富なテーマブラウザー。

  • 高度なメタデータエンジン

    • 完全に再構築されたパーサーシステム:優先順位ベースの検出、堅牢なUnicode処理、包括的なフォーマット対応を備えた新しいMetadataEngine。

    • 強化された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の方針:これらUIの制限を解消し、より優れたテーマ柔軟性、クロスプラットフォームの一貫性、ヘッドレス/CLI統合を容易にするため、v1.0ではElectronへの移行を積極的に検討しています。Pythonのパーサーコアは変更されず、UIレイヤーのみが書き換えられます。これは検討中です。Chromium/Electron(プライバシー、リソース使用量など)について懸念がある場合、または代替案をお持ちの方は、IssuesまたはDiscordでご意見をお聞かせください。

パーサーの状況

  • 高度なパーサー:高度なパース処理は約75%の進捗です。エッジケースの修正と抽出精度の改善を継続しています。現在、ComfyUIで多くのT5スタイルモデルのパースが困難です。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抽出とリソース検索(Settingsで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アルファチャネル)

    • Midjourney:Discord時代のメタデータフォーマット

非AI画像:

  • カメラ/写真メタデータ:カメラや写真編集ソフトウェアからのEXIF、IPTC、XMPデータ

  • プライバシーへの注意:GPS座標の抽出は意図的に行いません—あなたの所在地データはプライベートに保たれます!(これはmacOSでPyQt6がBluetoothを必要とするためでもあります)

モデルファイルメタデータ(ヘッダー情報)

  • .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で自動インストールされます。

インストール

インストールは簡単で、クロスプラットフォーム対応です。実行ファイルは提供していません。これは、開発者がその動作を完全に把握していない場合に将来トラブルを引き起こす可能性があるためです。現在、開発が活発に行われているため、実行ファイルの提供は数ヶ月、あるいはほぼ1年先の話です。ただし、PYPIを超えたパッケージ管理システムへの展開は着実に進んでいます。次に取り組む予定はBrewの要件ですが、WindowsおよびLinux向けのパッケージマネージャーにも対応予定です!

🚀 すぐにインストール(推奨)

1つのコマンドで完了:

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

これで完了!GUIが起動し、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    # エラーのみ

デバッグログでは、パーサーの詳細な決定、ノード検出、抽出ステップが表示され、特定のワークフローが正しくパースされない理由を特定するのに最適です!

GUIの操作

ファイルの読み込み:

  1. 「フォルダを開く」ボタンをクリックするか、「ファイル > フォルダを変更...」メニューを選択してください。

  2. ドラッグ&ドロップ: 画像/モデルファイル1つまたはフォルダ全体をアプリケーションウィンドウにドラッグしてドロップしてください。

  3. 1つのファイルをドロップした場合、その親フォルダが読み込まれ、ファイルはリスト内で自動的に選択されます。

  4. フォルダをドロップした場合、そのフォルダが読み込まれます。

ナビゲーション:

  1. ファイルを選択:リストまたはツリービューからファイルを選択して詳細を表示

  2. 表示モード:

    • サムネイルグリッド: 画像プレビュー付きのビジュアル閲覧

    • ファイルツリー: 階層的なフォルダナビゲーション

    • 「表示」メニューからモードを切り替えられます

  3. 画像プレビュー:

    • 選択された画像がプレビューペインに表示されます

    • 必要に応じてズーム、パン、リサイズできます

    • 画像でないファイルは「プレビューは利用できません」と表示されます

  4. メタデータ表示:

    • プロンプト情報: ポジティブプロンプトとネガティブプロンプト

    • 生成パラメータ: ステップ、サンプラー、CFG、シード、モデルなど

    • 生のワークフロー: 利用可能な場合、完全なComfyUIワークフローJSON

    • メタデータの編集: 「編集」ボタンをクリックしてメタデータを変更し、保存できます

  5. メタデータのコピー: 1クリックでコピークリップボードにコピー

  6. 設定と構成:

    • テーマ: 設定ボタンまたは「表示 > テーマ」メニューからアクセス

    • Civitai APIキー: より豊富なリソースデータのために設定に入力してください

    • ウィンドウサイズ: すべてのレイアウトをリサイズ可能。ワークフローに合わせて拡張できます!

    • フォント設定: テキスト表示をカスタマイズ可能

テーマ

Dataset-Toolsには、組み込みのテーマブラウザからアクセスできる40以上のテーマが用意されています:

  • 本格的な作業向けのプロフェッショナルテーマ

  • 現代的な美学向けのMaterial Designテーマ

  • ネオステルなターミナル感を味わえるレトロ/コンソールテーマ

  • 「母だけが愛する色」のようなミームテーマ(はい、本気です)

  • カスタムテーマ: テーマフォルダに独自のQSSスタイルシートを追加できます!

テーマは表示 > テーマメニューまたは設定ボタンからアクセスできます。当社のテーマコレクションは、美しく...もしくはちょっとひどいものまで幅広くあります。判断はしません!あなたが楽しいと思うものをどうぞ!

テーマのクレジット:

  • GTRONICK - QSSテーマのインスピレーション(ネオンボタンスタイル)

  • Unreal Stylesheet - Unreal Engineをインスパイアとしたテーマ

  • Dunderlab Qt-Material - Material Designのインスピレーション(彼らの優れた作品を元にカスタム互換テーマを作成しました)

  • QSS Themes Repository - 当社のカスタムコレクション(リポジトリは数ヶ月更新されていません)

Materialテーマに関する注意:

以前、Dunderlabのqt-material依存関係を使用していましたが、その過剰なスタイルのQSSがPyQt6ウィジェットとの互換性問題やUIの不具合を引き起こすことがわかりました。そのため、美観を維持しつつ、当アプリのウィジェット構造に最適化した独自のMaterial Designインスパイアテーマに置き換えました。Dunderlabのqt-materialプロジェクトへの完全な敬意を表します。彼らの作品は素晴らしいですが、当アプリのウィジェット構造に合わせたテーマが必要でした。スクリーンキャプチャにはまだMATERIALテーマが表示されていますが、これは誰かが再インストールを忘れたためです。

完全なテーマライセンスと出典については、NOTICE.md をご参照ください。

今後の開発ロードマップ

コア機能:

  • モデルファイルサポート: SafetensorsおよびGGUFメタデータの表示および編集機能を完全に実装

  • 完全メタデータ編集: 画像メタデータの高度な編集および保存機能

  • プラグインアーキテクチャ: カスタムパーサーと機能の追加を容易にする拡張可能なプラグインシステム

  • バッチ操作: フォルダからメタデータをエクスポート、メタデータに基づいてファイル名を変更、一括処理

  • 高度な検索とフィルタリング: メタデータ内容やパラメータに基づくデータセット検索とフィルタリング

ユーザーエクスペリエンス:

  • UI/UXの改善: プロンプト表示の改善、シンタックスハイライト付きテキストファイルの表示(クロスプラットフォーム互換性とUIの一貫性を高めるため、今後Electronへの移行を予定)

  • テーマシステムの拡張: 新しいテーマとカスタマイズオプションの追加

  • キーボードショートカット: パワーユーザー向けの豊富なホットキー対応

プラットフォームと統合:

  • スタンドアロン実行ファイル: Windows、macOS、Linux用のネイティブビルド

  • ヘッドレスCLI: GUIから分離して、パワーユーザーが好きなフロントエンドUIを選べるように(Discordボット開発にも有用)

  • PyPI配布: pip install dataset-tools で簡単にインストール可能な公式パッケージ配布

  • CivitAI API統合: モデルおよびリソースの直接検索機能

  • クロスプラットフォーム互換性: 各オペレーティングシステムへの対応強化

技術的改善:

  • 包括的なテストスイート: 安定性を保証し、リグレッションを防止するための自動テスト(まだ完了していません)

  • フォーマットサポートの強化: 追加のAIツールフォーマットとメタデータ標準

  • パフォーマンス最適化: 大規模データセットの読み込みおよび処理速度の向上

  • エラーハンドリング: エラーレポートとリカバリ機構の改善

  • セキュリティ向上: APIキーにFernetを追加しましたが、他の脆弱性も存在しており、対応中です

エコシステム統合:

  • データセット管理ツール: HuggingFace、モデルダウンローダー、変換ユーティリティとの統合

  • ワークフロー統合: AI生成ワークフローおよびパイプライン管理のサポート

  • コミュニティ機能: パーサーの共有、フォーマットの寄付システム

貢献について

フォーク、修正、実験を歓迎します! Dataset-Toolsはコミュニティプロジェクトです。以下のことができます:

  • フォークして、自分だけのものに

  • 壊してみて、何が起きるか確認(そして教えてください!)

  • バグを見つけたら修正

  • 新しいパーサーや機能を追加

  • 役に立つ人へ共有

貢献方法

バグを見つけた場合?

  • Issues タブで既に報告されていないか確認

  • なければ、以下の情報を含めて新しいイシューを開いてください:

    • 問題の明確な説明

    • 再現手順

    • (パースエラーの場合)例の画像

    • --log-level DEBUG を有効にしたログ出力

新しいツール/ノードのサポートを追加したい場合?

  • メタデータを含む例の画像をGitHubイシューで共有

  • ワークフローの構造について教えてください

  • 当方はComfyUIカスタムノードのサポート拡充を常に進めています!

コードの貢献:

  1. リポジトリをフォーク

  2. ブランチを作成:git checkout -b feature/your-feature-name

  3. 明確なコミットメッセージで変更を加える

  4. フォークにプッシュ:git push origin feature/your-feature-name

  5. 変更内容を説明してプルリクエストを提出

ComfyUIノードのサポートについて:

現実の話: ComfyUIの抽出は100%完成することはありません。誰かがワークフローを作成し、使用して、画像を送ってきたら…また壊れます。😂 しかし、最新のノードのサポートを常に改善中です!正しくパースされないワークフローがあれば、ぜひ共有してください。

小さな貢献でも結構です。タイプミスの修正、ドキュメント改善、質問などもすべて価値があります!

ライセンス

このプロジェクトは、GNU GENERAL PUBLIC LICENSE GPL 3.0 の条項に基づいてライセンスされています。完全なライセンステキストはリポジトリのルートにあるLICENSEファイルをご覧ください。

謝辞

  • コアパースロジックおよびインスピレーション: このプロジェクトは、receyuki によるStable Diffusion Prompt Readerのパース機能を採用・大幅に改変しています。この基盤的な作業に心より感謝します。元リポジトリ:stable-diffusion-prompt-reader このベンダリングされたコードの元のMITライセンスはNOTICE.mdファイルに含まれています。

  • UIテーマ: 美しいPyQtテーマは、DunderLabqt-material、およびGTRONICK - GTRONICKS、Unreal StyleSheetの作成者UNREAL STYLESHEETによって可能になりました

  • 必須ライブラリ: このプロジェクトは、PillowPyQt6piexifpyexiv2tomlPydanticRich などの優れたオープンソースPythonライブラリに依存しています。それぞれのライセンスが適用されます。

  • Anzhc からの継続的な支援と励まし

  • 同僚および幅広いAI・オープンソースコミュニティからの継続的な支援とインスピレーション

  • 開発中のコード生成、ドキュメント作成、問題解決に協力したAI言語モデル(Google、OpenAI、Anthropicなど)

  • その他多数!

特別な感謝

  • 監修:@traugdor90

  • 特別な感謝:オープンソースコミュニティ、Whitevamp、Exdysa、その他多数


私たちを支援する

Dataset Toolsが役に立った場合は、クリエイターを支援していただけますと幸いです!

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

このモデルで生成された画像

画像が見つかりません。