百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

本地大模型直接搜索图片内容!群晖部署AI相册管理工具 immich

off999 2025-03-02 18:29 18 浏览 0 评论

使用群晖的用户都知道一个非常好用的相册管理套件:Photos。老宁平时都是用它来管理备份手机照片,平时非常稳定,也很省心。

今天要介绍的 immich 项目和 Photos 功能类似,同样提供web管理,iOS和安卓的多端备份功能。不过immich更强大的地方在于提供了基于大模型的AI搜索功能,通过本地大模型的识别分析,用户可以用文字直接找到任意一张符合描述的图片。

比如搜索"红色的花",那么 immich 会把匹配程度最高的第一张排在最前面。

项目地址

https://github.com/immich-app/immich

功能

  • 上传和查看视频和照片。
  • 打开应用程序时自动备份。
  • 忽略重复的项目。
  • 多用户支持。
  • 支持RAW格式。
  • 元数据视图(EXIF、地图)。
  • 人脸识别与分组。
  • 通过元数据、对象、人脸和标签进行搜索。
  • 等等

安装

需要说明的是 immich 可以部署在任何支持docker的主机上。下面以群晖演示部署安装。

首先去官方项目的 releases 页面下载docker-compose.yml和example.env文件。

打开群晖,在【File Station】新建文件夹immich用以存放项目的配置,再创建两个子文件夹library、postgres分别存储图片数据和数据库数据。

把文件夹路经分别复制下来。

粘贴覆盖example.env文件中UPLOAD_LOCATION和DB_DATA_LOCATION对应的值,并把时区修改为Asia/Shanghai。最后把example.env重命名.env。

docker-compose.yml文件则需要去掉 start_interval 这行,因为在群晖上不支持。

最后把这两个文件上传到群晖中。

打开【Container Manager】套件,新增一个项目,路径选择前面创建的immich文件夹,文件使用现有的 docker-compose.yml 来创建项目,后续的选项保持默认。

创建好项目后,耐心等待构建完毕。创建成功后共有四个容器被启动。

现在打开【群晖IP:2283】端口就能访问 immich 了。第一次登录需要注册管理员账户,注册成功后保持配置的默认选项即可进入主界面。

如果你的界面显示为英文,可以点击头像,打开 Account SettingsApp Settings 中把语言切换为中文。

接着就可以在主页上传图片了。

客户端

iOS用户可以直接在AppStore中搜索 Immich 进行下载。

安卓用户可以在谷歌应用商店或通过 GitHub Releases (apk)下载使用。

外部访问

想要在外面访问 Immich 服务进行照片备份,那么就必须要进行反向代理或端口转发。

配置 nginx proxy manager的反向代理,把2283代理为自己的域名。

或者使用群晖自带的反向代理(同时需要放开路由器的2284端口)。

后记

如果你只是简单的需要一个相册管理工具,那么按照上面的教程完成 Immich 的基础安装即可使用。如果想要使用开头那样的AI模型进行搜索,使用硬件加速,或者想把群晖 Photos 的照片链接到 Immich 中,由于篇幅限制我们将在下篇文章中进行详细介绍,敬请期待。

我是老宁

一个热爱技术的程序员和极客,群晖NAS深度玩家!

专注NAS相关技术分享,原创!干货!

觉得老宁的文章对你有帮助,记得点赞、收藏、加关注

相关推荐

Python设计模式 第 13 章 中介者模式(Mediator Pattern)

在行为型模式中,中介者模式是解决“多对象间网状耦合”问题的核心模式。它就像“机场调度中心”——多个航班(对象)无需直接沟通起飞、降落时间,只需通过调度中心(中介者)协调,避免航班间的冲突与混乱...

1.3.1 python交互式模式的特点和用法

什么是Python交互模式Python交互模式,也叫Python交互式编程,是一种在Python解释器中运行的模式,它允许用户在解释器窗口中输入单个Python语句,并立即查看结果,而不需要编写整个程...

Python设计模式 第 8 章 装饰器模式(Decorator Pattern)

在结构型模式中,装饰器模式是实现“动态功能扩展”的核心模式。它就像“手机壳与手机的关系”——手机(原始对象)具备通话、上网等基础功能,手机壳(装饰器)可在不改变手机本身的前提下,为其新增保护、...

python设计模式 综合应用与实战指南

经过前面16章的学习,我们已系统掌握创建型模式(单例、工厂、建造者、原型)、结构型模式(适配器、桥接、组合、装饰器、外观、享元、代理)、行为型模式(责任链、命令、迭代器、中介者、观察者、状态、策略...

Python入门学习教程:第 16 章 图形用户界面(GUI)编程

16.1什么是GUI编程?图形用户界面(GraphicalUserInterface,简称GUI)是指通过窗口、按钮、菜单、文本框等可视化元素与用户交互的界面。与命令行界面(CLI)相比,...

Python 中 必须掌握的 20 个核心:str()

str()是Python中用于将对象转换为字符串表示的核心函数,它在字符串处理、输出格式化和对象序列化中扮演着关键角色。本文将全面解析str()函数的用法和特性。1.str()函数的基本用法1.1...

Python偏函数实战:用functools.partial减少50%重复代码的技巧

你是不是经常遇到这样的场景:写代码时同一个函数调用了几十次,每次都要重复传递相同的参数?比如处理文件时总要用encoding='utf-8',调用API时固定传Content-Type...

第2节.变量和数据类型【第29课-输出总结】

同学们,关于输出的知识点讲解完成之后,把重点性的知识点做一个总结回顾。·首先对于输出这一章节讲解的比如有格式化符号,格式化符号这里需要同学们额外去多留意的是不是百分号s格式化输出字符串。当然课上也说百...

AI最火语言python之json操作_python json.loads()

JSON(JavaScriptObjectNotation,JavaScript对象表示法)是一种开放标准的文件格式和数据交换格式,它易于人阅读和编写。JSON是一种常用的数据格式,比如对接各种第...

python中必须掌握的20个核心函数—split()详解

split()是Python字符串对象的方法,用于将字符串按照指定的分隔符拆分成列表。它是文本处理中最常用的函数之一。一、split()的基本用法1.1基本语法str.split(sep=None,...

实用方法分享:pdf文件分割方法 横向A3分割成纵向A4

今天在街上打印店给儿子打印试卷时,我在想:能不能,把它分割成A4在家中打印,这样就不需要跑到街上的打印店打印卷子了。原来,老师发的作业,是电子稿,pdf文件,A3格式的试卷。可是家中的打印机只能打印A...

20道常考Python面试题大总结_20道常考python面试题大总结免费

20道常考Python面试题大总结关于Python的面试经验一般来说,面试官会根据求职者在简历中填写的技术及相关细节来出面试题。一位拿了大厂技术岗SpecialOffer的网友分享了他总结的面试经...

Kotlin Data Classes 快速上手_kotlin快速入门

引言在日常开发中,我们常常需要创建一些只用来保存数据的类。问题是,这样的类往往需要写一堆模板化的方法:equals()、hashCode()、toString()……每次都重复,既枯燥又容易出错。//...

python自动化RobotFramework中Collections字典关键字使用(五)

前言介绍安装好robotframework库后,跟之前文章介绍的BuiltIn库一样BuiltIn库使用介绍,在“python安装目录\Lib\site-packages\robot\librarie...

Python中numpy数据分析库知识点总结

Python中numpy数据分析库知识点总结二、对已读取数据的处理②指定一个值,并对该值双边进行修改③指定两个值,并对第一个值的左侧和第二个值的右侧进行修改2.4数组的拼接和行列交换①竖直拼接(np...

取消回复欢迎 发表评论: