>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Vue

数百ギガバイトの家族写真をクラウドやサブスクリプションなしで整理する方法

Lap Logo

外付けドライブにある約15年分の写真アーカイブがあります。完全にぐちゃぐちゃです:古いコンパクトカメラのJPEG、DSLRの重いRAWファイル、iPhoneの写真多多機能(Live Photos)、バックアップに失敗した重複ファイルなど。身に覚えがありますか?

このコレクションは毎年増加する一方です。Google フォトやApple iCloudのようなクラウドサービスにテラバイトの個人写真をアップロードすることは、プライバシー上の懸念から常に魅力的とは限りませんし、継続的なストレージのサブスクリプション料金もかさみます。Lightroomのようなデスクトップカタログツールはリソースを 많이消費し、プロプライエタリなデータベースにロックインされます。私が欲しいのはシンプルなものです:ディスク上の既存のフォルダを読み込み、素早く検索し、どこにもデータをアップロードしないソフトウェア。

最近、まさにこの問題を解決することを目的とした面白いプロジェクトを見つけました。Lapです。

Lap local photo library manager screenshot

Lapとは

Lapは、macOS、Windows、Linux向けのオープンソースデスクトップ写真マネージャーです。開発者の主な原則は、クラウドなし、プロプライエタリなデータベースへの密的結合なし(フォルダファーストアプローチ)です。

このアプリはファイルを単一のモノリシックなコンテナにインポートすることを強制しません。ディスク上またはネットワークドライブ上のディレクトリを指すだけで、プログラムがインデックスを作成し、メタデータを読み取り、便利な表示ショーケースを構築します。アプリを削除することになっても、元のフォルダはそのまま残ります。

実践的な機能

多くの軽量ビューアとは異なり、このプロジェクトは10万以上のファイルに対する日常的なメディアライブラリの整理タスクを処理します。

ローカルニューラルネットワーク検索

最も興味深い機能は、外部APIを呼び出さない組み込み検索です。テキストベースのクエリ(「ビーチの犬」や「誕生日」のような検索)用にCLIPを、顔クラスタリング用にInsightFaceを実行します。セマンティック検索は約50言語で動作し、ロシア語も含みます。すべての処理は、ONNX Runtimeを通じてローカルでCPUまたはGPU上で行われます。

スマートフォーマット処理

カメラと電話で撮影する人都合、次のような視覚的な乱れに遭遇します:

  • RAW + JPEGペア:プログラムは同一のショットを単一のインターフェース要素にグループ化できますが、両方のファイルはディスク上に保持されます。移動または削除する場合、ペアは一緒に処理されます。
  • Apple Live Photos:HEICと関連するMOV/AAEファイルは適切にリンクされ、ビューアで直接再生され、コピー時に壊れません。

選択と重複ファイルのクリーンアップ

フォトシューティングの選別には、フレーム用の4パネル比較モードがあります。ぼやけた重複をすばやく削除し、レーティングやカラーラベルを設定できます。組み込みの重複スキャナーは同一のファイルを見つけ、バッチでゴミ箱に送ります。

60以上のフォーマットサポート

このプログラムはJPG、PNG、WebP、最新のAVIFやJXL、一般的なPSDやEXRなどの珍しいフォーマット、そして事実上すべての主要メーカー(CR3、NEF、ARW、DNG、RAFなど)のRAWファイルを処理します。

内部構造

プロジェクトのアーキテクチャはクリーンで実用的です:

  • バックエンド:RustとTauriフレームワーク。これにより、アプリは軽量に保たれ、ElectronアプリのようにRAMをギガバイト消費することを防ぎます。
  • フロントエンド:Vue 3、Vite、daisyUI付きTailwind CSS。インターフェースはレスポンシブで、高速スクロール中にタイムラインがぎこちなくなりません。
  • データストレージ:インデックス、タグ、スマートアルバム用のSQLite。
  • 画像とビデオ処理:LibRaw、libheif、libjpeg-turbo、FFmpegのラッパー。

ソースから実行およびビルドするには、Rust安定版、Node.js 20+、pnpmが必要です:

git clone --recursive https://github.com/julyx10/lap.git
cd lap
git submodule update --init --recursive
cargo install tauri-cli --version "^2.0.0" --locked

# Загрузка локальных моделей и утилит
./scripts/download_models.sh
./scripts/download_ffmpeg_sidecar.sh

# Запуск dev-окружения
cd src-vite && pnpm install && cd ..
cargo tauri dev

手動ビルドが面倒であれば、GitHubにはビルド済みリリースがあります:macOS用のDMG(Apple SiliconとIntelサポート付き)、Windows用のMSI、Linux用のDEBパッケージ。macOSでは、Homebrew経由でもインストールできます:

brew tap julyx10/lap
brew install --cask lap

メタデータの操作

事前に知るべき重要な詳細があります。Lapはファイルから直接標準のEXIFデータ(日付、カメラ、レンズ、座標)を読み取ります。しかし、ユーザーコレクション、レーティング、スマートアルバム、認識された顔は、XMPサイドカーに書き戻されるのではなく、アプリのデータベースに保存されます。

したがって、通常のファイルエクスプローラーを通じてフォルダの名前変更や移動を行うと、Lapはディレクトリを再スキャンする必要があります。開発者は基本的な整理操作をプログラムのインターフェース内で直接行うこと、そしてStorageタブを通じて定期的に設定をバックアップすることをお勧めします。

このプロジェクトの対象者

Lapは次のような人に最適です:

  • ホームNASまたは外付けHDDに大量の写真アーカイブを保管しており、整理したい人。
  • プライバシーを重視し、家族写真をサードパーティのクラウドにアップロードしたくない人。
  • 重い処理ソフトウェアなしでRAW写真の初期選別のためのクイックツールが必要な人。

このプロジェクトはまだ進化中ですが、日常使用のための成熟した機能セットをすでに提供していません。写真フォルダの混沌に飽きたら、Lapは確かに試す価値があります。

関連プロジェクト