在开始折腾服务器之前,我最大的心愿其实是建一个智能相册。我们家长此以来都是把旧照片存到一个移动硬盘上,想看的时候插电脑上在文件资源管理器里翻翻。没法找照片,没法确定时间线,没有备份,而且还卡的要死。
比较同类项目
网上一搜,你会发现首先推荐的是PhotoPrism。但是经过更深入的搜索,尤其是这篇“PhotoPrism的安装以及和Immich的优缺点对比 // 喵ฅ^•ﻌ•^ฅ”,让我坚定不移地转向了Immich。简单来说,PhotoPrism使用逻辑较复杂,手机端app付费,而且据说对亚洲人的人脸识别精度不高。
开源的照片管理工具很多,详情可以看这里。一定要按需求选择,不要出现选择困难症!譬如我需要一个家庭共用的相册,那肯定是要支持多端应用程序的(你可别指望让家里人在网页上操作)。选定一个项目后,坚持使用下去就好了,不要摇摆不定,没过几天又羡慕别的项目的功能。如果你还是不确定,我是强推Immich的,它的功能足够多,使用也足够简单。
安装部署
网上关于安装Immich的教程很多,但是我需要提醒的是,由于Immich是一个更新频繁的项目(最近刚发布了2.0.0stable版,不知道后续会不会稳定下来),很多教程都已过时。我在此也没必要写具体的安装步骤,建议大家还是去看官网的教程安装。目前主流的部署方式仍然是使用Docker Compose。需要注意的有以下几点:
1.在编辑.env文件时不要忘记编辑时区。
2.如果要挂载外部图库,需要在docker-compose.yml文件中添加如下内容(第5行):
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /<外部路径>:/<映射路径,例如extlib>:rw #读写,可同步删除;否则使用ro
env_file:
- .env
3.同在docker-compose.yml中,一定一定要做以下目录映射,不然没法启用机器学习(参考immich智能相册更换支持中文搜索的CLIP大模型教程):
immich-machine-learning:
container_name: immich_machine_learning
………………
volumes:
- ./model-cache:/cache #原本是“- model-cache:/cache”,可改为任意目录,只是改成子目录好管理一点
这一步最好在初次compose前做,以防奇奇怪怪的bug。然后接着按照那篇帖子的步骤就可以启用智能搜索和人脸识别了。人脸识别模型首推antelopev2。
避坑
1.不建议启用存储模版,没有必要。
2.对于性能较差的机器,建议分开跑智能搜索和人脸检测两个任务(先暂停一个),会快一些。
3.之前我想从备份恢复Immich数据时,发现即使在挂载路径完全一致的情况下,Immich也不会恢复外部图库的数据(元数据是在的,但就是不识别路径),最后无奈,只能重新跑了一遍机器学习。具体原因没研究明白,实在不行就少用外部图库吧。
4.用immich app上传照片有时候会吞掉位置信息,只能重新上传。
就这么多。