Skip to content

AiWithYou/TagFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TagFlow: AI画像タグ付け・ファイル管理ツール

Ollamaを利用したAIモデルで画像にタグ(説明文)を付け、そのタグ情報に基づいて画像ファイルを効率的に検索・整理するためのデスクトップアプリケーションです。

主な機能

本ツールは、以下の主要なタブと機能を提供します。

1. 画像タグ付けタブ (ImageTaggingTab)

  • AIによる画像分析:
    • ローカルで動作するOllama API (http://localhost:11434/api/generate がデフォルト) と連携し、選択した画像の内容を分析します。
    • 使用するOllamaモデル(例: gemma3:27b)やAPIのURLはツールバーから変更可能です。
    • 出力言語(日本語/英語)、説明の詳細度(簡潔/標準/詳細)を選択できます。
    • 「詳細設定」からカスタムプロンプトを入力し、より具体的な指示を与えることも可能です。
    • 分析結果から不要な前置き表現("Here is a description..." など)を自動で削除するクリーニング機能があります(カスタムプロンプト使用時も有効/無効を選択可能)。
  • ファイル操作:
    • 画像ファイルやフォルダをドラッグ&ドロップ、またはボタン操作でリストに追加できます。
    • 対応フォーマット: JPG, JPEG, PNG, GIF, BMP, WEBP, HEIC, AVIF (HEIC/AVIFは pillow_heif が必要)。
    • リストから画像を選択して削除できます。
  • プレビューと結果表示:
    • 選択した画像のプレビューを表示します。
    • 分析結果(タグ)は画像と同じフォルダに .txt ファイルとして保存され、画面下部にも表示されます。
  • 非同期処理:
    • 画像分析はバックグラウンドで実行され、プログレスバーで進捗を確認できます。処理中の停止も可能です。

image

2. ファイル移動タブ (FileMoveTab)

  • タグベースのファイル検索:
    • 指定したソースフォルダ内にある画像に対応する .txt ファイルの内容を検索します。
    • 複数のキーワードをカンマ区切りで指定し、AND検索またはOR検索を実行できます。
    • 正規表現による高度な検索も可能です。
  • 検索結果の操作:
    • 検索に一致した画像ファイルをリスト表示します。
    • リストからファイルを選択し、指定した宛先フォルダへ一括でコピーまたは移動できます。
    • ファイル操作時、対応する .txt ファイルも一緒にコピー/移動されます。
    • 宛先に同名ファイルが存在する場合は、自動的に連番が付与されます(例: image_1.jpg)。
  • 非同期処理:
    • ファイル検索とコピー/移動処理はバックグラウンドで実行され、プログレスバーで進捗を確認できます。

image

3. 分析結果編集タブ (ResultEditTab)

  • テキストファイルの一括編集:
    • 指定したフォルダ内にある画像に対応する .txt ファイルの内容を一括で編集できます。
    • 特定の文字列の削除、テキストの先頭/末尾への追加、文字列の置換が可能です。
  • 個別編集とプレビュー:
    • 画像ファイルを選択すると、プレビューと対応する .txt ファイルの内容が表示されます。
    • テキストエディタで直接内容を編集し、個別に保存できます。

image

4. AIチャットタブ (ChatTab)

  • Ollamaとの対話:
    • 画像タグ付けタブで設定したOllamaモデル・URLを使用して、テキストベースのチャットができます。
    • タグ付けのルール相談や、アイデア出しなどに活用できます。
    • Shift+Enterでメッセージを送信できます。

image

5. 設定機能 (メニューバー)

  • 削除パターン設定:
    • 画像分析結果から自動削除するパターン(正規表現)を編集・保存・読み込みできます。
    • 初期クリーニング(前置き削除など)と追加クリーニング(接続詞削除など)の2段階で設定可能です。
    • 設定したパターンがサンプルテキストにどう影響するかをテストする機能もあります。
  • AIサーバ管理:
    • ローカルのOllamaサーバ (ollama serve) をアプリケーションから起動・停止できます(Windowsでは別コンソール、macOS/Linuxではバックグラウンド)。

image

image

ファイル構成

h:/AI/TagFlow/
│  .gitignore             # Git管理対象外ファイル定義
│  app_config.json        # アプリケーション設定保存ファイル (モデル名, URL, 削除パターン等)
│  README.md              # このファイル
│  requirements.txt       # Python依存ライブラリリスト
│  start.bat              # Windows用 起動バッチファイル
│  start.ps1              # Windows用 PowerShell起動スクリプト
│  TagFlow.py             # メインのPythonアプリケーションコード
│
├─ .git/                  # Gitリポジトリ管理用ディレクトリ
└─ venv/                  # Python仮想環境 (例)

動作環境

  • Python 3.8以上
  • Ollama: ローカル環境にインストールされ、実行可能であること。
  • Pythonライブラリ: (requirements.txt 参照)
    • PySide6: GUIフレームワーク
    • Pillow: 画像処理ライブラリ
    • requests: Ollama APIとの通信用
    • pillow_heif (オプション): HEIC/HEIF画像形式のサポートに必要

インストール方法

  1. Ollamaのインストール: 公式サイト (https://ollama.com/) の手順に従ってOllamaをインストールし、使用したいモデル(例: gemma3:27b)をダウンロードしておきます (ollama pull gemma3:27b)。
  2. Python環境の準備: Python 3.8以上がインストールされていることを確認してください。仮想環境の使用を推奨します。
    python -m venv venv
    # Windows
    .\venv\Scripts\activate
    # macOS/Linux
    source venv/bin/activate
  3. 必要なPythonライブラリのインストール:
    pip install -r requirements.txt
    # または個別にインストール
    # pip install PySide6 Pillow requests pillow-heif

使用方法

アプリケーションの起動

  • Windows:
    • start.bat をダブルクリックするか、PowerShellで .\start.ps1 を実行します。
    • または、コマンドプロンプト/PowerShellで python TagFlow.py を実行します。
  • macOS/Linux:
    • ターミナルで python TagFlow.py を実行します。

画像タグ付け

  1. 「画像タグ付け」タブを選択します。
  2. Ollamaモデル名とAPI URLを確認・設定します(必要であれば)。
  3. 日本語で出力させたい場合は「日本語で出力」にチェックを入れます。
  4. 「詳細設定」ボタンから、必要に応じてカスタムプロンプトや説明の詳細度を設定します。
  5. 画像ファイルまたはフォルダをリストエリアにドラッグ&ドロップするか、「フォルダ追加」「ファイル追加」ボタンで追加します。
  6. 分析したい画像をリストから選択します(複数選択可)。何も選択しない場合はリスト内の全画像が対象になります。
  7. 「分析実行」ボタンをクリックします。
  8. 処理が完了すると、各画像と同じフォルダに .txt ファイルが作成/上書きされます。リストで画像を選択すると、対応するテキストが右下に表示されます。

ファイル移動

  1. 「ファイル移動」タブを選択します。
  2. 「ソースフォルダ」と「宛先フォルダ」を「参照」ボタンで選択します。
  3. 検索したいキーワードをカンマ区切りで入力します。
  4. 検索モード(AND/OR)と正規表現の使用有無を選択します。
  5. 「検索」ボタンをクリックします。
  6. 一致した画像が結果リストに表示されます。
  7. コピー/移動したい画像を結果リストから選択します(複数選択可)。「すべて選択」「選択解除」ボタンも利用できます。
  8. 「コピー」または「移動」ボタンをクリックします。

分析結果編集

  1. 「分析結果編集」タブを選択します。
  2. 「フォルダ選択」ボタンで、編集したい .txt ファイルが含まれるフォルダを選択します。
  3. 左側のリストに画像が表示されるので、編集したい画像を選択します。
  4. 右側のプレビューで画像を確認し、テキストエリアで .txt の内容を編集します。
  5. 個別に編集を保存する場合は「変更を保存」ボタンをクリックします。
  6. フォルダ内の全 .txt ファイルに対して一括で編集(削除、先頭/末尾追加、置換)を行いたい場合は、「一括操作」欄に必要な情報を入力し、「一括実行」ボタンをクリックします。実行ログは下部のテキストエリアに表示されます。

AIチャット

  1. 「AIチャット」タブを選択します。
  2. 下部の入力欄にメッセージを入力し、「送信」ボタンをクリックするか、Shift+Enterキーを押します。
  3. AIからの応答がチャット欄に表示されます。
    • 注意: このチャットで使用されるモデルとURLは、「画像タグ付け」タブのツールバーで設定されているものが使用されます。

設定

  • 削除パターン: メニューバーの「設定」→「削除パターン設定」を選択します。表示されるダイアログで、削除したいパターンの正規表現を編集し、「設定ファイルを保存」で app_config.json などに保存できます。次回起動時もこの設定が読み込まれます。「パターンテスト」で効果を確認できます。
  • 詳細設定: 「画像タグ付け」タブの「詳細設定」ボタンをクリックします。カスタムプロンプトや詳細度を設定し、「OK」で一時的に適用するか、「設定ファイルの保存先選択」で設定ファイルに保存できます。

カスタマイズ

  • Ollama URL/モデル: アプリケーションのツールバーから直接変更できます。変更内容は app_config.json に保存され、次回起動時に読み込まれます。
  • プロンプト/詳細度: 「詳細設定」ダイアログから変更・保存できます。
  • 削除パターン: 「削除パターン設定」ダイアログから編集・保存できます。
  • 設定ファイル (app_config.json): アプリケーション終了時に、モデル名、API URL、日本語設定、カスタムプロンプト設定、詳細度設定、削除パターンが自動的に app_config.json に保存されます。このファイルを直接編集することも可能です。

注意事項

  • Ollamaの実行: このツールを使用するには、Ollamaがローカル環境で実行可能である必要があります。必要に応じて、メニューバーの「AIサーバ」→「AIサーバ起動」で ollama serve を起動してください。
  • 処理時間: 大量の画像を一度に分析する場合や、ファイル数が多いフォルダを検索/移動する場合は、処理に時間がかかることがあります。
  • 分析精度: 画像分析の精度は、使用するOllamaモデルの性能に依存します。
  • HEIC/AVIFサポート: これらの形式の画像を扱うには、pillow_heif ライブラリが必要です (pip install pillow-heif)。

ライセンス

このソフトウェアは商用利用可能です。 ライブラリなどは元のライセンスに従ってください

ユースケース集

機能別ユースケース

機能 典型的ユースケース 作業時間の短縮例
AI 画像タグ付け SNS 投稿前に数百枚の写真へ自動タグ付け 撮影 → 公開までのタグ付け工数を 90% 削減
タグ検索 + 一括コピー 「sunset, beach」タグの写真だけフォトフレーム用フォルダにコピー 手作業での選別を 秒速化
タグ検索 + 一括移動 顔写真を自動仕分けしてプライベート領域へ移動 誤公開リスクをゼロに
TXT 一括編集 描画 AI 学習用タグを一括正規化 (catcat_(animal)) データクリーニング時間を 1/5
AI チャット Ollama × 自社ローカル LLM でタグルールを相談 オフライン環境でも セキュアに質問
削除パターン GUI LLM が生成する冗長フレーズ(例: "この画像は...")をワンクリックで除去 後工程スクリプトの入力整形が不要
AI サーバ自動起動 ollama serve が未起動でもメニューから起動 端末再起動後の手間ゼロ

シナリオ例

  • 商品画像の一括 EC 登録: タグ付け → 検索 → 移動 → ZIP化までを効率化
  • 旅行写真アルバム作成: 自動タグでイベントや場所ごとに自動分類
  • AI学習データ整備: タグ付け済みデータの表記揺れ統一や内容調整
  • 過去SNS投稿の再利用: 画像検索 + タグ情報 + AIチャットで投稿文やハッシュタグを改善
  • 社内データ保護: 顔写真を含む画像を検出・自動でアクセス制限フォルダへ移動

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages