大家好,这里是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,导致使用人数已经越来越低了,而且其亚洲人脸识别率很低

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

Ente:

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

Immich:

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

本文基于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,选择项目,点击新建,选择路径,点击下一步即可

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

方法三:威联通部署compose

打开Container Station,选择【应用程序】,点击【创建】,将代码复制进去,点击验证后部署即可

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

方法四:铁威马部署compose

打开Docker Manager,选择【项目】,点击【+】,选择文件路径以后,填入代码即可

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具


三、Immich完整版配置方法

Storage Template功能建议大家不要开启,这样可以保持原有的文件格式。

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

一、外部库解决群晖重复照片问题

接着,我们来引入外部图库,即原来通过其它方式传入NAS的图片,我们都可以将它们引入为immich的外部图库,进行集中管理。

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

二、解决模型无法下载,以及无法使用中文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

文件夹路径示例,可以参照这个

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具
Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具
Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

三、增加显卡加速

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

在代码里已经说明了,需要核显加速的取消#备注即可

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

四、增加中文地图

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

登录并注册MapTiler,选择【newmap】

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

点击右上角Save保存

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

点击publish发布地图

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

Immich收费了?25刀!后知后觉的我,分享几个方法DIY这款最强家庭照片管理工具

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

,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。