Skip to content

kabanoki/kabaviewer

Repository files navigation

KabaViewer 🖼️

PyQt5で作成されたシンプルで高機能な画像ビューアアプリケーションです。
シングル表示と4分割グリッド表示、スライドショー機能、お気に入り・履歴管理を備えた
Mac用ネイティブアプリケーションとして動作します。

特徴

  • 🖼️ 様々な画像形式をサポート(PNG, JPG, JPEG, GIF, BMPなど)
  • 📱 シングル表示・4分割グリッド表示の切り替え
  • ⭐ お気に入り機能でフォルダを管理
  • 📝 閲覧履歴の記録と参照
  • 🎬 スライドショー機能(1-10秒の速度調整可能)
  • 🔀 複数の並び順(ランダム、日付順、名前順)
  • 📊 画像メタデータ表示機能(EXIF情報・AI生成画像のプロンプト等)
  • 🏷️ スマートタグ管理システム(検索・分類・ポータブル)
  • 🔍 高度タグ検索(複合条件 (A OR B) AND C 形式・除外検索・お気に入りフィルター)
  • 🎨 視覚的タグ管理(色分け表示・直感的操作)
  • バックグラウンド処理・キューシステム(タグ適用中も操作可能、複数リストの連続自動処理)
  • 📁 一括タグ付け(メニュー・履歴・登録リストから複数フォルダをまとめて処理)
  • 📂 複数フォルダ一括表示(履歴に残さずインスタントに複数フォルダの画像をまとめて閲覧)
  • 🎨 使用LoRA一覧(プロンプトから抽出した名前と重みを表示・コピー・ルール登録)
  • 🌙 ダーク/ライトテーマ + アクセントカラー(環境設定で切替・即時プレビュー)
  • 🅰️ UI 文字サイズ調整(10〜22pt をスライダーで)
  • 💾 データバックアップ/復元(タグDB + 設定を 1 ファイルでエクスポート/インポート)
  • 🛠️ メンテナンスツール(パス変更に伴うデータベース・設定の一括置換機能)
  • 📦 ZIP圧縮ダウンロード(フィルタされたリストを簡単バックアップ)
  • ⌨️ 豊富なキーボードショートカット
  • 🎯 直感的で使いやすいユーザーインターフェース
  • 🍎 Mac用ネイティブアプリケーション対応
  • 高速化機構(プリフェッチ・LRU キャッシュ・QImageReader・並列フォルダスキャン・パース結果ディスクキャッシュ)
  • 🚀 メモリ最適化設計(長時間スライドショーでも安定動作)

システム要件

開発環境での実行

  • Python 3.7以上(推奨: Python 3.12)
  • PyQt5
  • PIL (Pillow)
  • PyInstaller(ビルド時のみ)

Mac用アプリケーション

  • macOS 10.14以上
  • 約100MBのディスク容量

インストール

1. リポジトリをクローン

git clone <repository-url>
cd kabaviewer

2. 仮想環境の作成と有効化

python -m venv venv
source venv/bin/activate  # macOS/Linux
# または
venv\Scripts\activate     # Windows

3. 依存関係のインストール

pip install PyQt5 Pillow
# タグ管理・自動解析機能の追加依存関係
pip install concurrent.futures  # 通常は標準ライブラリに含まれます

必要なライブラリ:

  • PyQt5: GUI フレームワーク
  • Pillow (PIL): 画像処理・メタデータ読み取り
  • concurrent.futures: マルチスレッド処理
  • multiprocessing: 並列処理(標準ライブラリ)
  • threading: スレッド管理(標準ライブラリ)

使用方法

Mac用アプリケーション(推奨)

  1. dist/KabaViewer.appをダブルクリックして起動
  2. フォルダを選択して画像を閲覧開始

開発環境での実行

# 仮想環境を有効化
source venv/bin/activate

# アプリケーション実行
python main.py

キーボードショートカット

  • / : 前の画像 / 次の画像
  • G または Tab : シングル表示 ⇔ 4分割表示の切り替え
  • R : 4分割表示でグリッド再シャッフル
  • E : 画像メタデータ情報表示(EXIF・AI生成画像のプロンプト等)
  • S : サイドバー表示/非表示切り替え
  • T : タグ編集ダイアログ表示
  • A : プロンプト解析による自動タグ付け
  • F : 表示中画像のお気に入りトグル
  • Delete : 画像削除(確認ダイアログ付き)
  • Ctrl+, (⌘+,) : 環境設定ダイアログを開く
  • マウスクリック : スライドショー開始/停止
  • 右クリック : コンテキストメニュー表示

Mac用アプリのビルド

# 依存関係のインストール
pip install pyinstaller

# Mac用.appファイルのビルド
pyinstaller --clean --noconfirm KabaViewer.spec

# 私の環境ビルド
source venv/bin/activate && pyinstaller --clean --noconfirm KabaViewer.spec

ファイル構成

kabaviewer/
├── main.py               # メインアプリケーション
├── image_viewer.py       # 画像表示機能(シングル・4分割表示)
├── favorite.py           # お気に入り機能
├── history.py            # 履歴機能
├── tag_manager.py        # タグ管理システム(3層アーキテクチャ)
├── tag_ui.py             # タグUI・検索インターフェース
├── auto_tag_analyzer.py  # AI画像プロンプト解析・自動タグ付け
├── logo.png              # アプリケーションロゴ・アイコン
├── KabaViewer.spec       # PyInstallerビルド設定(Mac用.app)
├── main.spec             # PyInstallerビルド設定(汎用)
├── venv/                 # Python仮想環境
├── build/                # ビルド中間ファイル
├── dist/                 # ビルド成果物
│   ├── KabaViewer/       # 実行可能ファイル(フォルダ形式)
│   └── KabaViewer.app    # Mac用アプリケーション(93MB)
└── __pycache__/          # Python キャッシュファイル

主要コンポーネント

  • main.py: アプリケーションのエントリーポイント
  • image_viewer.py: 画像表示、スライドショー、4分割表示のメイン処理
  • favorite.py: お気に入りフォルダ管理とプレビュー機能
  • history.py: 閲覧履歴管理と存在チェック機能
  • tag_manager.py: 3層アーキテクチャによるタグ管理システム(コア機能)
  • tag_ui.py: タグ編集・検索・フィルタリングのユーザーインターフェース
  • auto_tag_analyzer.py: AI画像プロンプト解析・自動タグ付けエンジン

機能

画像表示

  • シングル表示: 1枚の画像を高品質表示
  • 4分割グリッド表示: 4つの独立したランダムグリッドで同時表示
  • スライドショー: 1-10秒の間隔で自動再生
  • 画像間の簡単なナビゲーション(キーボード・マウス対応)

表示モード切り替え

  • GキーまたはTabキーでシングル⇔4分割表示を瞬時切り替え
  • 4分割表示では各グリッドが独立したランダム順序
  • Rキーで4分割グリッドの再シャッフル

並び順機能

  • ランダム: 毎回異なる順序で表示
  • 日付順: 変更日、追加日、作成日での昇順・降順
  • 名前順: ファイル名での昇順・降順

お気に入り管理

  • フォルダをお気に入りに追加/削除
  • お気に入り一覧の表示と管理
  • プレビュー機能付き
  • 🏷️ タグ検索リストの保存: タグ検索結果をビューアー表示中に「選択中リストを保存する」で検索条件ごと登録。呼び出し時は再検索して最新の結果を表示。
  • ✏️ 登録名の任意指定: 保存時にダイアログで登録名をカスタマイズ可能(デフォルトはフォルダ名 / 検索文字列)。

閲覧履歴

  • 最近閲覧したフォルダの自動記録
  • 履歴からの素早いアクセス
  • 存在しないフォルダの自動クリーンアップ

画像メタデータ表示

  • 詳細な撮影情報: カメラ機種、撮影設定、日時等のEXIF情報を表示
  • AI生成画像対応: Stable Diffusionのプロンプト、設定値、モデル情報等を表示
  • GPS情報: 位置情報が含まれている場合は座標を表示
  • 包括的メタデータ: PNG chunks、JPEG comments等も読み取り
  • サイドバー表示: 画像を見ながら常時メタデータを確認可能
  • テキスト選択・コピー: プロンプト等のテキストを選択・コピー可能
  • キーボードショートカット: Eキーでダイアログ表示、Sキーでサイドバー切り替え
  • 設定保存: サイドバーの表示/非表示状態を記憶

プロンプト解析による自動タグ付け

AI生成画像のプロンプト(メタデータ)を解析して、自動でタグを生成・付与する機能です。

主な特徴:

  • 高精度な分析: Stable Diffusion、Midjourney等のプロンプトを解析
  • 日本語タグ生成: 英語キーワードを日本語タグに自動翻訳
  • カテゴリ分類: 人物、背景、スタイル、品質等を自動分類
  • カスタムルール: 独自のキーワード→タグマッピング設定可能
  • 一括処理: 複数画像を同時に処理、進捗表示付き
  • バックグラウンド実行: タグ適用中もビューアーの操作を妨げない非同期処理
  • キューシステム: 複数のタグ付け依頼を順番に自動処理(放置して一括タグ付けが可能)
  • プレビュー機能: 適用前に提案タグを確認・選択可能

使用方法:

  1. 画像フォルダを開いてビューアーで表示
  2. Aキーまたは右クリック→「プロンプト解析で自動タグ付け」
  3. 解析開始を押して全画像のプロンプトを解析
  4. 提案されたタグをプレビューで確認・選択
  5. 選択したタグを一括適用(バックグラウンドで開始されます)

📂 複数フォルダの一括表示(インスタント)

複数のフォルダを選択して、その中の画像を 1 つのリストにまとめてビューアーで閲覧できる機能です。履歴・登録リストには残りません。一時的に横断して眺めたいときに使います。

使用方法:

  1. メニュー「ファイル」→「📂 複数フォルダを一括表示」
  2. ダイアログで Ctrl/Cmd や Shift を使って複数のフォルダを選択
  3. 全フォルダの画像が結合されたリストがビューアーに表示される
  4. 画像が無いフォルダは自動でスキップ(通知のみ)

※ ビューアー表示中に「選択中リストを保存する」を押せば、後から登録リストに保存することも可能。

📁 一括タグ付けとメンテナンス

大量のフォルダを効率的に整理するための機能です。

一括タグ付けの方法:

  • メニューから: 「🏷️ タグ」→「📁 複数フォルダを一括タグ付け」でフォルダを選択
  • 履歴/登録リストから: 「複数選択モード」をONにしてフォルダを選び、「一括タグ付け」ボタンをクリック
  • ※ 各フォルダが自動的に「解析 → キュー追加 → バックグラウンド適用」の順で処理されます。

メンテナンスツール:

  • パスの一括置換: SSDの移動などでファイルパスが変わった場合、「🏷️ タグ」→「🛠️ メンテナンス」からデータベース、履歴、登録リストのパスを一括で書き換え可能。

自動認識するキーワード例:

  • 人物: 1girl, boy, woman → 「人物」「キャラクター」
  • 表情: smile, happy, sad → 「表情」「幸せ」「悲しい」
  • 衣装: dress, uniform, kimono → 「衣装」「制服」「和装」
  • 背景: outdoor, school, nature → 「屋外」「学校」「自然」
  • 品質: masterpiece, best_quality → 「高品質」「傑作」

スマートタグ管理システム

高度なタグ管理機能で画像コレクションを効率的に整理・検索できます。

主な特徴:

  • 3層アーキテクチャ: 高速検索・ポータブル設計・自動バックアップ機能
  • EXIF埋め込み: 画像ファイル自体にタグ情報を保存(ポータブル性確保)
  • 高速検索: タグベースの瞬時フィルタリング・検索機能
  • 除外タグ検索: 特定のタグを持つ画像を検索結果から除外
  • お気に入りフィルター: お気に入り登録された画像のみを表示
  • オートコンプリート: 既存タグの自動補完・人気タグ提案
  • バッチ操作: 複数画像への一括タグ付け機能
  • タグ統計管理: 専用タブでのタグ統計・管理・削除機能
  • 視覚的フィードバック: 選択されたタグの色分け表示(検索タグ:青色、除外タグ:赤色)
  • 🗂️ タグのグループ化: タグを折りたたみ可能なグループに分類。右クリックでグループへの移動・リネーム・削除が可能。

使用方法:

  1. Tキーまたは右クリック→「タグ編集」
  2. タグを入力(カンマ区切りで複数可能)
  3. 検索バーで複合条件を組み立てて画像を絞り込み
    • 同じ行内はOR(カンマ区切り)/行同士はAND
    • 「➕ ORグループを追加」で行を増やせる
    • 例: 行1 A,B + 行2 C(A OR B) AND C
  4. 除外タグ機能: 除外したいタグを除外タグ欄に入力、またはCtrl+クリックでタグを除外に追加
  5. お気に入りフィルター: 「♡ お気に入りのみ」チェックボックスで絞り込み
  6. クリアボタン: 「×」ボタンで検索行の削除/クリア・除外タグのクリア
  7. タグ管理タブで全タグの統計・管理

検索機能の詳細:

  • 包含検索(ORグループ × AND結合): 1行に複数タグをカンマ区切りで入れるとOR、行を追加すると行同士はAND。(A OR B) AND C のような複合条件を表現可能
  • 除外検索: 指定したタグを含む画像を結果から除外(例:「風景」で検索しつつ「夜景」を除外)
  • お気に入り絞り込み: お気に入りに登録された画像のみに結果を限定
  • 複合検索: 包含タグ(複合条件)+除外タグ+お気に入りフィルターの組み合わせ
  • タグクリック操作:
    • 通常クリック: フォーカス中の検索行(無ければ末尾の行)にタグを追加
    • Ctrl+クリック: タグを除外に追加
  • 視覚的表示: 選択中のタグが色分けされて表示(検索タグ:青、除外タグ:赤)

🎨 使用LoRA表示

サイドバーに 🎨 使用LoRA セクションを表示。Stable Diffusion 系の AI 生成画像のプロンプト・メタデータから LoRA 情報を抽出し、整理して表示します。

主な特徴:

  • 名前 + 重み: <lora:name:0.85> のような記述から、名前と重みを抽出して「name × 0.85」形式で表示
  • ハッシュは非表示: 「name: hash」のような冗長な表現を避けて読みやすく
  • 個別/全コピー: ボタン一発で LoRA 名をクリップボードにコピー
  • 🔧 ルール追加: 各 LoRA 行の 🔧 ボタンから、その名前をキーワードとして自動タグ付けルールにワンタッチ登録

🌙 環境設定(テーマ/文字サイズ)

「ファイル」→「🔧 環境設定…」(Ctrl+, / ⌘+,) で開けるダイアログから、UI 全体の見た目を調整できます。

設定項目:

  • 文字サイズ: 10〜22pt をスライダーで(ライブプレビュー付き)
  • テーマ: 🌙 ダーク / ☀️ ライトを即時切替
  • アクセントカラー: ブルー / シアン / パープル / ティールから選択
  • タグ保存先: 「画像ファイルにも EXIF タグを書き込む」のオン/オフ
    • OFF にすると一括タグ付けが劇的に高速化(DB のみ更新)
    • 他ツールとの互換性が必要なら ON にしておく

変更は即時プレビュー: スライダーやチェックボックスを動かすと画面に即反映。「キャンセル」で元に戻し、「適用して閉じる」で保存されます。

💾 データバックアップ / 復元

「🏷️ タグ」→「🧰 メンテナンス」から:

  • 💾 バックアップを作成…: タグ DB + QSettings 全項目を 1 個の ZIP に書き出す
  • 🔄 バックアップから復元…: ZIP を選択して復元(既存 DB は .pre_restore.YYYYMMDD_HHMMSS で自動退避)

マシン移行・障害復旧・データ整理前の保険として利用できます。

ZIP圧縮ダウンロード機能

現在表示中の画像リストをZIPファイルに圧縮してダウンロードできる便利な機能です。

主な特徴:

  • 元画像保持: 元のフォルダの画像はそのままで、コピーしてZIP化
  • フィルタ対応: タグフィルタ、お気に入りフィルタされたリストも圧縮可能
  • スマートファイル名: タイムスタンプと内容に応じた自動命名
  • プログレス表示: 圧縮進行状況をリアルタイム表示
  • エラーハンドリング: ファイル名重複の自動解決、存在しないファイルのスキップ
  • キャンセル機能: 圧縮中のキャンセルと途中ファイルのクリーンアップ

使用方法:

  1. フォルダを開くか、タグでフィルタリングして画像リストを表示
  2. 「ファイル」メニュー → 「📦 リストをZIP圧縮」を選択
  3. 保存先とファイル名を指定
  4. 圧縮進行状況を確認
  5. 完了報告で成功・スキップファイル数を確認

ファイル名例:

  • フォルダモード: images_from_MyFolder_20231011_143025.zip
  • タグフィルタ: filtered_images_風景_20231011_143025.zip
  • お気に入り: filtered_images_お気に入りのみ_20231011_143025.zip

その他の機能

  • 画像削除機能: 確認ダイアログ付き(デフォルト選択:Yes)
  • リッチなコンテキストメニュー: 右クリックで全機能にアクセス
  • タブ形式インターフェース: 画像表示・お気に入り・履歴・タグ管理
  • 設定の自動保存: ウィンドウサイズ・位置・サイドバー状態を記憶
  • マルチフォーマット対応: PNG, JPG, JPEG, GIF, BMP, WebP等

開発

開発環境のセットアップ

# 開発用依存関係のインストール
pip install PyQt5 Pillow pyinstaller

# オプション: 高度な画像処理機能(必要な場合)
pip install numpy opencv-python

ビルド

# Mac用アプリのビルド(推奨)
pyinstaller --clean --noconfirm KabaViewer.spec

# 開発版ビルド(基本)
pyinstaller --onefile main.py

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

貢献

プルリクエストやイシューの報告を歓迎します。

作者

開発者: KABANOKI


更新履歴

  • v1.13.1: お気に入り/タグ付けのレスポンス改善・各種不具合修正

    • ⚡ お気に入りトグルの 0.5〜5秒フリーズを解消: QSettings バックアップ書き込みが macOS cfprefsd の plist 全体同期を誘発し、フォルダ内お気に入り件数に比例して激しくスパイクしていた。トグルのホットパスから QSettings 書き込みを撤廃(SQLite を唯一の真実とする)。
    • 🔄 お気に入りの検索/フィルタ即時反映: SQLite はメインスレッドで即時更新(実測 6〜12ms)し、重い EXIF のみバックグラウンドワーカーへ。お気に入りタブ・「♡ お気に入りのみ」フィルタへ即座に反映されるように。
    • 🚀 一括タグ付けの解析を二次的に高速化: 自動タグ付けの正規表現ルールを毎画像コンパイルしていた箇所をプリコンパイル&キャッシュ化(数万回のコンパイルを削減)。
    • 🏷️ 一括タグ付け後にタグ一覧を自動再読み込み: 新規追加タグがアプリ再起動なしでタグタブに即表示されるように。
    • 🐛 解析エラー修正: EXIF メタデータの key が int 定数のケースで 'int' object has no attribute 'lower' が出ていたのを修正。
  • v1.13.0: UI 全面リフレッシュ + 一括タグ付け劇的高速化 + 大量機能追加

    • 🌙 ダーク/ライトテーマシステム: theme.py 新設、QApplication 全体に QSS を適用。ダーク・ライト・アクセント色 4 種をユーザー選択可能。
    • 🔧 環境設定ダイアログ (Ctrl+,): 文字サイズ・テーマ・アクセントカラー・EXIF 書き込み有無を 1 箇所で調整。ライブプレビュー対応。
    • 🎨 使用LoRAセクション: AI 生成画像のプロンプトと Lora hashes から LoRA 名 + 重みを抽出し、ハッシュ抜きで読みやすく表示。各 LoRA から「🔧 ルール追加」で自動タグ付けルールにワンタッチ登録可能。
    • 💾 バックアップ/復元: 「🧰 メンテナンス」からタグ DB + 設定をまとめて ZIP 化、復元時は既存 DB を自動退避。
    • ⚡ 一括タグ付けの劇的高速化: 解析(読込)→登録(書込)の完全フェーズ分離、SQLite チャンクトランザクション(fsync N→N/100)、タグ変化なしスキップ、解析 ThreadPool 並列化、PNG チャンク直読みリーダー、パース結果のディスクキャッシュ。EXIF 書き込みは設定で OFF にすると更に高速。
    • 🚀 シングル/グリッド表示プリフェッチ: 次・前画像をバックグラウンドでデコードして LRU キャッシュ。スライドショー・矢印キーが体感即時化。
    • 🗂️ DB スキーマ v3: is_favorite / (file_path, updated_at) / updated_at の追加インデックスでタグ検索・お気に入り抽出を高速化。
    • 🖼️ アイコン刷新: フォトフレームを添えた新ロゴ + macOS 用 .icns 化。
    • 📂 複数フォルダ一括表示の改善: 外部ストレージにも対応、複数フォルダを Cmd/Ctrl/Shift クリックでまとめて選択。
    • 🐛 各種修正: コンテキストメニュー絵文字化け(VS-16 互換性)、生成タグ欄オートコンプリートの 2 件目以降無効化、グリッド選択時の誤削除/誤お気に入りトグル、F キー連打のレスポンス、履歴の並び順を登録日降順に。
  • v1.12.0: 複数フォルダの一括表示(インスタント)を追加

    • 📂 複数フォルダ一括表示: 「ファイル」→「📂 複数フォルダを一括表示」で、選択した全フォルダの画像を 1 つのリストにまとめてビューアーに表示。タグ検索結果と同じ "filter" モード扱い。
    • 🚫 履歴に残らない: 一時的な横断閲覧用途を想定しており、フォルダ履歴や登録リストには記録しない。
    • 🪶 軽量実装: 既存の load_filtered_images を流用し、追加の永続化なし。空フォルダはスキップ。
  • v1.11.0: タグ検索を「(A OR B) AND C」形式の複合条件に対応

    • 🔍 ORグループ × AND結合: 1行内をOR・行同士をANDで評価する複合条件モデルに一般化。「➕ ORグループを追加」ボタンで検索行を動的に増減可能。
    • 🧮 ネスト不要の表現力: 単一行のみで従来のAND/OR両モードを包含。例: 行1 A,B + 行2 C(A OR B) AND C、行1 A,B + 行2 C,D(A OR B) AND (C OR D)
    • 🧰 既存AND/OR切替の廃止: 「すべてのタグにマッチ」チェックボックスは新モデルが上位互換のため廃止。除外タグ・お気に入りのみは従来通り併用可能。
    • 🖱️ タグクリック挙動: 通常クリックは「フォーカス中の検索行」へ追加。フォーカスが無い場合は末尾の行に追加。Ctrl+クリックで除外に追加するのは従来通り。
    • 💾 登録リスト互換: 旧形式(search_tags + match_all)の保存済みタグ検索エントリは読み込み時に新形式(tag_groups)へ自動変換。重複検知も新旧形式横断で正規化比較。
  • v1.10.0: タグのグループ化機能追加

    • 🗂️ タググループ管理: タグ管理タブの「すべてのタグ」を折りたたみ可能なグループ別ツリー表示に変更。
    • 🤖 初期自動分類: auto_tag_analyzer のカテゴリ(人物/衣装/背景/アニメなど)を初期グループとして自動割当。
    • ✏️ 右クリックメニュー: タグを右クリックで「グループを変更」サブメニューを表示し、ワンクリックで移動可能。
    • 🏗️ グループ管理: グループ名の変更・削除(タグは未分類へ自動移動)・新規作成が可能。
    • 🔄 自動分類ボタン: ツールバーの「自動分類」ボタンで未分類タグを再分類(手動変更済みは維持)。
    • 📦 タグ一括振り分け: 複数のタグをまとめて選んで指定グループへ移動できる専用ダイアログを追加。検索・グループ絞り込み・全選択に対応。
    • 🎨 デフォルトタクソノミ拡充: 髪色/目の色/肌の色/性的ポーズ など具体値タグ(金髪・騎乗位 等)を含む20グループのデフォルトタクソノミを追加し、初回起動時に自動割当。auto_tag_analyzer の具体値タグ(チャイナドレス/タートルネック/ぱっつん/ツインテール 等 100+)も網羅。
    • 💾 展開状態の保存: グループの折りたたみ状態を次回起動時にも復元。
    • 🗄️ DBマイグレーション対応: PRAGMA user_version によるスキーマ管理 (v2) を導入。既存DBを安全に更新。
  • v1.9.0: 登録リストのタグ検索保存と保存動作の不具合修正

    • 🏷️ タグ検索リストを登録リストに保存: タグタブの「ビューアーで表示」結果に対して「選択中リストを保存する」を押すと、現在のタグ検索条件(検索タグ・除外タグ・AND/OR・お気に入りのみ)を登録リストに保存可能に。
    • 🔄 再検索型の呼び出し: 登録リストからタグ検索エントリをダブルクリック/Enterで開くと、保存された条件で再検索して最新の結果を表示(中身は常に最新)。
    • ✏️ 登録名のカスタマイズ: 「選択中リストを保存する」で名前入力ダイアログを追加。デフォルト名(フォルダ名・検索文字列)を編集して登録可能。
    • 🐛 誤登録バグの修正: ビューアーにタグ検索結果を表示中に「選択中リストを保存する」を押すと、直前に履歴から開いたフォルダが登録されてしまっていた不具合を修正。list_mode に応じて正しく分岐するように。
    • 🧹 パス一括置換の修正: メンテナンスの「ファイルパスの一括置換」が新フォーマットの登録リスト(favorite_entries)を更新していなかった回帰を修正。type=="folder" エントリの path も対象に。
    • 🔁 旧データ自動移行: 既存の favorite_folders(文字列配列)は初回起動時に新しい favorite_entries へ自動移行。
  • v1.8.1: タグルール設定ダイアログのオートコンプリート応答性改善

    • ⌨️ デバウンス導入: 「🔧 自動タグ付けルール設定」ダイアログの「生成タグ」入力欄で、1打鍵ごとに走っていた候補更新処理をデバウンス化。タイピング中のもっさり感を解消。
    • ⏱️ 既定300msのアイドル待機: 最後のキー入力から約300ms経過後に1回だけ候補を更新。連続入力時はタイマーが再スタートし、無駄な再計算・ポップアップ再描画を抑制。
    • 🛠️ 待機時間の調整が可能: QSettings("MyCompany", "ImageViewerApp") のキー tag_completion_debounce_ms(ミリ秒)で変更可能。0 を指定すると従来通りの即時動作に戻る。
    • 🧹 安全なクリーンアップ: ダイアログ終了時に遅延タイマーを停止し、閉じた後のコールバック実行を防止。
    • Enterキーでの候補確定、カンマ区切り挿入、キーワード欄のオートコンプリート等、既存挙動は不変。
  • v1.8.0: バックグラウンド処理と一括タグ付けシステムの強化

    • ⏳ バックグラウンド適用: タグ適用処理をQThreadで非同期化。処理中もビューアーが操作可能に。
    • 📋 キュー管理システム: 複数のタグ付け依頼を自動でキューイングし、順次連続処理。
    • 📁 一括タグ付けの拡充: メニューバーからの複数フォルダ選択、履歴・登録リストからの複数一括タグ付け。
    • 🛠️ パス移行ツール: SSD移動等でのパス変更をDB・設定含め一括置換するメンテナンス機能。
    • 🚦 視覚的フィードバック: ウィンドウ下部に進捗エリアを新設。成功(緑)・エラー(赤)のステータス表示。
    • 🖥️ 仮想デスクトップ対応: 完了通知をUI表示に変更し、Macの操作スペース移動時の不具合を解消。
  • v1.7.1: フォルダ選択時の堅牢性とUX改善

    • 🛡️ エラーハンドリング強化: 画像が含まれないフォルダを選択した際のエラー落ちを防止
    • 🔄 再試行フロー: 画像がない場合に警告を表示し、即座に別のフォルダを選択し直せるように改善
    • 🧩 統合的な修正: メイン選択、履歴、お気に入り、タグ検索結果のすべてにおいて同様のハンドリングを適用
    • 存在しないパスや読み込みエラー時の例外処理を徹底し、アプリケーションの安定性を向上
  • v1.7.0: メモリ管理とパフォーマンスの大幅改善

    • 🚀 メモリ最適化: 長時間スライドショー実行時のメモリリーク防止
    • 📊 リソース管理改善: 画像ファイルハンドルの適切なクローズ処理
    • 🔧 QImageメモリ安全性向上: バイト配列の明示的な保持とコピー生成
    • ⚡ サイドバー最適化: 非表示時のメタデータ解析スキップによるCPU負荷削減
    • 🎯 UI構築最適化: ExifInfoDialog解析ロジックの分離(不要なウィジェット生成の抑制)
    • withコンテキストマネージャによる確実なリソース解放
    • ガベージコレクションの効率化とメモリ使用量の安定化
    • 全ての画像読み込み処理(メイン表示、グリッド表示、履歴プレビュー、タグプレビュー)でメモリ管理を改善
  • v1.6.0: ZIP圧縮ダウンロード機能追加

    • 📦 リストZIP圧縮: 現在表示中の画像リストをZIPファイルに圧縮してダウンロード
    • フィルタ対応: タグフィルタ、お気に入りフィルタされたリストも圧縮可能
    • スマート命名: タイムスタンプと内容に応じた自動ファイル名生成
    • プログレス表示: 圧縮進行状況のリアルタイム表示とキャンセル機能
    • 堅牢性: エラーハンドリング、ファイル名重複解決、途中キャンセル時のクリーンアップ
    • 元画像保持: 圧縮は元画像のコピーで行い、オリジナルファイルはそのまま保持
    • ファイルメニューからの簡単アクセスと詳細な完了レポート
  • v1.5.0: 高度タグ検索機能とユーザビリティ大幅向上

    • 🔍 除外タグ検索機能: 特定のタグを持つ画像を検索結果から除外
    • ♡ お気に入りフィルター: お気に入り登録された画像のみを表示する絞り込み機能
    • 🎨 視覚的タグ管理: 選択中のタグを色分け表示(検索タグ:青色、除外タグ:赤色)
    • ⚡ 直感的操作: 通常クリックで検索追加、Ctrl+クリックで除外追加
    • ❌ クリアボタン: 検索・除外タグを個別にクリアできる×ボタン追加
    • 🔄 複合検索: 包含検索+除外検索+お気に入りフィルターの組み合わせ
    • 📊 リアルタイム更新: 入力内容に応じてタグの色表示がリアルタイムで更新
    • TagManagerクラスのsearch_by_tags機能拡張とUI大幅改善
  • v1.4.0: UI改善とユーザビリティ向上

    • 削除確認ダイアログの改善: デフォルト選択をYesに変更(効率的な削除操作)
    • ハートアイコン位置調整: お気に入り表示カードの位置微調整
    • コードベース最適化: メンテナンス性の向上と処理速度改善
    • 各種バグ修正と安定性向上
  • v1.3.0: スマートタグ管理システム追加

    • 3層アーキテクチャによる高速検索・ポータブル・バックアップ機能
    • 画像タグの追加・編集・削除機能(EXIF埋め込み対応)
    • タグベースの高度検索・フィルタリング機能
    • オートコンプリート・人気タグ提案機能
    • 🤖 AI画像プロンプト解析による自動タグ付け機能
    • Tキーでタグ編集、Aキーで自動タグ付け、右クリックメニュー統合
    • 専用タグ管理タブの追加
  • v1.2.0: サイドバー機能とUI改善

    • メタデータサイドバー表示機能(画像と並行してメタデータを常時確認)
    • サイドバーの表示/非表示設定の保存機能
    • テキスト選択・コピー機能(プロンプト等を自由に選択・コピー)
    • サイドバー幅の最適化(より多くの情報を表示)
    • Sキーによるサイドバー切り替え機能
    • ウィンドウサイズ・位置の自動保存機能(次回起動時に復元)
  • v1.1.0: 画像メタデータ表示機能追加

    • 画像メタデータ表示機能(EXIF情報・AI生成画像のプロンプト等)
    • Stable Diffusionなどの生成AIプロンプト読み取り対応
    • PNG chunks、JPEG comments等の包括的メタデータ読み取り
    • Eキーによる素早いメタデータ情報アクセス
    • メニューバー・コンテキストメニューからのアクセス
    • 分類別の読みやすい形式での情報表示
  • v1.0.0: 初回リリース

    • 基本的な画像表示機能(シングル・4分割グリッド表示)
    • スライドショー機能(1-10秒の速度調整)
    • お気に入り機能(フォルダ管理・プレビュー付き)
    • 履歴機能(自動記録・クリーンアップ)
    • 豊富なキーボードショートカット
    • 複数の並び順オプション
    • Mac用ネイティブアプリケーション
    • 画像削除機能
    • タブ形式UI

About

PyQt5で作成されたシンプルで高機能な画像ビューアアプリケーションです。 シングル表示と4分割グリッド表示、スライドショー機能、お気に入り・履歴管理を備えた Mac用ネイティブアプリケーションとして動作します。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages