Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具
大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~
前言
家庭相册管理一直是我们日常生活的需求,不论是为了缓解“岌岌可危”的手机容量,还是打造家庭、儿童成长相册,或者是对摄影图片进行保存、汇总,都不可避免的需要接触到种类繁多的数码相册软件。
一般来说,苹果用户会选择icloud作为手机存储和管理工具,安卓用户则会选择google photos,也有一部分用户选择网盘工具来管理和上传照片,虽然方便,但是却有几个缺点。一个是相册上云,隐私不在;二是存储越来越多,费用越来越高。
那么,如何避免这些问题呢?答案很简单,那就是自建免费的相册管理工具,让全家的照片统统存在NAS或电脑里。
一、NAS原生相册和开源相册怎么选?
1、哪些NAS的自带相册比较不错。
有NAS的人都知道,无论是群晖、极空间、威联通,还是绿联、海康、华为等,都拥有自己的相册管理软件,并且拥有配套的APP和客户端。
其中,Cherry比较推荐的原生相册管理软件有群晖、极空间、威联通,这三款NAS自带的相册软件无论是适配性、易用性都很不错,其中极空间的极相册最优秀,支持家庭相册、儿童成长相册等多功能,支持高性能的AI分析功能;威联通支持快速检测、使用方便程度稍逊极空间一些;群晖新版的photos则是万金油应用,没有太出色,但是各方面都可圈可点。如果购买了这三款NAS的,基本用自己的系统就可以了。
绿联的话APP本身功能是足够的了,挺好用,不过AI自定义模型训练上依旧有些问题。可以再等等官方优化再使用。剩下的NAS品牌相册功能就比较一般了,开源完全可以代替。
2、开源相册怎么选?
目前主流的开源相册分别是immich、photoprism、ente、荔枝、piwigo等。这里主要可以拿来说一下的就是immich、photoprism、ente三款,剩下的比较简易和轻量化,适合照片数量不多的人使用。
🔶Photoprism:
在几年前photoprism用的人还是挺多的,和immich可以一较上下,虽然支持AI分类、搜索,但是不支持clip,导致使用人数已经越来越低了,而且其亚洲人脸识别率很低。

🔶Ente:
Google Photos的模仿者,拥有端对端加密的特点,本身可以看作是一款商用软件,支持空间付费等。不过成也萧何败也萧何,端对端加密让应用几乎无法和其它应用去联动,所以对于个人用户而言,反而不是很友好。

🔶Immich:
开源相册系统中的T0,也几乎是用户的唯一选择。7月19日,immich宣布了关于软件收费的公告,不过说收费,更多的应该是捐赠后给予一个身份认证的意思,就算普通用户不捐赠,依旧可以无偿使用immich的所有服务。

之后,immich新版本中,在左下角增加了未经授权的字样,虽然这个未经授权不是强制的,但是让用户感觉很不舒服,于是有大佬给出了自定义CSS修改方案,同时,这个决定这让开发团队在github上被狠狠的吐槽了一番。

不过好的是,immich听取了社区的意见,在随后的更新中决定取消未授权字样。目前最新的v1.111版本中,已经完全没有相关提示了。

本文基于immich最新v1.111.0版本,重新介绍如何安装这一套开源相册管理工具,并且通过一系列的DIY手段,解决外部存储、中文Clip、人脸识别、显卡转码加速、中文地图等等问题。
二、Immich系统部署方法
1、导入镜像
如果无法访问docker下载地址的,可以通过本网盘下载镜像压缩包(exe格式),解压为tar格式以后上传至NAS的自定义路径。然后通过NAS的镜像导入功能导入,或通过ssh输入以下指令导入
阿里:/kK4M9gHgFz7
提取码: tr40
# path代表真实路径,XXX.tar代表镜像压缩包
docker load -i /path/XXXX.tar
2、compose代码
🔻新建文件夹路径/volume1/docker/immich,在目录下新建或上传【docker-compose.yml】文件,复制compose代码并修改
version: "3.8"
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
# 如果怕修改原有照片,最后加上ro,否则删除ro
- ${PHOTOS_LOCATION}:/usr/src/app/external:ro
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
# 不同硬件可以在镜像后增加[armnn, cuda, openvino] 标签,比如支持cuda的独立显卡加速,可以为 ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# 下面的代码开启核显转码加速
# devices:
# - /dev/dri:/dev/dri
volumes:
# 这个目录存放AI模型
- /volume1/docker/immich/model:/cache
restart: always
redis:
container_name: immich_redis
image: library/redis:6.2-alpine
restart: always
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
#自定义data位置
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
🔻同一个路径下,增加【.env】文件,代码如下
TZ=Asia/Shanghai
IMMICH_VERSION=release
HF_ENDPOINT=https://hf-mirror.com
# 自定义的上传照片存放路径,群晖需要先创建好
UPLOAD_LOCATION=./library
# 自定义的数据库存放路径,群晖需要先创建好
DB_DATA_LOCATION=./postgres
# 自定义的外部库存放路径
PHOTOS_LOCATION=/volume1/homes/name/Photos/
# 下面修改数据库账号密码等信息
DB_PASSWORD=postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
3、各NAS系统部署项目方法
方法一:通用SSH部署compose(NAS、服务器、PC通用)
# 来到文件夹目录
cd /volume1/docker/容器名/
# 启动容器
docker-compose up -d
方法二:群晖部署compose
打开Container Manager,选择项目,点击新建,选择路径,点击下一步即可

方法三:威联通部署compose
打开Container Station,选择【应用程序】,点击【创建】,将代码复制进去,点击验证后部署即可

方法四:铁威马部署compose
打开Docker Manager,选择【项目】,点击【+】,选择文件路径以后,填入代码即可

三、Immich完整版配置方法
Storage Template功能建议大家不要开启,这样可以保持原有的文件格式。

首先我们来切换中文界面,点击右上角账号,选择【Account Settings】-【Language】,把【English】切换成【Chinese (Simplified)】

一、外部库解决群晖重复照片问题
接着,我们来引入外部图库,即原来通过其它方式传入NAS的图片,我们都可以将它们引入为immich的外部图库,进行集中管理。

点击新建图库最右侧的【…】,选择【编辑导入路径】,然后把我们在compose代码里设置的容器内路径填入,比如本文中的【/usr/src/app/external】。

完成以后,针对群晖用户,点击【扫描设置】,填入【**/SYNOPHOTO_*.** 】、【**/@eaDir/*】等等,这个是群晖photos默认生成的缩略图、缩略视频。如果不排除,immich会把群晖的低质量照片扫描4份左右,而且无法通过重复文件删除,特别麻烦。其它系统可以根据自定义忽略内容,比如、【**/tmp/*】。

这两个设置好以后,点保存,然后依旧点【…】,选择【扫描新的图片文件】

然后捏,我们就可以在immich里看到含群晖原有相册在内的照片啦。

二、解决模型无法下载,以及无法使用中文clip问题
目前的版本,不论是clip还是人脸都需要从hugging face下载,国内网络不通,加上镜像库也无法下载。因此要使用AI功能,我们需要先下载模型。
支持中文clip的模型【XLM-Roberta-Large-Vit-B-16Plus】,人脸识别的模型【buffalo_l】,国内可以通过下面的镜像站访问,也可以通过cherry的网盘下载。
# 网盘
阿里云盘:s/kK4M9gHgFz7
提取码: tr40
# 抱脸虫的镜像站
https://hf-mirror.com/immich-app/
🔻最终的路径如下
# 自然语言检索的路径
.../cache/clip/XLM-Roberta-Large-Vit-B-16Plus
# 多模态CLIP
.../cache/Multilingual CLIP/XLM-Roberta-Large-Vit-B-16Plus
🔻文件夹路径示例,可以参照这个

保存以后如果日志有提示说明正确

完成以后,记得到任务里去跑一下智能搜索,如果照片多的话,会使用很长时间,而且因为是cpu跑的,基本NAS就做不了其他事情了。

分别搜索【女孩】、【马】、【太阳】,可以正确检索出相关的图片并排序。



三、增加显卡加速
显卡加速一共有2个用途,一个是给AI算法加速(之前代码备注了,有cuda镜像可以下载,这里就不讨论了),一个是给转码加速。常规的NAS因为无法外置显卡,采用的都是核显,所以只能转码加速,方法和emby等一样,增加/der/dri即可。
在代码里已经说明了,需要核显加速的取消#备注即可

重新创建immich堆栈,完成以后,来到【设置】-【视频转码设置】

打开【硬件加速】-【加速器API】-【快速同步(Quick Sync)】就ok了,记得保存哦

四、增加中文地图
给immich增加中文地图的方法,是对地图样式进行修改。根据值友@范先森94的方法,注册MapTiler并生成样式即可。
登录并注册MapTiler,选择【newmap】

在页面上选择右下角的【CUSTOMIZE】。进入下面的页面后,点击左侧把语言更改为中文

选择自己所在地区,点击【定位】按钮固定默认位置

点击右上角Save保存

点击publish发布地图

完成以后退回上一页,选择红框内的style,点击复制

回到immich,路径【管理】-【设置】-【地图与GPS设置】,把地图复制到浅色模式下保存。

可以看到,已经默认为我们设置的地图样式和定位了

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

酉鑫
校验提示文案
英俊潇洒渣渣辉
(ios用户)选择immich的原因。
校验提示文案
望月之城_
校验提示文案
大粪男神
find: ‘/var/lib/postgresql/data’: Operation not permitted
校验提示文案
joeyzhou1980
校验提示文案
祥子1986
校验提示文案
林溪风
校验提示文案
疯爆银熊
校验提示文案
寻千与千寻94
校验提示文案
值友磐石
校验提示文案
数字码头工人
校验提示文案
值友8055900640
校验提示文案
0合金弹头0
校验提示文案
卧龙晓城
校验提示文案
今夜月光明媚
校验提示文案
范先森94
校验提示文案
cctv凝
校验提示文案
sqm669990
校验提示文案
等等党名誉会长
校验提示文案
天空之城的苍穹
校验提示文案
大粪男神
find: ‘/var/lib/postgresql/data’: Operation not permitted
校验提示文案
值友1795835610
校验提示文案
Jouknock
校验提示文案
天空之城的苍穹
校验提示文案
酉鑫
校验提示文案
卧龙晓城
校验提示文案
英俊潇洒渣渣辉
(ios用户)选择immich的原因。
校验提示文案
0合金弹头0
校验提示文案
值友8055900640
校验提示文案
数字码头工人
校验提示文案
等等党名誉会长
校验提示文案
范先森94
校验提示文案
值友磐石
校验提示文案
寻千与千寻94
校验提示文案
今夜月光明媚
校验提示文案
sqm669990
校验提示文案
疯爆银熊
校验提示文案
林溪风
校验提示文案
joeyzhou1980
校验提示文案
望月之城_
校验提示文案