immich目前(2024.11)处于活跃开发状态,更新非常频繁。
大模型需要有照片上传之后,在任务里面执行扫描,触发大模型才会下载模型文件,模型更新也是如此。下载需要科学上网环境,或者手动上传模型文件。
App会限制版本号要求跟连接的服务器版本号相同,否则app只能看不能备份。
解决图片名称在文件管理器中显示为随机字符串
当存储模板关闭(默认)时,上传的图片保存在upload文件夹中,Immich 将文件名保存在随机字符串(也称为随机 UUID)中,以防止重复的文件名。要检索原始文件名,必须启用存储模板,然后执行 STORAGE TEMPLATE MIGRATION(存储模板转换) 操作,此时图片会保存在library中。 建议在使用前阅读 Storage Template。
如果是群晖photos与immich共存,immich只作为查看启,photos用为上传,那就不要打开Storage Template,这样可以保留原文的文件命名格式。我不使用photos,所以打开Storage Template。
Storage Template格式设置为 年/相册/图片 的格式,这样即使以后不使用immich也可以有比较清晰的文件结构。
关于immich存储的文件结构和相册功能
根据immich的存储模板,系统可以把照片按照时间轴进行瀑布流展示,但是我个人更喜欢将某些集中拍摄的照片或者指向相通事物的照片放在同一个相册下。
于是我创建相册并上传照片实现分类,若想下载至本地,也可以直接下载整个相册,文件为【相册-图片】的结构。
遗憾的是,在immich的library目录中,文件还是按照【年-月日】的结构分类,无法从目录中直接下载相册目录。这样的弊端是,如果immich崩溃,存储的照片将会非常混乱,无法按照相册的分类进行备份。
于是我选择使用immich的外部图库功能,将已经整理好的文件挂载到immich中,immich会生成外部库的缩略图,这样immich就成为了一个浏览展示工具,可以使用AI功能,也可以下载,但是上传的话就不能通过immich直接上传到自己已经整理好的文件夹了。同时在immich中直接删除属于外部库的图片时,图片会进入回收站,此时并不会删除原文件中的图片,如果在回收站中也删除了图片,则外部库原文件中的图片也就删除了。
外部库目录每次添加新图片后要去点一下扫描。
有时候修改的文件夹命名更新不及时,可以重启容器。
另外,对于挂载的外部图库,如果在【瀑布流展示界面——多选——更改时间/更改位置】进行操作,则会在原目录中生成.xmp文件,不修改则不生成,对原目录没有影响。
应该也可以在docker compose的配置文件中将外部挂载目录的路径后面加上:ro,设为只读模式,以放置文件被修改和写入其它东西。
如 :- ${EXTERNAL_PATH}:/usr/src/app/external:ro
关于删除功能,如果直接在瀑布流展示页删除照片,此时再从本地上传照片,会提示照片为重复项。需要在回收站中也删除照片,才能重新上传。
immich的GPU硬件加速有两方面,一方面是视频转码,另一方面是机器学习。两个功能对GPU的支持并不相同,详情还要参考官方文档。
关于硬件加速视频转码
Hardware Transcoding(官方文档)
没看明白英特尔的核显到底能不能正常调用,英特尔独显应该是没问题,文档中关于QSV只有这么一段:
- 要使 VP9 正常工作:
- 您必须拥有第 9 代 Intel CPU 或更高版本
- 如果您使用的是第 11 代 CPU 或更早版本,则可能需要按照这些说明进行操作,因为需要低功耗模式
- 此外,如果服务器专门具有第 11 代 CPU 并且运行内核 5.15(随 Ubuntu 22.04 LTS 提供),那么您将需要升级此内核(来自 Jellyfin 文档)
看这个意思是9代以上GPU都可以支持,更早的版本参考了jellyfin的文档,要打补丁。但是我这个G4600是七代U,显卡HD 630,也支持VP9。在immich后台的视频转码——硬件加速设置中,有Quick Sync(需要Intel 7代及以上的CPU)的选项。
根据文档和设置的意思推断,这个硬件加速还是不同于jellyfin之类的硬件转码,主要还是以CPU为主,显卡作为加速,设置上面有这样一行解释:
这个API将与您的设备交互,以加速转码过程。此设置为“尽力而为”——如果转码失败,将回到软件转码。VP9是否工作取决于您的硬件配置。
设置中还有一个选项是
硬件解码
启用端到端加速,而不仅仅是加速编码。可能并不适用于所有视频。
这个才是完全调用显卡进行硬件解码
市面显卡H265/VP9/AV1硬件解码支持情况一览(2022年8月) - 知乎
关于硬件加速机器学习
Hardware-Accelerated Machine Learning(官方文档)
官方文档机器学习部分的摘要:
-
此功能允许使用 GPU 加速机器学习任务,例如智能搜索和面部识别,同时降低 CPU 负载。 由于这是一项新功能,因此它仍处于试验阶段,可能无法在所有系统上运行。
-
支持的硬件
- ARM NN (Mali))
- CUDA(5.2 或更高版本的 NVIDIA GPU)
- OpenVINO(Intel 独立 GPU,如 Iris Xe 和 Arc)
由此可见,截至目前V1.120.1版本英特尔核显还不能正常用于进行机器学习方面的硬件加速,Nvidia CUDA是目前支持最好的。据说12代及其以后英特尔cpu的核显可以支持,但是仍然不稳定,期待后续更新。只使用CPU也可以进行机器学习相关的任务,只是会造成CPU占用过高,不过只会在执行相关任务时才会调用,对于图库来说只执行一次。
另外,immich还提供了远程机器学习接口,可以将 Immich 的机器学习容器托管在功能更强大的系统(例如笔记本电脑或台式计算机)上。Remote Machine Learning | Immich
photos目录的结构
photos
encoded-video 转码视频
library 图库,immich直接上传的图片存在这里
thumbs 缩略图
profile 用户头像,难以置信immich竟然给头像单独创建了文件夹
upload 上传文件夹
外部图库目录可以任意,放到photos里也行
备份功能
备份和还原 | Immich
评论区