ラズパイでImmichは動く?Pi 5〜Zeroのモデル別判定と構成
Immichの公式要件はRAM最低6GB。8GBのPi 5とPi 4なら動きますが、ラズパイのハードウェアトランスコードは非対応です。4GB機の機械学習オフ運用、SSD構成、日本語検索、Hailoの現状までモデル別に判定します。
結論: Immich がラズパイで快適に動くのは 8GB 以上のモデル
Immich をラズパイ(Raspberry Pi)で動かせるかどうかは、ほぼメモリの量で決まります。公式の要件は RAM が最低 6GB、推奨 8GB です。この条件を満たすのは、8GB と 16GB の Pi 5、そして 8GB の Pi 4 です。4GB のモデルは機械学習(顔の検出やスマート検索)を切れば動きます。Pi 3、Pi Zero 2 W、初代 Zero は対象外と考えてください。
この記事はインストール手順の解説ではありません。手元のラズパイで何が動き、何をあきらめることになるのかを、モデルごとに判定します。根拠にしたのは、Immich の公式ドキュメントとラズパイ公式サイトの仕様だけです(どちらも 2026年10月18日に確認)。インストール全体の流れは Immich で Google フォトの代わりを自分のサーバーに作る手順 にまとめてあります。
Immich 公式ドキュメントが引いている線
Immich の要件ページと機能ページには、ラズパイに直接関係する制限がはっきり書かれています。
- メモリ: 最低 6GB、推奨 8GB。RAM が 4GB しかない環境は、機械学習の機能を無効にすれば動かせる、とされています。
- CPU アーキテクチャ: 対応は
amd64とarm64だけです。CPU は最低2コア、推奨4コアです。 - データベースの置き場所: Postgres のデータは「できればローカルの SSD」に置き、「どんな種類のネットワーク共有にも絶対に置かない」こと、と書かれています。
- ハードウェアトランスコード: 対応 API は NVENC(NVIDIA)、Quick Sync(Intel)、RKMPP(Rockchip)、VAAPI です。制限事項の欄には「Raspberry Pi is currently not supported」とあります。
- 機械学習の高速化: ARM NN は Mali GPU を持つ機器だけが対象で、それ以外の Arm 機器は非対応です。RKNN は RK3566、RK3568、RK3576、RK3588 の4チップだけが対象です。
どのページにも、ラズパイで使える高速化の手段は載っていません。つまりラズパイでは、動画の変換も機械学習も、すべて CPU が受け持つことになります。必要なメモリとディスクの見積もりをもっと細かく知りたい場合は、Immich に必要な RAM とストレージの目安 を先に読んでおくと判断が早くなります。
ラズパイのモデル別判定: Pi 5、Pi 4、Pi 3、Zero 2 W、初代 Zero
下のグラフは、各モデルで選べる最大の RAM と、Immich の最低値と推奨値を並べたものです。RAM の数値は raspberrypi.com の製品ページから取りました。
このグラフのデータ
[
{
"device": "Raspberry Pi 5",
"max_ram_gb": 16,
"immich_min_ram_gb": 6,
"immich_recommended_ram_gb": 8
},
{
"device": "Raspberry Pi 4 Model B",
"max_ram_gb": 8,
"immich_min_ram_gb": 6,
"immich_recommended_ram_gb": 8
},
{
"device": "Raspberry Pi 3 Model B+",
"max_ram_gb": 1,
"immich_min_ram_gb": 6,
"immich_recommended_ram_gb": 8
},
{
"device": "Raspberry Pi Zero 2 W",
"max_ram_gb": 0.5,
"immich_min_ram_gb": 6,
"immich_recommended_ram_gb": 8
},
{
"device": "Raspberry Pi Zero",
"max_ram_gb": 0.5,
"immich_min_ram_gb": 6,
"immich_recommended_ram_gb": 8
}
]Pi 5(8GB / 16GB): 動きます。いちばん現実的な選択肢です。 RAM は 1GB、2GB、4GB、8GB、16GB の5種類で、最大は 16GB です。CPU は 2.4GHz の4コア Cortex-A76(BCM2712)なので、推奨の4コアも満たします。PCIe 2.0 x1 のインターフェースがあり、別売りの M.2 HAT かアダプターを付ければ NVMe SSD を使えます。注意点は2つあります。ハードウェアの H.264 エンコーダーがないことと、標準のカーネルが 16K ページであることです。どちらも後の節で説明します。
Pi 5(4GB): 機械学習を切れば動きます。 写真のバックアップとタイムライン表示は使えます。顔での検索とスマート検索はあきらめることになります。1GB と 2GB のモデルは対象外です。
Pi 4 Model B(8GB): 動きます。 RAM は 1GB、2GB、3GB、4GB、8GB の5種類で、最大は 8GB です。最低ラインの 6GB を超えるのは 8GB だけです。CPU は 1.8GHz の4コア Cortex-A72(BCM2711)です。PCIe の口はないので、SSD は2つある USB 3.0 ポートにつなぎます。4GB のモデルは Pi 5 と同じく機械学習を切って運用します。3GB 以下のモデルは公式のどの線にも届かないので、おすすめしません。
Pi 3 Model B / B+: 使えないと考えてください。 64ビット版の Raspberry Pi OS は動きます。しかし RAM は 1GB しかなく、機械学習を切った場合の 4GB にも届きません。B+ の USB は4ポートともすべて USB 2.0 なので、SSD をつないでも速度は出ません。
Pi Zero 2 W: 使えません。 CPU は 1GHz の4コア 64ビット Cortex-A53 で、64ビット版の OS にも対応しています。問題はメモリで、0.5GB(512MB)しかありません。
初代 Pi Zero: 使えません。 CPU は 1GHz のシングルコアで、RAM は 512MB です。Raspberry Pi OS のダウンロードページを見ると、初代 Zero は 32ビット版の対応リストにしか載っていません。Immich は arm64 と amd64 にしか対応していないので、32ビットでしか動かない初代 Zero ではイメージそのものを動かせません。シングルコアなので、最低2コアという CPU の条件も満たしません。
Pi 400 や Pi 500 などの派生モデルも 64ビット版 OS の対応リストに載っています。判定の基準は同じで、RAM が 8GB 以上あるかどうかを見てください。
Pi 5 に H.264 のハードウェアエンコーダーはあるのか
ありません。ラズパイ公式のカメラソフトウェアのドキュメントには「Raspberry Pi 5 uses software video encoders」と書かれています。Pi 5 の製品ページにも、動画まわりは 4Kp60 の HEVC デコーダーしか載っていません。
一方、Pi 4 の仕様には「H264 (1080p60 decode, 1080p30 encode)」とあり、ハードウェアのエンコーダーを持っています。ただし Immich はラズパイのハードウェアトランスコードに対応していないので、Pi 4 でもこのエンコーダーは使われません。どちらのモデルでも、動画の変換は ffmpeg が CPU で行います。
Immich の設定ファイルでは、ffmpeg の accel の既定値は disabled です。ラズパイではこの値を変える必要はありません。覚えておくべき影響は1つだけです。スマートフォンで撮った長い動画をまとめて取り込むと、変換が終わるまで CPU が長時間ふさがります。
まず自分のラズパイを確認するコマンド
OS が64ビットか、メモリがいくつあるかを、ラズパイの上で確認します。
uname -m
getconf LONG_BIT
free -h
nproc
getconf PAGESIZE正常な結果の目安は次のとおりです。uname -m は aarch64 を表示し、getconf LONG_BIT は 64 を表示します。カーネルだけが64ビットで、ユーザーランド(コマンドやライブラリ)が32ビット、という組み合わせもあります。そのため2つとも確認してください。getconf LONG_BIT が 32 なら、64ビット版の OS を入れ直す必要があります。
free -h の Mem: の行の total が実際の RAM です。公称値より少し小さく表示されます。nproc が表示するのは、いまのプロセスが使える処理ユニットの数です。Pi 3 以降の4コアのモデルでは、制限をかけていなければふつう 4 になります。ただし CPU の割り当てを絞っている場合や、OMP_NUM_THREADS などの環境変数を設定している場合は、実際のコア数より少なく出ることがあります。搭載されているプロセッサーの数そのものを見たいときは nproc --all を使ってください。最後の getconf PAGESIZE は、Pi 5 では 16384 になることが多いです。これは次の節で使います。
Pi 5 の 16K ページと Postgres の起動エラー
Pi 5 のファームウェアは、標準で kernel_2712.img を読み込みます。ラズパイ公式の config.txt のドキュメントによると、このカーネルには Pi 5 向けの最適化が入っていて、その1つが 16K のページサイズです。
これが Immich で問題になったことがあります。2025年6月の Issue #19038 では、ラズパイ 5 の 16K ページ環境で immich_postgres が起動せず、jemalloc の Unsupported system page size というエラーが出ました。この Issue は 2025年6月20日に解決済みとして閉じられています。スレッドでは、利用者の1人が ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 で直ったと報告しています。ただしこれは 2025年半ばの利用者の報告です。現在の v3 系の compose ファイルが使うイメージについては何も書かれていません。なので、自分の Pi 5 で起動して確かめるのが確実です。
docker compose ps
docker compose logs --tail 200 | grep -i "page size"docker compose ps では STATUS の列を見てください。running や Up は、プロセスが動いていることしか示しません。サーバーが固まって接続を受け付けられなくなっていても、プロセスが生きていれば Up のままです。Immich の compose ファイルでは、サーバー、機械学習、Redis、Postgres の4つのコンテナにヘルスチェックが設定されているので、正常なら Up 3 minutes (healthy) のように (healthy) が付きます。起動した直後は (health: starting) と表示されるので、少し待ってから見直します。(unhealthy) のままのコンテナがあれば、docker compose logs immich-server のようにサービス名を付けて、そのコンテナのログを確認してください。grep が Unsupported system page size を表示したら、使っている Postgres のイメージが 16K ページに対応していないということです。その場合は、config.txt に kernel=kernel8.img を書くと、Pi 5 専用のカーネルの代わりに共通の64ビットカーネルが読み込まれます。再起動したら、もう一度 getconf PAGESIZE を実行して値が変わったか確認してください。Pi 5 向けの最適化を手放すことになるので、エラーが出たときだけ行う手順です。
データベースと写真は SSD に置く
公式は、データベースを「できればローカルの SSD」に置くよう求めています。microSD について明記はありません。ただ、この書き方からすると、microSD はデータベースの置き場所から外すのが安全です。Pi 5 なら M.2 HAT 経由の NVMe SSD、Pi 4 なら USB 3.0 ポートにつないだ SSD を使います。NAS などのネットワーク共有は、データベースの置き場所としては公式に否定されています。
ここからは、SSD がフォーマット済みで /mnt/ssd にマウントされている前提で進めます。Docker と Docker Compose の基本は Docker Compose の基本操作 を参照してください。まず SSD が認識されているか確認します。
lsblk -o NAME,TRAN,SIZE,MOUNTPOINTTRAN の列が usb か nvme の行が SSD で、MOUNTPOINT に /mnt/ssd と出ていれば準備はできています。次に、公式の手順どおり compose ファイルと .env を SSD の上に置きます。
sudo mkdir -p /mnt/ssd/immich
sudo chown "$USER": /mnt/ssd/immich
cd /mnt/ssd/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env.env の中の2つの変数を、SSD 上のパスに書き換えます。UPLOAD_LOCATION は写真と動画の置き場所、DB_DATA_LOCATION はデータベースの置き場所です。
UPLOAD_LOCATION=/mnt/ssd/immich/library
DB_DATA_LOCATION=/mnt/ssd/immich/postgresdocker compose up -d
findmnt -T /mnt/ssd/immich/postgresfindmnt の SOURCE が /dev/nvme0n1p1 や /dev/sda1 のような SSD のデバイスなら成功です。/dev/mmcblk0p2 と表示されたら、データベースは microSD の上にあります。これは、コンテナを起動したときに SSD がマウントされていなかったために起きます。マウントされていない /mnt/ssd は microSD 上のただの空のディレクトリなので、Docker はそこにフォルダを作ってしまいます。/etc/fstab に SSD を登録して、起動時に必ずマウントされるようにしてください。
もう1つ見落としやすい点があります。Docker のイメージと名前付きボリューム(機械学習モデルのキャッシュなど)は、Docker のデータディレクトリに置かれ、標準では microSD の上です。Issue #19038 のスレッドにも、Docker のデータの置き場所を外付けドライブに移したらディスク容量の問題が解決した、というコメントがあります。どのデータがどこに保存されるかは Immich のデータが Docker のどこに保存されるか で詳しく説明しています。
機械学習はオフにするか、自宅の PC に任せる
4GB のモデルでは、機械学習を止めないと公式の条件を満たせません。8GB のモデルでも、機械学習を別のマシンに任せればメモリと CPU に余裕ができます。
4GB のモデル: 機械学習を無効にする
管理画面の Machine Learning Settings で、機械学習を無効にします。設定ファイルでは machineLearning.enabled にあたる項目で、既定値は true です。無効にすると、スマート検索、顔の検出、重複の検出、OCR(画像内の文字の読み取り)が使えなくなります。写真のアップロードとタイムライン表示はそのまま使えます。
機械学習を使わないなら、そのコンテナを動かしておく理由はありません。docker-compose.yml から immich-machine-learning のセクションを削除して、残ったコンテナを片付けます。
docker compose up -d --remove-orphans
docker compose psdocker compose ps の一覧から immich_machine_learning が消えていれば完了です。
8GB 以上のモデル: 機械学習を自宅の PC で動かす
Immich には、機械学習のコンテナだけを別のマシンで動かす公式ガイドがあります。Docker が入った自宅の PC に、次の docker-compose.yml を置きます。
services:
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
restart: always
ports:
- 3003:3003
volumes:
model-cache:PC 側でも docker compose up -d で起動します。公式ガイドは「両方のホストのバージョンが違うと、不具合や不安定さの原因になる」と警告しています。PC 側にも .env を置き、ラズパイ側の .env と同じ IMMICH_VERSION の値を書いてください。ラズパイの Immich を更新したら、PC 側のコンテナも一緒に更新します。
ラズパイから PC の 3003 番ポートに届くか確認します。
PC_IP=ここに自宅PCのLAN側IPアドレス
timeout 3 bash -c "</dev/tcp/$PC_IP/3003" && echo okok と表示されれば届いています。何も表示されずに終わる場合や、Connection refused などのエラーが出る場合は、届いていません。ただし、原因が PC のファイアウォールだとは限りません。PC 側のコンテナが止まっている、IP アドレスが違う、ポートが公開されていない、といった場合も同じ結果になります。どこで失敗しているかは、curl で機械学習のサービスの /ping を呼ぶと見分けやすくなります。
curl -sS --max-time 5 "http://$PC_IP:3003/ping"pong と表示されれば、機械学習のサービスは応答しています。curl: (7) で始まるエラーは、接続そのものができなかったという意味です(curl のエラー一覧での説明は「Failed to connect() to host or proxy.」だけです)。curl: (28) で始まるエラーは、応答がないまま時間切れになったという意味です。どちらの場合も、まず PC 側で docker compose ps と docker compose logs を実行して、コンテナが (healthy) で動いているかを確かめます。コンテナに問題がなく IP アドレスも正しいときに、PC のファイアウォールで 3003 番が許可されているかを確認してください。
次に、管理画面の Machine Learning Settings で「Add URL」を押し、http://PCのIPアドレス:3003 を追加します。既存の URL を残したまま追加すると、PC が止まっているときはラズパイ側のコンテナが代わりに処理します。ラズパイ側のコンテナを削除して PC の URL だけにした場合は、PC が止まっている間、スマート検索と顔の検出のジョブは失敗します。なお、顔の検出は PC で動きますが、顔の分類(Facial Recognition)はリモートでは動きません。
安全面の注意が2つあります。画像のプレビューは PC 側のコンテナに送られます。そして公式ガイドによると、機械学習のコンテナには「セキュリティの仕組みがまったくない」ため、3003 番ポートは家庭内の LAN だけで使い、ルーターで外に開けないでください。
日本語でスマート検索したい場合: 多言語 CLIP モデルはラズパイで使えるか
スマート検索は CLIP(画像と文章を同じ尺度で比べるモデル)を使います。設定ファイルでの既定のモデル名は ViT-B-32__openai です。公式の検索ドキュメントには、母国語で検索できるように多言語モデルも用意されている、と書かれています。nllb 系のモデルは、ユーザー設定の言語で検索語を入力する前提です。xlm 系と siglip2 系は、言語設定に関係なく検索語を理解します。
公式ドキュメントには日本語の再現率(正しい写真をどれだけ見つけられるか)とメモリ使用量の表があります。下のグラフはその一部です。
このグラフのデータ
[
{
"label": "XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k",
"memory_mib": 3030,
"recall_ja_pct": 75.93
},
{
"label": "ViT-B-16-SigLIP-i18n-256__webli",
"memory_mib": 3029,
"recall_ja_pct": 58.39
},
{
"label": "ViT-B-16-SigLIP2__webli",
"memory_mib": 3038,
"recall_ja_pct": 56.38
},
{
"label": "ViT-B-32-SigLIP2-256__webli",
"memory_mib": 3061,
"recall_ja_pct": 53.16
},
{
"label": "nllb-clip-base-siglip__v1",
"memory_mib": 4675,
"recall_ja_pct": 78.72
},
{
"label": "XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k",
"memory_mib": 4014,
"recall_ja_pct": 83.95
}
]小さめのモデルでも、メモリは約 3GB です。たとえば XLM-Roberta-Base-ViT-B-32 は 3030 MiB で、日本語の再現率は 75.93% です。SigLIP2 系はメモリは同じくらいですが、日本語の再現率は 56.38% にとどまります。いちばん再現率が高い XLM-Roberta-Large-ViT-H-14 は 83.95% ですが、メモリは 4014 MiB 使います。
この数値は、7800X3D の CPU を積んだ Linux マシンで、高速化なしに測った推定値です。メモリはプロセスの最大使用量です。ラズパイの CPU で測った結果は公式には公開されていません。なので「ラズパイの CPU で実用になるか」という問いに、公式ドキュメントは答えていません。言えるのは次のことです。4GB のモデルでは、そもそも機械学習を切るので使えません。8GB のモデルでは、Immich のサーバーと Postgres に加えて約 3GB を使うことになります。日本語検索を使いたいなら、多言語モデルは自宅の PC で動かすのが確実です。
モデルを変えるには、管理画面のスマート検索の設定でモデル名を入力して保存し、ジョブ画面でスマート検索の横の「All」を押して全部の写真を処理し直します。公式ドキュメントは、モデルを変えると古いモデルの互換性のないデータがデータベースに残る場合がある、とも書いています。
Hailo や AI HAT+ で機械学習を速くできるか
現時点ではできません。Immich の機械学習の高速化ページに載っているのは ARM NN、CUDA、ROCm、OpenVINO、RKNN で、Hailo はありません。
Hailo への対応は、GitHub のディスカッション #17230「[Feature] Support Hailo for machine learning hardware acceleration」で要望されています。立てられたのは 2025年3月30日です。メンテナーの mertalev さんは 2025年7月9日に、モデルを Hailo 形式に変換するときに互換性の問題があったとコメントしています。2025年9月21日には、RKNN と同じように Hailo 形式を変換先の1つに加えるという考え方を書いています。ただ、実装を約束する発言や、対応するプルリクエストはページに見当たりません。今も機能要望の段階です。スレッドには 2026年4月に、第三者が公開した非公式のリポジトリを Hailo の HAT を付けた Pi 5 で動かした、という報告も投稿されています。ただしこれは Immich 公式のものではなく、別の利用者からは顔の位置合わせに不具合があるという指摘も出ています(2026年10月19日に確認)。Immich のために AI HAT+ を買うのは、将来への期待に投資することになります。
M5Stack LLM-8850 の日本語ガイドとの違い
M5Stack の日本語ガイドでは、Pi 5 と LLM-8850 カードで Immich の機械学習を動かす手順が紹介されています。このガイドが使うのは、ベンダーが用意したサーバーのイメージ ax-immich-server-aarch64.tar.gz と、immich_ml-1.129.0-py3-none-any.whl という機械学習のパッケージです。機械学習のサービスは 3003 番ポートで待ち受けます。ページには Immich サーバーのバージョンが書かれておらず、パッケージは更新される場合があるので実際のファイル名を使うように、と注意書きがあります。
一方、Immich 本体は v3 系が最新です。この差は3つの面で効いてきます。まず、機械学習の側は 1.129.0 を元にしたパッケージです。Immich の公式ガイドが警告している「サーバーと機械学習のホストのバージョン違い」に、最初から当てはまります。次に、更新はベンダー次第になります。Immich 本体のリリースに合わせてサーバーだけを更新すると、機械学習の側は古いまま残ってバージョンの差が広がります。さらに、スマートフォンのアプリはストアから最新版に更新されていきます。サーバーがベンダーの版のままだと、アプリとの組み合わせが動くと保証する根拠がありません。
日本語の検索にも注意が必要です。ガイドに名前が出てくる CLIP モデルは、中国語の検索用の ViT-L-14-336-CN__axera と、英語の検索用の ViT-L-14-336__axera です。日本語用のモデルは挙がっていません。
1枚のボードで高速化したいなら Rockchip という選択肢
公式ドキュメントで、シングルボードコンピューターの高速化の手段として書かれているのは Rockchip です。機械学習の RKNN は RK3566、RK3568、RK3576、RK3588 に対応しています。動画の変換には RKMPP が使えます。ハードウェアでのトーンマッピング(HDR 動画を通常の画面向けに変換する処理)は、RKMPP のうち RK3588 だけが対象です。高速化まで1台で済ませたいなら、ラズパイではなく、これらのチップを積んだボードを選ぶことになります。設定は公式のハードウェアアクセラレーションのページの手順に従ってください。
Arm のサーバーで Immich を動かす考え方は、VPS を選ぶ場合も同じです。Arm の VPS と x86 の VPS の違い に、対応イメージの見分け方をまとめています。
最初の取り込みは重いと考えておく
ラズパイで Immich を始めたばかりの数日は、動作がとても重く感じます。これは、取り込んだ写真ごとにサムネイルを作り、動画は CPU で変換し、機械学習が有効なら顔の検出やスマート検索の処理もするためです。数万枚のライブラリを一度に取り込むと、これらのジョブが一斉にたまります。
管理画面のジョブ画面で、キューの残りの数を確認できます。ラズパイ側では、コンテナごとの負荷を見られます。
docker stats --no-stream取り込みの間は immich_server の CPU 使用率が高く、MEM USAGE の合計が RAM の上限に近づきます。メモリが足りなくなると処理が止まるので、スマートフォンのバックアップは一度に全部ではなく、年ごとなどに分けて始めるのが安全です。キューが空になれば、普段の閲覧はずっと軽くなります。最初の数日の重さだけでラズパイを見限る必要はありません。
VIPS_NOVECTOR=1 はもう消す
以前、Pi 4 ではサムネイルを作るときに Immich が落ちる問題がありました。その回避策として VIPS_NOVECTOR=1 という環境変数を設定する方法が広まりました。この問題は 2025年9月12日公開の v1.142.0 で修正されています。リリースノートには、この変数を設定していた人は v1.142.0 以降に更新するときに削除すべきだと書かれています。現在の v3 系はこれより新しいので、古い設定が残っていないか確認してください。
cd /mnt/ssd/immich
grep -n VIPS_NOVECTOR docker-compose.yml .env何も表示されなければ問題ありません。行が見つかったら削除して docker compose up -d を実行すると、コンテナが新しい設定で作り直されます。最後に、変数が消えたことを確認します。
docker compose exec immich-server env | grep VIPS何も表示されなければ完了です。Immich の更新では、設定の変更が必要になることがあります。更新の前には、毎回リリースノートを読んでください。
ラズパイでは足りなくなるとき: 別の場所のコピーと VPS
ラズパイ1台と SSD 1台の構成では、写真のコピーは1つしかありません。SSD が壊れたり、家が停電や災害にあったりすれば、そのコピーは失われます。スマートフォンから写真を消して Immich に任せ始めたら、家の外にもう1つコピーを置くべきです。データベースのダンプと写真フォルダの両方が必要なので、手順は Immich のバックアップと復元 を参照してください。
ラズパイが足りなくなる目安は次のとおりです。
- 8GB のモデルで、日本語検索のために多言語モデルを動かしたい。
- 家族の人数が増えて、取り込みのジョブが一日中終わらない。
- 自宅の PC を常に動かしておけないので、機械学習をリモートに逃がせない。
- 自宅の回線や停電のせいで、外から写真を見られない時間が気になる。
どれかに当てはまったら、選択肢は2つです。1つは、ラズパイを自宅のサーバーとして使い続け、VPS をバックアップの保存先にする構成です。もう1つは、Immich 本体を RAM 8GB 以上の VPS に移し、ラズパイを自宅側のコピーにする構成です。どちらを選んでも、写真が2つの場所にあるという状態は手に入ります。似たアプリと比べてから決めたい場合は、PhotoPrism と Immich の比較 も参考になります。
FAQ
Raspberry Pi 4 の 4GB モデルで Immich は動きますか?
機械学習を無効にすれば動きます。Immich の公式要件は RAM 最低 6GB ですが、4GB の環境は機械学習の機能を無効にすれば動かせる、と明記されています。その場合、写真のバックアップとタイムラインは使えますが、スマート検索、顔の検出、重複の検出は使えません。3GB 以下のモデルは、どちらの条件にも届きません。
Raspberry Pi 5 で Immich のハードウェアトランスコードは使えますか?
使えません。Immich のハードウェアトランスコードのページには「Raspberry Pi is currently not supported」とあります。そもそも Pi 5 は、ラズパイ公式のドキュメントによるとソフトウェアのビデオエンコーダーを使っており、ハードウェアの H.264 エンコーダーを持っていません。Pi 4 にはハードウェアのエンコーダーがありますが、Immich が対応していないので使われません。どちらでも動画の変換は CPU で行われます。
ラズパイの Immich で日本語の写真検索はできますか?
多言語の CLIP モデルに切り替えればできます。xlm 系と siglip2 系は言語設定に関係なく検索語を理解します。公式の日本語の表では XLM-Roberta-Base-ViT-B-32 の再現率が 75.93% です。ただし小さめのモデルでもメモリを約 3GB 使い、ラズパイの CPU での速度は公式には公開されていません。8GB のラズパイなら、多言語モデルは自宅の PC で動かす構成が確実です。
AI HAT+(Hailo)を付ければ Immich の顔認識は速くなりますか?
今はなりません。Immich の機械学習の高速化ページに Hailo は載っていません。Hailo への対応は GitHub のディスカッション #17230 で要望されている段階です。メンテナーはコメントしていますが、実装の約束や対応するプルリクエストはありません。ラズパイ以外で公式に高速化できるシングルボードは、RK3566、RK3568、RK3576、RK3588 の Rockchip 系です。
Immich のデータベースを microSD や NAS に置いてもいいですか?
NAS などのネットワーク共有は不可です。公式の要件ページは、データベースを「どんな種類のネットワーク共有にも絶対に置かない」よう求めています。microSD について明記はありませんが、公式は「できればローカルの SSD」と書いているので、Pi 5 なら NVMe、Pi 4 なら USB 3.0 の SSD に置くのが安全です。findmnt -T でデータベースのフォルダがどのデバイスにあるか確認できます。