docker部署Immich AI照片相册管理工具从安装到配置完成详细保姆级教程
目录
前言
家庭相册管理一直是我们日常生活的需求,不论是为了缓解“岌岌可危”的手机容量,还是打造家庭、儿童成长相册,或者是对摄影图片进行保存、汇总,都不可避免的需要接触到种类繁多的数码相册软件。
一般来说,苹果用户会选择icloud作为手机存储和管理工具,安卓用户则会选择google photos,也有一部分用户选择网盘工具来管理和上传照片,虽然方便,但是却有几个缺点。一个是相册上云,隐私不在;二是存储越来越多,费用越来越高。
那么,如何避免这些问题呢?答案很简单,那就是自建免费的相册管理工具,让全家的照片统统存在NAS或电脑里。
一.开源相册怎么选?
目前主流的开源相册分别是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=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
抱脸虫的镜像站
🔻最终的路径如下
# 自然语言检索的路径
…/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设置】,把地图复制到浅色模式下保存。
可以看到,已经默认为我们设置的地图样式和定位了
最后编辑:admin 更新时间:2024-12-24 17:35