解决TrueNas Scale部署immich后人脸识别失败,后台模型下载异常,immich更换支持中文搜索的CLIP大模型

这个问题搞了我几天终于解决了,搜遍网上基本没有详细针对TrueNas Scale部署immich应用后,CLIP模型镜像下载超时导致人脸识别失败,以及更换支持中文识别的CLIP模型的博客。

注意Dragonfish 24.04.2.5版本及以下老版本基于k3sElectric Eel 24.10.1版本及以上新版本基于docker

分析

现象:TrueNas Scale安装immich官方镜像应用后,导入图片人脸识别失败,中文识别更不行,查看immich-machinelearning pod后台调用日志,显示huggingface.co无法访问,导致下载模型失败。

方案

下载模型文件,手动上传到pod的模型缓存文件夹中,然后设置对应的模型名称,保存后重新识别图片即可。

【关键信息】TrueNas Scale安装immich应用后mmich-machinelearning pod的默认模型缓存文件路径为:/mlcache/clip/mlcache/facial-recognition

此方案是上传到pod中CLIP模型文件的缓存目录下,如果pod被销毁需要重新上传覆盖模型文件到缓存目录

1. TrueNas Scale开启SMB共享,为本地文件上传到宿主机做准备,自行下载XLM-Roberta-Large-Vit-B-16Plus以及buffalo_l模型,并上传到TrueNas文件夹

模型数据对比,感觉XLM-Roberta-Large-Vit-B-16Plus模型好点,支持多语言,包括中文
模型对比
官方默认的immich-app/ViT-B-32__openai模型只支持英文,这里顺便切换成XLM-Roberta-Large-Vit-B-16Plus模型。

贴下immich的官方镜像站https://huggingface.co/immich-app
国内镜像站:https://hf-mirror.com/immich-app

2. 登录TrueNas Scale后台,进入命令行,切换root账号,上传模型文件到pod中

上传前,确保当前immich没有执行的JOB

上传模型文件之前:
重要】选择应用-选择immich-工作负载-选择immich-machine-learning容器的日志图标-打开-查看是否有日志刷新

确认后再执行模型文件推送

在这里插入图片描述
执行cp命令推送到pod

老版本(k3s)

执行k3s kubectl cp命令推送到pod

上传XLM-Roberta-Large-Vit-B-16Plus模型(例):
k3s kubectl cp /mnt/pool/share-folder/SMB/XLM-Roberta-Large-Vit-B-16Plus immich-machinelearning-54969d6cb9-czcdn:/mlcache/clip -n ix-immich

变量解释:

  • /mnt/pool/share-folder/SMB/XLM-Roberta-Large-Vit-B-16Plus(模型文件上传到TrueNas中的目录)
  • immich-machinelearning-54969d6cb9-czcdn(接收模型文件的pod名称,注意启停应用的话pod可能会变)
  • /mlcache/clip/(pod固定的默认CLIP大模型缓存文件夹路径)
  • ix-immich(namespace名称)

同理上传buffalo_l模型:
k3s kubectl cp /mnt/pool/share-folder/SMB/buffalo_l immich-machinelearning-54969d6cb9-czcdn:/mlcache/facial-recognition -n ix-immich

新版本(docker)

执行docker cp命令推送到pod

//查询容器id,找到智能模型容器的id
docker ps

//cp宿主智能模型相关文件到容器
docker cp /mnt/pool/share-folder/SMB/XLM-Roberta-Large-Vit-B-16Plus 8e6eeaae9069:/mlcache/clip/

docker cp /mnt/pool/share-folder/SMB/buffalo_l 8e6eeaae9069:/mlcache/facial-recognition/
3.检查immich-machine-learning pod中是否成功接收到模型文件

应用-选择immich-工作负载-打开immich-machine-learning容器的命令行

在这里插入图片描述

进入根目录,查看是否有mlcache文件夹,cd /mlcache进入mlcache文件夹
在这里插入图片描述

  • clip 存放XLM-Roberta-Large-Vit-B-16Plus文件夹,对应设置里的CLIP MODEL
  • facial-recognition 存放buffalo_l文件夹,对应设置里的FACIAL RECOGNITION MODEL

对应模型文件夹子文件展示:
在这里插入图片描述

4.web页面设置切换模型参数,保存

在这里插入图片描述

5.重新执行job任务,查看日志,确认是否加载模型文件

重新执行SMART SEARCH与FACE DETECTION任务,重新识别图片。

查看日志确认是否加载
在这里插入图片描述

识别成功效果图:
在这里插入图片描述


### 更改 TrueNASImmich 应用使用的模型 为了在 TrueNAS Scale 部署Immich 中手动更换用于图像识别的大模型,需按照特定流程操作以确保新模型能够被正确加载并应用于图片处理。 #### 准备工作 确认目标环境已安装 Docker 或 Kubernetes 并正常运行。准备一台可以访问互联网的工作站来获取所需的 CLIP 大模型文件[^1]。 #### 下载所需模型 前往官方或其他可信资源站点下载适用于中文搜索优化过的最新版本 CLIP 模型压缩包。注意检查所选模型是否兼容当前系统的架构(如 ARM/x86_64),以及其格式是否满足应用程序的要求。 #### 访问 Pod 内部 通过命令行工具 kubectl 进入正在运行中的 immich 实例所在的 pod: ```bash kubectl exec -it <pod-name> -- /bin/sh ``` 其中 `<pod-name>` 是具体的容器实例名称,在实际执行前应替换为此处的真实值。 #### 定位存储路径 进入 pod 后找到存放已有模型数据的位置,默认情况下可能是 `/app/models` 或者其他由开发者指定的地方。具体位置取决于镜像配置和部署方式的不同而有所差异,请参照项目文档说明进行查找。 #### 替换旧有模型 将之前准备好的新的 .pt 文件复制到上述发现的目标目录下,并覆盖掉原有的同名文件;如果不存在相同命名,则创建一个新的条目指向该自定义模型。 #### 修改配置参数 编辑 application.yaml (或相应形式的应用程序设置文件),更新 `MODEL_NAME` 字段为刚刚放置的新模型的名字字符串表示。这一步骤至关重要,因为只有当系统知道要加载哪个预训练权重集时才能完成后续的任务。 #### 重启服务使更改生效 退出 shell 终端后利用 kubernetes 的滚动升级机制或者简单地删除现有 pods 来触发自动重建过程,从而让修改后的设定得到应用。等待一段时间直至所有组件恢复正常运作状态后再尝试上传照片测试效果。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值