Photonix 是一款采用极简设计的 AI 驱动智能相册,专门针对现代网页环境进行优化。它整合了 PWA(渐进式网页应用)、流式加载技术、多数据库架构以及高性能缓存机制,致力于为用户带来无与伦比的浏览感受和智能化的交互方式。
核心功能亮点
🎭 AI 智能交互
- • AI 画中密语:AI 技术能够模拟照片中的人物角色,提供沉浸式的对话互动体验
- • 多模型支持:兼容 OpenAI、Claude、Gemini 等主流视觉模型,确保灵活性和扩展性
- • 自定义提示词:支持多种 AI 角色设定,从温馨对话到私密互动,满足个性化需求
- • 异步任务处理:AI 内容生成采用 BullMQ 队列机制,有效避免用户界面阻塞问题
- • 智能缓存:AI 生成内容通过 Redis 持久化缓存,显著降低 API 调用成本
- • 任务去重:相同图片自动复用已有结果,优化系统性能和响应速度
- • 提示词模板:内置多种对话风格模板,用户可参考 AIPROMPT.md 文件进行自定义调整
🖼️ 图片管理
- • 流式图片加载:大相册支持极速响应,通过懒加载技术优化用户体验
- • 智能缩略图:自动生成多尺寸缩略图,并集成失败重试机制确保可靠性
- • 视频处理:自动进行视频优化,支持多种格式转码以适应不同设备
- • 双图片布局:响应式瀑布流和网格模式,自适应各种屏幕尺寸
🔒 安全防护
- • 一键全局模糊:通过键盘单击 B 键或三指触摸屏幕快速启用模糊效果
- • 密码保护:可选密码访问功能,支持公开和私有模式之间的灵活切换
- • 路径校验:实施严格的文件路径安全检查,防止潜在安全风险
- • 速率限制:API 访问频率控制机制,有效防止系统滥用行为
🚀 性能优化
- • 多数据库架构:主数据库、设置数据库、历史记录数据库和索引数据库分离设计
- • Redis 高性能缓存:AI 内容与搜索结果持久缓存,提升数据访问效率
- • Worker 线程池:缩略图生成、AI 处理和索引重建等多线程并发处理
- • 智能索引:基于 SQLite FTS5 全文搜索,支持模糊匹配和快速查询
📱 用户体验
- • PWA 支持:可安装为应用、支持离线访问,移动端手势切换操作流畅
- • 响应式设计:完美适配桌面端和移动端设备,确保一致浏览体验
- • 触摸手势:移动端支持滑动切换图片、双指缩放和三指模糊等交互
- • 键盘导航:桌面端提供丰富键盘快捷键,方便快速操作
- • 搜索历史:智能记录搜索历史,支持快速重复搜索操作
🛠️ 运维友好
- • Docker 部署:一键式部署方案,实现环境隔离和简化管理
- • 健康检查:容器健康状态实时监控,确保服务稳定性
- • 日志系统:结构化日志输出,便于问题排查和系统维护
- • 数据迁移:自动数据库迁移功能,支持平滑升级和版本更新
详细安装教程
Docker Compose
services:
app:
image: heizicao/photonix:latest
container_name: Photonix
ports:
- 12080:13001
environment:
- PORT=13001
- NODE_ENV=production
- LOG_LEVEL=info
- PHOTOS_DIR=/app/photos
- DATA_DIR=/app/data
- REDIS_URL=redis://redis:6379
- JWT_SECRET=OSGvnF4dZ5YUyv3WwSHQhKHGhRd2lL5w
- ADMIN_SECRET=RdKqLIQ3MOOOmJN1qo25Q621tH9K8A1f
volumes:
- ./photos:/app/photos
- ./photonix_data:/app/data
restart: unless-stopped
depends_on:
- redis
redis:
image: redis:7-alpine
container_name: Photonix-redis
command: redis-server --appendonly yes
volumes:
- ./redis_data:/data
restart: unless-stopped
参数说明(更多参数建议参考官方文档)
:::tips
PORT(环境变量):服务监听端口设置
NODE_ENV(环境变量):运行模式配置
LOG_LEVEL(环境变量):日志级别控制
PHOTOS_DIR(环境变量):媒体库根目录路径
DATA_DIR(环境变量):数据存储目录路径
REDIS_URL(环境变量):Redis 连接地址信息
JWT_SECRET(环境变量):替换为 32 位或以上强随机字符串
ADMIN_SECRET(环境变量):管理员密码设置,替换为 32 位或以上强随机字符串
:::
使用指南与操作步骤
在浏览器中输入 http://NAS的IP:12080
即可访问 Photonix 界面
将图片文件放入映射的图片目录中(用户可创建文件夹进行分类管理)
图片将自动生成缩略图并加载展示在界面中
支持两种布局切换:网格布局和瀑布流布局,适应不同浏览偏好
点击打开照片后的展示效果,提供清晰浏览体验
点击页面右上角图标,打开设置弹窗进行个性化配置
安全设置方面,如果计划将相册放到外网分享,建议启用访问密码保护功能
其他用户访问时需要输入正确密码才能查看相册内容
AI 密语功能是整个项目的特色亮点,按要求填写 AI 配置(调用的模型需支持视觉识别)
开启 AI 功能后,图片底部会显示一个对话按钮,便于互动
AI 系统会自动识别图片内容并提供交互响应,未来若加入对话回复功能将更具趣味性
系统状态页面,如果照片未正常显示,可在此重新同步和调整设置
生成缩略图过程中的资源占用情况监控
高级扩展与自定义
由于打包的镜像可能不会持续更新,用户如需自行构建项目,可参考以下步骤
访问 GitHub 下载项目:https://github.com/li88iioo/Photonix
解压 ZIP 文件后,打开 env.production 配置文件
修改密钥和口令设置(生成一个 32 位随机字符串即可)
将整个项目文件夹上传到 NAS 设备指定位置
重命名 env.production 文件为 .env 以启用配置
创建新项目,选择上传的文件夹路径,系统会自动导入模板
修改相册存放路径设置,此处示例放置在当前目录下
其他参数保持默认值,点击确认完成设置
如果容器持续重启,可能是权限问题,可递归修改目录权限(若仍无效,调整配置模板赋予最高特权)
sudo chmod -R 777 /vol1/1000/docker/photonix
综合评价与总结
Photonix 作为一款极简风格的 AI 驱动智能相册,与市面上其他相册应用存在显著差异。传统相册的 AI 功能多聚焦于人脸识别和场景分类,而 Photonix 的核心优势在于其创新的 AI 交互能力。它巧妙地将展示内容定位为写真集,这种组合实现了 1+1>2 的协同效应。通过 AI 技术赋予照片中人物“对话能力”,让静态写真焕发出互动生命力。当然,当前功能相对基础,期待后续版本能集成图片上传和管理功能,并强化 AI 交互以实现实时对话,这将开辟全新的照片交互体验领域。
综合推荐:⭐⭐⭐⭐(写真集管理多了一个优质选择)
使用体验:⭐⭐⭐⭐(开启照片交互新世界)
部署难易:⭐(操作极为简便)