ついに、自宅サーバーを建てた主目的ともいえるImmichを導入しました。
TL;DR
- Google Photoは便利だが誤BANの危険に晒されるし有料
- Amazon Photoはクソ使いづらい
- Immichは絶対にBANされないし超使いやすい
- ということでImmichに移行したら本当に便利だった
背景
画像アーカイブには、最初はGoogle Photoを使っていました。画像なら無限に保存できていた時代のことです。しかしそのサービスが無くなり、Amazon prime 会員特典で同じことをしてくれている Amazon Photoへ移行。
確かに保存はできるのですが、機能性がGoogle Photoに比べてポンコツすぎました。検索はまともに機能しないし、動作もなんだかモッサリしていて使いづらい。
そこで白羽の矢が立ったのがImmichです。
Immichの導入
紆余曲折を経ました。
VM vs LXC
Immichはかなり重いサービスであり、他のサービスとはホストを分離するべきなのは間違いないでしょう。
問題は、どのように分離するかです。最初は新たにVMを建てればいいやと思っていたのですが、調べるうちにどうやらLXCを使った方が良さそうに思えてきました。
Immich公式ではVMに入れることを推奨しているものの、Redditをざっと見る限り、「ImmichもLXCでやってて何の問題もないよ」という声がかなり多かったのです。また、Geminiさんにどちらが良いかお伺いを立てても、聞く度に回答が変わりました。
リソース効率を取るならLXC、安心感を取るならVMという感じで悩みましたが、ここは冒険者精神に則って、未知の領域であるLXCに挑戦することにしました。
lumineに占有されたHDDを取り戻す
メディアデータを保存するための8TB HDDは、lumine VMにパススルーされており、他のVMからはアクセスできない状態となっていました。そこで、まずはこれを正し、複数のVM/LXCからアクセス可能にしなければなりません。
これにはかなり手間取ったものの、最終的にはなんとかなりました。
nahida LXCへのImmich導入
新たなImmich専用LXCはnahidaと呼ぶことにしました。写真なんだからcharlotteでは?という気がしつつも、思い出の保管庫としてはnahidaの方が正しいという判断です。charlotteは綴りを間違えそうだし。
ついでに、VMより圧倒的に軽量なLXCとしたことも、nahidaの名にふさわしいはず。
ディスクの共有ができるようになったら、後はdockerを入れてよしなにマウントポイントを設定すれば、無事に起動。
ここがすごいぞImmich
デザインが美しい
ぶっちゃけGoogle Photoクローンという感じで、見た目はソックリです。ありがたいことに、Amazon Photoみたいにダサくない。

機能的にも、スマホにアプリを入れれば自動で同期してくれるので完全にGoogle PhotoやAmazon Photoと同じ感覚で使えます。
検索性がすごい
Amazon Photoで不満だった、画像検索の精度も極めて良好です。
「状況」検索は英語で入力すればある程度期待通りに動きます。流石にGoogle Photoほどの自然さには及んでいないものの、Amazon Photoよりは圧倒的に良い。FOSSなのにここまでできるとは…

しかし特にすごいのは、複数のフィルタを設定して詳細な検索ができること。

メーカー欄やモデル欄は自分で埋める必要はなく、(おそらく)ライブラリに存在するモデルから候補が出てきてくれます。あとは選択すればOK。
場所や日付はともかく、カメラによる検索はGoogle Photoでもできないはず。たぶん、「EOS」で検索をかけたら「EOSのカメラで撮った写真」だけじゃなくて「EOSの文字列がある」写真や「EOSのカメラ」自体の写真も引っかかっちゃうんじゃないかな…
「地図」機能がすごい
ここからはGoogle PhotoやAmazon Photoに無くてImmichにはある機能の紹介です。
まず、「地図」機能に感動しました。Google PhotoやAmazon Photoでも場所ごとに分類した表示はできるものの、このように地図上にマッピングした表示はできなかったはず。
※ 調べてみたら、スマホアプリ版Google Photoにはこの機能が存在するようです。しかし、PCのWebUIからは見れない様子。


場所ベースで写真を探すときって、普通「神恵内村の写真を探そう」じゃなくて「旅の途中で通ったここらへんの写真を探そう」じゃないですか?
人によって好みが分かれるのかもしれないですが、地理が苦手な私からするとこちらの方が断然好きです。
「重複を調査」がめちゃくちゃすごい
画像はどうしても重複しがちなものですが、Immichならば自動で、ほぼ同じ画像を検出して重複解除の提案をしてくれます。

上記の例を見て分かる通り完全一致である必要はなく、多少の変化があっても同じ画像として検出してくれます。つまり、連続で複数枚撮ったほぼ同じ画像とかもしっかりまとめてくれる。

重複の解消はボタンで一組ずつできるし、もちろん保持する写真を変えることもできます。めんどくさかったら「全て重複排除」すれば、容量最大のもの以外を全部ゴミ箱へ送ってくれます。神。
読み込みが速い
Google Photo や Amazon Photoである程度の速度以上でスクロールした場合、画像のロードが追いつかないことがありました。が、Immichなら相当頑張って高速スクロールしても、少なくとも真っ白な豆腐状態にはなりません。
遅延ロードの実装が丁寧なのか、CPUを自分一人で占有できているからなのか、ローカルネットワーク内で完結しているからなのか…。とにかく、このレスポンスの良さは写真ライブラリとしての満足感にかなり大きな影響があります。
まとめ
正直、稼働させてから24時間も経ってないしGoogle PhotoからImmichへのMigrationも済んでいない状態なのですが、現状スマホにあった画像をとりあえず上げただけなのに既にこれだけ感動してしまっています。
(ちなみにスマホからのライブラリSyncもかなり高速でした。3800枚/22GBで一晩かからない程度。)
コストについて考えてみると、例えばGoogle Photoなら(年単位請求の16%割引を適用したとしても!)4400円/200GB/年とか36400円/5TB/年になります。もちろんこれらには諸々の特典もつくものの、純粋なフォトストレージの料金として考えるならば、同じ額を一括で払ってHDDを買ったほうがコスパは良いでしょう。
そして単に容量あたりのコスパが良いというだけでなく、機能がこれらよりも優れているというのが本当に素晴らしい。ライブラリの一括エクスポートすらできないAmazon Photoとは大きな違いです。
バックアップ戦略は自分で考えなければならないというのは大きなデメリットではあるものの、GoogleやAmazonに預けておけば安全かと言われれば必ずしもそうではない感があります(後述)。本当に写真ライブラリを守るのであれば、いずれにせよバックアップは取らなければなりません。
そう考えると、もはやImmichを使わない理由はありません。本当に素晴らしいFOSSです。
移行ツール
Google Photo からの移行にはimmich-goが便利そう。
immichのURLと必要な権限の付いたAPIキーを取得してきて、それでコマンドを叩けばあとはよしなにやってくれるみたい。(現在実行中)
アルバムやお気に入り、その他のメタデータをしっかり保持したうえで移行できるとのことです。
Windowsの場合なら、
- 適切なWindows向けビルドをダウンロードしてZIPを展開
- immich-go.exeと同じフォルダに、Googleのデータエクスポートから落としてきた
takeout-YYYYMMDD...-1-00x.zipみたいなZIPファイルを解凍せずに全部配置 - ファイルエクスプローラーのパス欄に
cmdを入力してコマンドラインを起動(これで起動できるの知らなかった) - 以下を実行(URLとAPIキーは正しいものに、タグは自分のわかりやすいものに置き換えること)
.\immich-go.exe upload from-google-photos --server=http://URL --api-key=APIキー --tag "移行/Googleフォト/YYYY-MM-DD" .\takeout-*.zipで処理を開始してくれます。75GB・画像33k枚、動画15k本(といっても大半は昔のiphoneで撮ったLive photo)のエクスポートデータでしたが、一晩で終了。もちろんこれは画像のサイズや環境等で大きく変わる値だと思うので、参考までに。


軍艦島への航路がより鮮明にわかるようになった。
おまけ
以下はもともと「背景」節に書いていたのですが、なんかすごく長くなってしまったので文末に移動しました。
なぜImmichへ移行するのか。正直なところ、お気持ち的な要素はかなり大きいです。
そもそも、GoogleやAmazonといった企業に写真を預けるというのはあまりいい気分がしません。
無料でストレージを貸してくれている分、機械学習の学習データとして使われるのは対価としてまあ仕方ないとは思います。なんか気持ち悪いなとは思うものの、彼らも慈善事業でやってるわけじゃないし。
私が特に懸念しているのは、これらのサービスからは簡単にBANされうるという点です。
国内外問わず(特にGoogleには)BANされた事例が無数にあるようで、基本的には
- Google Photoに上げた画像がいかがわしいコンテンツとして誤判定される
- Googleアカウント丸ごとBAN
- 異議申し立てしても受け付けてくれない
という展開になるようです。思い出の写真が全ロストするだけでも辛いというのに、GmailのメールアドレスやGoogle Driveの中身、YouTubeのアカウントまで消されるとなれば、影響は壊滅的です。
ついでに最近では、外交的・地政学的リスクによって大企業に国ごとサービスを停止されるというパターンもしばしば見かけます。
例えばロシアのウクライナ侵攻を受け、多くの企業がロシアでのサービスを停止しました。傍から見ている分には「プーチンが悪いんだよ」という感じですが、一般ロシア国民からすればたまったものではありません。
また、以下はイランの開発者のそのような体験の記録ですが、やはり読んでいて辛く、恐ろしく感じます。
流石に日本がイランみたいな扱いをされることは無いだろうと思いつつも、トランプ大統領は何をしでかすかわかりません。
……要するに、あらゆるパラノイアに陥った結果、「データは自分で管理するぞ」という気持ちがとても高まりつつある。というのが、最近の自宅サーバー趣味の根幹にある理由なのです。