编辑
2026-08-19
undefined
00

目录

NAS智能相册产品需求文档
更新日志
1. 文档概述
1.1 文档目的
1.2 使用范围
1.3 产品定位
2. 需求概述
2.1 产品背景
2.2 产品目标
2.3 用户画像
3. 竞品分析
3.1 竞品概况
3.2 功能对比矩阵
3.3 差异化策略
4. 功能清单
4.1 优先级定义
4.2 功能详细列表
5. 服务端能力设计
5.1 技术选型
5.2 Immlich移植方案
5.3 用户&权限&文件逻辑改造
5.4 图片格式支持
5.4.1 基础图片格式
5.4.2 RAW 格式(相机原始文件)
5.4.3 特殊格式
5.4.4 视频格式
5.5 图库数量限制
6. WEB/PC端功能设计(V0.1)
6.1 整体说明
6.1.1 功能&信息框架
6.1.2 设计原型
6.2 导航菜单适配
6.3 搜索功能设计
6.3.1 AI智能搜索
6.3.2 普通搜索
6.3.3 搜索结果展示
6.3.4 搜索历史
6.4 快捷添加
6.5 主题切换
6.6 相册通知
6.7 相册设置
6.7.1 设置入口
6.7.2 文件夹管理
6.7.3 AI模型管理
7. 照片相关功能
7.1 照片模块
7.1.1 改动清单
7.2 文件夹模块
7.3 地图模块
7.4 最近添加
8. 图库相关功能
8.1 我的收藏
8.1.1 改动清单
8.2 相册
8.2.1 相册列表
8.2.2 相册内容页
8.3 人物
8.4 地点
8.5 标签
8.6 类型分类
8.6.1 类型分组
8.6.2 类型内容页
8.7 智能分类
8.7.1 V0.1支持的分类
9. 智能相册管理/工具
9.1 共享管理
9.2 检查重复项
9.3 查看大文件
9.3.1 列表展示
9.3.2 操作
9.4 归档
9.5 回收站
10. 公共功能
10.1 图片播放(大图浏览)
10.1.1 改动清单
10.2 实况图播放
10.3 视频播放
10.4 任务&任务消息
11. 移动端功能设计
11.1 功能&信息框架
11.2 原型设计
11.3 移动端特有功能
12. 技术规格
12.1 性能要求
12.2 兼容性要求
12.3 安全要求
12.4 可用性要求
13. 测试与验收标准
13.1 功能测试
13.1.1 核心功能验收
13.1.2 性能测试
13.1.3 兼容性测试
13.2 安全测试
13.3 压力测试
13.4 回归测试
14. 版本规划
14.1 V0.1 版本(当前)
14.2 V0.2 版本(规划中)
14.3 V1.0 版本(规划中)
15. 风险与依赖
15.1 技术风险
15.2 业务风险
15.3 依赖项
16. 附录
16.1 名词解释
16.2 相关文档

NAS智能相册产品需求文档

文档信息内容
文档名称NAS智能相册产品需求文档
版本号V2.0
创建日期2026-03-10
创建人Claude
基于文档AWOL智能相册产品需求文档 V1.0
状态初稿

更新日志

时间版本号变更人主要变更内容
2025/10/3V1.0欧阳鹏昊文档新建
2026/03/10V2.0Claude优化文档结构,补充技术规格,增加测试验收标准

1. 文档概述

1.1 文档目的

本文档旨在详细说明NAS智能相册产品的产品需求、功能设计、技术规格和验收标准,为产品设计、开发、测试提供明确的指导依据。

1.2 使用范围

  • 适用人员:NAS OS内部产品经理、UI/UX设计师、开发工程师、测试工程师
  • 适用场景:产品研发全流程,包括需求评审、架构设计、编码实现、测试验收
  • 合作方:OS合作伙伴、第三方开发团队

1.3 产品定位

NAS智能相册是一款面向NAS用户的专业级照片管理应用,通过深度整合AI智能识别技术,为用户提供照片存储、整理、搜索、分享的一站式解决方案。产品核心优势在于:

  1. 本地化部署:所有数据存储在NAS本地,保障用户隐私
  2. AI智能识别:自动识别人脸、场景、物体,智能分类照片
  3. 高性能处理:支持海量照片快速加载和检索
  4. 多端同步:WEB端和移动端同步体验

2. 需求概述

2.1 产品背景

随着智能手机的普及和拍照质量的提升,用户照片数量呈爆炸式增长。传统的外置硬盘、网盘已无法满足用户对照片高效管理的需求。NAS(网络附属存储)为用户提供了私有云存储方案,而现有NAS相册产品存在以下痛点:

  1. 分类整理繁琐:用户需要手动整理照片,耗时耗力
  2. 搜索效率低:只能按时间、文件夹查找,无法按内容搜索
  3. 功能分散:照片查看、编辑、分享等功能分散在多个应用中
  4. 智能化不足:缺乏AI自动分类、人脸识别等智能功能

2.2 产品目标

打造一款基于NAS的智能相册应用,通过AI技术降低用户照片管理成本,提升使用体验。

核心目标:

  • 自动整理:AI自动识别人脸、地点、场景,智能分类
  • 高效检索:支持以文搜图、OCR文字识别搜索
  • 便捷分享:一键分享照片、相册给家人朋友
  • 隐私保护:所有数据本地处理,不上传云端

2.3 用户画像

用户类型特征描述核心需求使用频率
专业摄影师拥有大量RAW格式照片,需要专业管理工具RAW格式支持、EXIF信息查看、色彩管理每日使用
家庭用户保存家庭生活照片,需与家人共享人脸识别、家庭共享、宝宝相册每周数次
旅行爱好者拍摄大量风景照片,需要按地点整理地点相册、地图视图、AI场景识别每周数次
内容创作者需要快速检索、整理素材库标签管理、智能搜索、批量操作每日使用

3. 竞品分析

3.1 竞品概况

竞品名称选择原因目标用户核心优势主要不足
绿联相册NAS直接竞品,相册用户量大喜欢拍照收藏的用户宝宝相册、条件相册、自定义学习、照片收集界面体验一般
极相册NAS竞品,AI功能完善喜欢拍照收藏的用户AI识别准确、宠物识别好商业化重,部分功能需付费
飞牛相册NAS竞品,用户群体相似喜欢拍照收藏的用户地图功能强、分类丰富性能一般
Immich开源优秀项目,功能全面喜欢拍照收藏的用户功能完善、社区活跃、持续更新部署复杂,NAS适配需改造

3.2 功能对比矩阵

功能模块绿联相册极相册飞牛相册Immich本产品目标
图库基础
手动上传
关联文件夹
时间按轴视图
文件夹视图
视图大小切换
筛选功能
收藏夹
相册管理
自建相册
个人相册
共享相册
条件相册
宝宝相册
地点相册
智能分类
人脸聚类
证件照
动物识别
风景识别
宠物品种识别
图片操作
多选
全选❌(性能考虑)
幻灯片播放
分享
收藏
下载
编辑图片信息
OCR文字识别
归档
移动到加密文件夹
设置标签
视频功能
播放/暂停
上一个/下一个
进度seek
音量调节
全屏播放
倍速播放
实用工具
相似图片识别
重复图片识别
大文件识别
图片收集
系统功能
任务管理
通知管理整合到OS通知
搜索功能
以文搜图
按地点搜索
按人物搜索
个人设置
个性化设置
账户使用统计
登录设备管理
用户管理整合OS用户系统
文件夹管理
AI模型管理
自定义学习
主题模式
使用显卡转码
相册备份

3.3 差异化策略

基于竞品分析,本产品的差异化优势:

  1. 性能优化:针对大规模照片库进行优化,解决竞品全选等性能问题
  2. 系统深度集成:与NAS OS用户体系、通知系统深度集成
  3. UI/UX优化:基于Figma设计稿,提供更优秀的用户体验
  4. 功能精简聚焦:去除冗余功能,聚焦核心场景

4. 功能清单

4.1 优先级定义

优先级定义示例
P0基石功能,无该功能则无法使用;主卖点相关的功能;硬件已规划选型,软件必须配合适配的功能照片上传、时间轴视图、人脸识别、以文搜图
P1用户需求量大,有可以提升用户体验,且大部分竞品都有,但没有也不会影响用户主要场景使用的功能地图视图、幻灯片播放、回收站
P2产品评估未来可作为差异点的功能;用户痒点功能高级编辑、AI修图

4.2 功能详细列表

分类功能名称功能描述目的/价值优先级备注
照片浏览
时间轴视图以时间轴视图浏览照片基础能力P0
文件夹视图按用户规整的文件夹维度查看照片方便有整理习惯的用户P1
地图视图以世界地图的方式查看照片清晰展现用户足迹P1
类型视图按图片、动/实况图、视频分类展示方便用户按类型查找P1需新增
照片上传将本地/NAS中的图片手动上传到相册基础能力P0
关联文件夹关联NAS文件夹中的图片,监测变动实时更新基础能力P0
最近添加按时间顺序,最近加入的100张图片(近3个月)方便用户查看最新照片P1
我的收藏汇总展示用户收藏的照片方便用户查看P1
相册管理
创建相册用户按自己的习惯创建聚合相册基础能力P0
个人相册仅自己可见的个人相册基础能力P0
共享相册与NAS内其他用户共享相册家庭协作P0
条件相册基于条件自动聚合照片(如时间、地点、标签)智能分类P1
宝宝相册特定人物相册,支持按年龄聚合家庭场景P1
地点相册基于地理位置自动聚合方便查看旅行照片P1
智能识别
人脸识别通过AI识别人脸自动聚合方便查找人物照片P0
地点识别识别照片中的地理位置,按地级市聚合方便查找旅行照片P0
标签识别读取照片EXIF中的标签信息,按标签聚合方便管理P1
智能分类-证件AI识别证件照片并聚合方便管理证件照片P0
智能分类-动物AI识别猫、狗等动物并聚合宠物场景P0
智能分类-宠物品种识别猫狗品种宠物爱好者P2
智能分类-风景识别风景场景旅行场景P2
图片操作
上一张/下一张切换查看的图片基础能力P0
放大/缩小缩放查看图片基础能力P0
实况/动态图浏览点击播放实况图iOS用户需求P1
多选选择多条内容批量操作基础P0
快捷键多选使用Shift快捷多选提升效率P0
幻灯片放映自动播放选择的图片欣赏体验P1
分享分享照片/相册给其他用户社交需求P0
收藏将图片添加到收藏方便快速访问P1
下载将图片下载到本地备份需求P1
编辑图片信息编辑EXIF信息、标题、描述信息管理P1
OCR文字识别识别图片中的文字信息可搜索P1
设置标签为图片添加自定义标签分类管理P1
添加到相册将图片添加到指定相册组织管理P0
删除删除该图片数据管理P0
归档将图片在时间轴/相册中隐藏隐私保护P1
视频操作
播放/暂停播放或暂停视频基础能力P0
上一个/下一个切换播放内容连续播放P0
进度Seek拖动进度条到指定时间点精准控制P0
音量调节调整播放音量体验优化P0
全屏播放全屏模式沉浸体验P0
倍速播放0.5~2.0区间倍速播放效率工具P0
实用工具
共享管理管理已共享的相册、链接及收到的共享共享管理P1
检查重复项检查图库中的重复内容存储优化P1
查看大文件列出大于50M的图片和大于1GB的视频存储优化P1需基于immich改造
回收站管理临时删除的图片,30天后自动清空数据安全P1
相似图片识别AI识别相似图片整理工具P1
批量标记批量为图片添加标签效率工具P1
图片收集从文件夹批量收集照片整理工具P1
搜索功能
以文搜图通过描述搜索对应的图片(CLIP模型)智能搜索P0
文本识别搜索通过识别图片中的具体文字搜索OCR搜索P1
按人物搜索搜索指定人物的照片快速检索P0
按地点搜索搜索指定地点的照片快速检索P0
系统功能
账户信息显示用户头像、用户名,接入NAS账户体系鉴权管理P0
文件夹管理设置个人图库关联的文件夹数据来源管理P0
AI模型管理设置人脸、CLIP、OCR模型开关AI能力管理P0
自定义学习训练自定义人脸识别模型精准识别P1
主题模式切换深色/浅色模式个性化P1
使用显卡转码启用GPU加速视频转码性能优化P1
相册备份将手机等设备中的照片备份到相册数据同步P0
任务管理查看后台扫描、AI处理任务进度任务监控P1

5. 服务端能力设计

5.1 技术选型

技术领域选型说明
基础框架Immich开源相册项目,功能完善,社区活跃
编程语言
后端NestJS + TypeScript
前端React + TypeScript + Tailwind CSS
移动端Flutter/React Native
数据库
主数据库PostgreSQL
缓存Redis
存储
对象存储NAS文件系统(挂载为外部库)
缩略图NAS本地存储
AI能力
人脸识别face recognition library
向量搜索CLIP模型 + FAISS/PGVector
OCRTesseract
图像处理Sharp

5.2 Immlich移植方案

移植目标: 将immich应用重新打包为可原生运行在ZIMAOS的安装包方式

移植工作内容:

  1. 环境适配

    • 数据库配置适配NAS PostgreSQL
    • 存储路径映射到NAS文件系统
    • 服务自启动脚本适配
  2. 用户系统集成

    • 替换immich内置用户系统为NAS用户系统
    • 统一认证鉴权逻辑
    • 用户数据隔离
  3. 文件系统适配

    • 外部图库扫描适配NAS文件系统
    • 文件变动监听适配
    • 权限管理集成
  4. AI模型管理

    • 模型存储路径配置
    • GPU加速支持(可选)
    • 模型下载和更新机制

5.3 用户&权限&文件逻辑改造

设计原则:

规则说明
1. 用户一致性相册用户与NAS用户一致,打开相册时带入当前登录用户
2. 数据隔离每个用户创建自己的图库和相册,在【相册】应用中,用户的数据独立
3. 默认图库用户登录后,自动检索用户目录/Photos下的图片,用户上传的图片保存在该目录
4. 共享机制用户可以将相册共享给系统中的其他用户,也可接受其他用户共享的相册
5. 删除机制删除照片后临时移入回收站,回收站清理后才真实删除文件

用户数据结构:

sql
-- 用户表(关联NAS用户) users ( id: UUID, nas_user_id: VARCHAR, -- 关联NAS用户ID name: VARCHAR, -- 用户名 avatar: VARCHAR, -- 头像路径 default_library_id: UUID -- 默认图库ID ) -- 图库表 libraries ( id: UUID, user_id: UUID, -- 所属用户 name: VARCHAR, -- 图库名称 path: VARCHAR, -- 关联NAS文件夹路径 is_default: BOOLEAN, -- 是否默认图库 scan_status: ENUM -- 扫描状态 ) -- 相册表 albums ( id: UUID, user_id: UUID, -- 创建者 name: VARCHAR, -- 相册名称 type: ENUM, -- 类型: personal/shared/system shared_with: JSON, -- 共享用户列表 conditions: JSON, -- 条件相册规则(可选) created_at: TIMESTAMP ) -- 共享关系表 shares ( id: UUID, album_id: UUID, -- 被共享的相册 owner_id: UUID, -- 共享者 recipient_id: UUID, -- 接收者 permission: ENUM, -- 权限: read/write/admin created_at: TIMESTAMP )

5.4 图片格式支持

5.4.1 基础图片格式

格式扩展名说明优先级
JPEG.jpg, .jpeg最常用的照片格式P0
PNG.png支持透明度的无损格式P0
GIF.gif动图和静态图P0
WebP.webpGoogle开发的现代格式P0
HEIF/HEIC.heic, .heif苹果设备常用,高效压缩P0
AVIF.avif下一代图像格式,压缩率更高P1

5.4.2 RAW 格式(相机原始文件)

品牌主要格式其他格式
Canon.cr2, .cr3.crw
Nikon.nef, .nrw.raw
Sony.arw, .sr2.srf, .srw
Fujifilm.raf-
Olympus.orf-
Panasonic.rw2, .raw-
Leica.rwl, .raw-
Pentax.pef, .ptx.raw
Sigma.x3f-
Hasselblad.3fr-
Phase One.iiq-
DNG(通用).dngAdobe数字负片格式

5.4.3 特殊格式

格式扩展名说明
TIFF.tif, .tiff高质量无损格式
BMP.bmpWindows位图
ICO.ico图标格式
SVG.svg矢量图形(需要配置)
PPM/PGM/PBM.ppm, .pgm, .pbm无损位图格式

5.4.4 视频格式

格式扩展名说明
MP4.mp4, .m4v最常见的视频格式
MOV.mov苹果设备常用
AVI.avi传统视频格式
WebM.webmWeb优化的视频格式
MKV.mkv开源容器格式
WMV.wmvWindows视频格式
3GP.3gp移动设备格式
QuickTime.qtApple格式
FLV.flvFlash视频

5.5 图库数量限制

类型限制值说明
照片数量10万张/用户为保证性能设置上限,超限提示用户删除
相册数量1万个/用户个人创建相册数量限制
单文件大小10GB单个照片/视频最大支持大小
缩略图大小自动生成支持多种尺寸(200px, 500px, 1000px)

6. WEB/PC端功能设计(V0.1)

6.1 整体说明

相册WEB V0.1版本将基于开源immich相册进行改造适配,保留核心功能,优化用户体验,并与NAS OS深度集成。

6.1.1 功能&信息框架

┌─────────────────────────────────────────────────────────────┐ │ [Logo] 相册 [用户头像▼] [设置] │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────┐ │ │ │ │ │ │ │ │ 主内容区 │ │ │ 导航 │ │ │ │ 菜单 │ │ │ │ │ │ │ │ │ │ │ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘

6.1.2 设计原型

Figma链接: https://www.figma.com/design/GEYjKAaakgF4jtrD1tRdsx/%E7%9B%B8%E5%86%8C?node-id=195-7

6.2 导航菜单适配

菜单项Immich对应改动说明
照片照片保持
文件夹文件夹保持
地图地图保持
最近添加-新增,显示近3个月加入的照片
我的收藏收藏夹保持
相册相册导航栏不做折叠
人物人物保持
地点探索>地点从"探索"模块提取
标签标签保持
类型-新增,按图片/动图/视频分类
智能分类-新增,包括证件、动物等
共享管理共享整合共享链接管理
检查重复项实用工具>检查重复项提到一级菜单
查看大文件实用工具>查看大文件提到一级菜单
归档归档保持
回收站回收站保持
锁定文件夹锁定文件夹移除,无需该功能
存储空间存储空间移除,使用OS系统监控
服务器状态服务器状态移除,使用OS系统监控

6.3 搜索功能设计

6.3.1 AI智能搜索

功能描述: 使用CLIP模型,通过自然语言描述搜索图片

元素规范:

属性值/规则
默认状态开启
提示文案"请描述你想搜索的图片,如:海边夕阳"
支持语言中文、英文、德文、法文、意大利文、西班牙文
最大字符数50字符
超限提示"请精简您的内容,控制在50字符内"

交互流程:

  1. 用户输入描述 → 实时调用CLIP模型生成向量
  2. 向量相似度搜索 → 返回最匹配的图片
  3. 结果按匹配度降序排列
  4. 最多显示N条结果(与immich保持一致)

6.3.2 普通搜索

功能描述: 按人名、地点名、文件名、OCR识别文字关键词搜索

元素规范:

属性值/规则
切换方式关闭【智能搜索】自动切换
提示文案"请输入照片人名,地点,文件名,照片内文字进行搜索"
支持语言中文、英文、德文、法文、意大利文、西班牙文
最大字符数50字符

6.3.3 搜索结果展示

结果页特性:

  • 搜索词保留在输入框中
  • 结果按匹配度由大到小排列
  • 提示文案:"已根据相关性将搜索结果列出"

空态页:

  • 提示文案:"无搜索结果,尝试使用同义词或更通用的关键词"

6.3.4 搜索历史

属性规则
排序按时间由近到远
最大数量5条
存储位置端侧localStorage
清除逻辑相册页面关闭重新打开后清除

6.4 快捷添加

交互设计:

┌────────────────────────────────────────────────┐ │ │ │ [搜索框] [添加▼] [用户头像] [设置] │ │ ┌───────────────────┐ │ │ │ 上传照片 │ │ │ │ 创建相册 │ │ │ └───────────────────┘ │ └────────────────────────────────────────────────┘

操作说明:

  • 点击【添加】按钮呼出下拉菜单
  • 点击"上传照片" → 呼出PC文件选择器(限定格式与immich一致)
  • 点击"创建相册" → 进入相册创建页

6.5 主题切换

功能规范:

属性规则
切换位置设置页或快捷入口
支持模式深色模式、浅色模式
默认模式浅色
持久化保存在用户偏好设置中

6.6 相册通知

设计决策:

immich自带【通知】功能,但内容未做用户可读性处理。本产品将相册通知接入到OS系统通知中,故移除immich自带的【通知】功能。

通知场景:

  • AI识别任务完成
  • 文件夹扫描完成
  • 共享相册被更新
  • 回收站即将清理

6.7 相册设置

6.7.1 设置入口

点击右上角 [用户头像▼] → 选择 [设置] 进入设置页

6.7.2 文件夹管理

默认关联文件夹:

  • 路径:/Users/{username}/Photos
  • 创建逻辑:用户首次登录时自动创建该目录(如不存在)
  • 权限:自动赋权至对应用户
  • 扫描:关联后立即执行增量扫描
  • 删除:默认文件夹不可移除

添加关联文件夹:

规则说明
选择器使用ZIMA OS现有单选文件夹选择器
范围根据用户权限列出可选文件夹
限制仅支持选择文件夹
数量V0.1仅支持单选
扫描添加后自动执行增量扫描

文件夹信息展示:

信息项说明
文件夹图标标准文件夹图标
文件夹路径显示完整路径
可用空间格式化显示(如"50.2GB")
照片数量整数
视频数量整数
扫描状态"图片扫描中" / "已扫描 X/Y"
标签默认文件夹显示"默认"标签

扫描功能:

操作说明
单个扫描点击文件夹旁【扫描】按钮
全部扫描点击右上角【扫描全部】按钮
扫描模式增量扫描(仅扫描新文件)
扫描状态显示"已扫描 X/Y"(实时更新)
停止扫描扫描中可点击停止
扫描完成显示"扫描完成"及扫描结果统计

6.7.3 AI模型管理

功能模型操作
智能搜索模型Intel CLIP识别全部、识别缺失
人脸检测人脸模型开关、重新识别
人脸识别人脸模型开关、重新识别
文本识别OCR模型开关、重新识别
重复项检测Intel CLIP开始检测

操作与immich现有保持一致。


7. 照片相关功能

7.1 照片模块

基于immich【照片】模块改造

7.1.1 改动清单

改动项说明原因
【上传】→【添加】将上传按钮改为添加按钮呼出快捷添加菜单
移除【全选】按钮去掉选择状态下的全选按钮及CTRL+A功能性能问题
移除【移动到锁定文件夹】去掉更多菜单中的该选项移除锁定文件夹功能

7.2 文件夹模块

改动说明: 将功能区嵌入到内容区中,其他功能与immich【文件夹】完全一致

┌──────────────────────────────────────────────────┐ │ 文件夹 [上传▼] │ ├──────────────────────────────────────────────────┤ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 文件夹1 │ │ 文件夹2 │ │ 文件夹3 │ │ │ │ │ │ │ │ │ │ │ │ 125张 │ │ 89张 │ │ 234张 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └──────────────────────────────────────────────────┘

7.3 地图模块

功能说明: 与immich【地图】模块完全一致

数据来源:

  • 从照片EXIF中提取GPS坐标
  • 调用逆地理编码API获取城市、地区信息

7.4 最近添加

功能说明: 按最近加入到图库的时间顺序以时间轴的方式列出最近3个月的照片

与其他模块差异:

  • 时间范围:近3个月
  • 排序:按"加入时间"而非"拍摄时间"

8. 图库相关功能

8.1 我的收藏

基于immich【收藏夹】模块改造

8.1.1 改动清单

改动项说明
移除【全选】按钮去掉选择状态下的全选按钮及CTRL+A功能
移除【移动到锁定文件夹】去掉更多菜单中的该选项

8.2 相册

8.2.1 相册列表

V0.1版本与immich保持一致

8.2.2 相册内容页

改动清单:

改动项说明
排序功能提到右上角可切换【最新的优先】【最旧的优先】,默认最新优先
共享用户常驻展示当前用户默认展示,无需切换
移除【选项】菜单排序、添加用户已外置;评论、点赞功能不需要

8.3 人物

功能说明: 与immich【人物】模块保持一致

自动聚类规则:

  • 使用人脸识别模型检测人脸
  • 使用人脸嵌入相似度聚类
  • 支持用户手动合并/拆分人物

8.4 地点

功能说明: V0.1版本复用immich中的【探索-地点】模块

8.5 标签

功能说明: 复用immich【标签】功能

数据来源:

  • 用户手动添加的标签
  • 从EXIF中提取的标签(如IPTC Keywords)

8.6 类型分类

功能说明: 将照片库内容按类型自动分类

8.6.1 类型分组

分组名称包含内容规则
图片静态图片.jpg, .png, .webp, .heic等
动图动态图片.gif
实况图iOS实况图.heic(Live Photo)
视频视频文件.mp4, .mov, .avi等

显示规则:

  • 某类内容为空时不展示该分类
  • 封面:分组内最新的一张内容的缩略图
  • 数量:显示分组内内容数量

8.6.2 类型内容页

与相册内容页差异:

差异项类型内容页相册内容页
创建时间不展示展示
共享用户展示
右上角操作无【添加】【分享】【地图】【删除】完整操作

8.7 智能分类

功能说明: 根据AI模型自动聚类照片

8.7.1 V0.1支持的分类

分类AI模型说明
证件CLIP分类身份证、护照、驾驶证等
宠物识别各类猫咪
宠物识别各类狗只
其他动物动物识别除猫狗外的动物

特性:

  • 自动检测和分类
  • 封面:分组内最新的一张内容的缩略图
  • 分组内容页与【类型】内容页一致

9. 智能相册管理/工具

9.1 共享管理

功能分类:

  • 我的共享:已共享给其他内部用户的相册
  • 他人共享:NAS内其他用户共享给我的相册
  • 我的链接:我创建的相册或图片共享链接

列表信息:

信息项说明
相册名称共享相册的名称
创建时间共享创建的时间
内容数量相册内的照片/视频数量
创建者相册创建者用户名
权限读/写/管理

V0.1逻辑:

  • 共享链接逻辑复用immich
  • 内部用户共享基于NAS用户体系

9.2 检查重复项

功能描述: 调用AI模型分析重复图片,逻辑复用immich

检测标准:

  • 文件哈希相同
  • 图像内容相似度 > 阈值(如95%)
  • CLIP向量相似度 > 阈值

操作:

  • 保留较高质量版本
  • 合并元数据
  • 删除重复项(可选)

9.3 查看大文件

9.3.1 列表展示

属性
分类照片、视频
排序按内容容量大小由大到小
照片阈值≥ 50MB
视频阈值≥ 1GB

9.3.2 操作

操作说明
删除支持多选、快捷键多选
删除逻辑移入回收站,无需二次确认

9.4 归档

功能说明: 复用immich归档功能

归档效果:

  • 在时间轴中隐藏
  • 在相册中隐藏(除非在该相册中打开)
  • 可在归档管理中找回

9.5 回收站

功能说明: 复用immich回收站

生命周期:

  • 删除操作后照片移入回收站
  • 实际文件未被删除
  • 30天后自动清空
  • 清空前可恢复

10. 公共功能

10.1 图片播放(大图浏览)

基于immich改造

10.1.1 改动清单

改动项说明
增加【文本识别】功能弹出内容窗显示识别的文本,支持一键复制
移除【上传至项目堆叠】从更过菜单移除
移除【移动到锁定文件夹】从更多菜单移除

文本识别功能:

┌────────────────────────────────────────────────────┐ │ [图片显示区域] │ │ │ ├────────────────────────────────────────────────────┤ │ [上一张] [放大] [缩小] [文本识别▼] [下一张] │ └────────────────────────────────────────────────────┘ 点击【文本识别】: ┌────────────────────────────────────────────────────┐ │ OCR文字识别结果 │ │ ┌──────────────────────────────────────────────┐ │ │ │ 识别出的文字内容... │ │ │ │ │ │ │ └──────────────────────────────────────────────┘ │ │ [一键复制] │ └────────────────────────────────────────────────────┘

10.2 实况图播放

功能说明: 功能逻辑复用immich

操作菜单调整:

  • 移除【上传至项目堆叠】
  • 移除【移动到锁定文件夹】

10.3 视频播放

功能说明: 复用immich视频播放功能

支持的格式:

  • MP4、MOV、AVI、WebM、MKV、WMV、3GP、FLV等

10.4 任务&任务消息

功能说明: 复用immich任务管理功能

任务类型:

  • 文件夹扫描任务
  • AI识别任务(人脸、OCR、CLIP)
  • 缩略图生成任务
  • 视频转码任务

11. 移动端功能设计

11.1 功能&信息框架

移动端功能基于WEB端精简,重点优化移动交互

核心功能:

  • 照片浏览(时间轴、地图、类型)
  • 相册管理
  • 人脸/地点识别
  • 照片上传
  • 分享功能

简化功能:

  • 设置移至应用设置
  • 工具功能简化入口

11.2 原型设计

Figma链接: https://www.figma.com/design/GEYjKAaakgF4jtrD1tRdsx/%E7%9B%B8%E5%86%8C?node-id=599-13

交互说明在原型中体现

11.3 移动端特有功能

功能说明
相册备份将手机照片自动备份到NAS相册
后台上传支持后台备份,应用关闭继续上传
Wi-Fi限制仅在Wi-Fi下上传(可配置)
充电时上传仅在充电时上传(可配置)
离线浏览已下载的照片可离线浏览

12. 技术规格

12.1 性能要求

指标要求说明
加载性能
缩略图加载< 500ms单张缩略图
缩略图列表< 2s100张缩略图列表
大图加载< 2s原图/大尺寸预览图
视频首帧< 3s视频缩略图
搜索性能
关键词搜索< 1s普通关键词搜索
向量搜索< 3sCLIP向量相似度搜索
全文搜索< 5sOCR内容搜索
AI处理
人脸检测< 1s/张单张照片
OCR识别< 3s/张单张照片
CLIP向量化< 500ms/张单张照片
并发能力
同时在线用户≥ 50家庭NAS场景
并发上传≥ 10GB/h集中上传场景
并发下载≥ 20GB/h批量下载场景
存储能力
单用户照片数≤ 10万硬限制
单用户相册数≤ 1万硬限制
总存储容量不限取决于NAS容量

12.2 兼容性要求

类别要求
浏览器Chrome ≥ 90, Safari ≥ 14, Firefox ≥ 88, Edge ≥ 90
操作系统Windows 10+, macOS 11+, Linux主流发行版
移动端iOS 15+, Android 10+
分辨率桌面 ≥ 1366x768, 移动响应式适配
网络支持内网访问,外网访问需配合NAS穿透设置

12.3 安全要求

安全项要求
认证接入NAS用户系统,使用JWT或Session认证
权限用户数据隔离,共享权限严格控制
HTTPS生产环境强制使用HTTPS
XSS防护输入输出过滤,CSP策略
CSRF防护Token验证
SQL注入防护参数化查询
文件访问控制严格校验文件路径,防止目录遍历

12.4 可用性要求

指标要求
可用性99.9%(月度)
故障恢复自动重启,断线重连
数据备份支持数据库定期备份
日志记录完整的操作日志和错误日志
监控告警关键指标监控,异常告警

13. 测试与验收标准

13.1 功能测试

13.1.1 核心功能验收

功能验收标准测试用例
照片上传支持拖拽上传、点击上传,进度显示,支持多种格式上传JPG/PNG/WebP/HEIC/视频各1张
时间轴浏览按拍摄时间正确排序,日期分组显示,滚动流畅上传不同日期照片,验证排序和分组
文件夹关联关联后自动扫描,新增文件自动同步,移除后不再显示关联文件夹→添加新图片→验证自动同步
人脸识别上传含人脸照片后自动识别并聚类上传含5人照片,验证5个人物分组
以文搜图输入描述能搜索到相关图片上传"海边"照片,搜索"海边夕阳"
相册创建创建相册成功,可添加照片,支持共享创建→添加照片→分享给其他用户
回收站删除后进入回收站,可恢复,30天后自动清理删除→检查回收站→恢复→验证恢复

13.1.2 性能测试

场景指标测试方法
缩略图列表加载100张 < 2s上传100张照片,打开时间轴计时
大图加载单张 < 2s打开大图,记录加载时间
搜索响应关键词搜索 < 1s搜索常用关键词,记录响应时间
AI人脸识别1张 < 1s上传含人脸照片,记录识别时间
并发访问10用户同时访问压力测试,监控响应时间

13.1.3 兼容性测试

测试项测试环境验证内容
浏览器兼容Chrome, Safari, Firefox, Edge各版本核心功能可用,布局正常
系统兼容Windows, macOS, Linux安装运行正常
移动端兼容iOS, Android各主流机型App功能正常,布局适配
分辨率适配1366x768, 1920x1080, 2560x1440布局自适应

13.2 安全测试

测试项测试方法验证内容
权限隔离用A用户登录,尝试访问B用户相册拒绝访问
SQL注入输入SQL特殊字符搜索不报错,安全过滤
XSS攻击输入HTML脚本作为相册名不执行,转义显示
CSRF攻击模拟跨站请求Token验证拦截
文件路径遍历尝试访问../../etc/passwd拒绝访问
文件类型伪造修改文件扩展名上传验证真实文件类型

13.3 压力测试

场景并发数持续时间验收标准
上传压力10并发10分钟上传成功率 > 95%
浏览压力50并发10分钟响应时间 < 3s
搜索压力20并发5分钟响应时间 < 2s
长期稳定性10在线24小时无崩溃,内存稳定

13.4 回归测试

每次发布前执行:

  • 全部P0功能测试
  • 全部P1功能抽样测试
  • 性能基准测试
  • 安全关键测试
  • 兼容性回归

14. 版本规划

14.1 V0.1 版本(当前)

发布目标: 核心功能可用,满足主要使用场景

功能范围:

  • ✅ P0功能全部实现
  • ✅ 部分P1功能(地图、收藏、回收站等)
  • ❌ P2功能暂不实现

交付物:

  • WEB端应用
  • 移动端应用
  • Immich移植包
  • 用户文档

14.2 V0.2 版本(规划中)

新增功能:

  • 自定义学习(训练个性化人脸模型)
  • 宠物品种识别
  • 风景识别
  • 高级搜索(多条件组合)

14.3 V1.0 版本(规划中)

新增功能:

  • AI修图(自动调色、增强)
  • 智能拼图
  • 照片故事自动生成
  • 更多分享渠道

15. 风险与依赖

15.1 技术风险

风险影响缓解措施
Immich版本兼容性移植工作量大选择稳定版本,保持跟踪
AI模型性能识别速度慢支持GPU硬件加速
大规模数据性能10万张照片卡顿分页加载,懒加载优化
浏览器内存溢出大量缩略图OOM虚拟滚动,资源回收

15.2 业务风险

风险影响缓解措施
用户数据丢失重大事故数据库定期备份,回收站保护
存储空间不足无法上传存储监控,告警提示
共享权限混乱隐私泄露权限校验,日志审计

15.3 依赖项

依赖项要求状态
NAS OS版本ZIMAOS 1.5.2+
PostgreSQL12+
Redis6+
Python环境3.9+
Node.js环境16+
Figma设计稿已确认

16. 附录

16.1 名词解释

术语说明
EXIF可交换图像文件格式,包含照片的元数据(拍摄时间、设备、GPS等)
CLIPOpenAI的对比语言-图像预训练模型,用于以文搜图
OCR光学字符识别,从图像中提取文字
Immich开源自托管相册和照片管理应用
ZIMAOSNAS操作系统名称
Live Photo苹果实况图,包含静态图和短视频
RAW相机原始图像格式,包含未压缩的图像数据
HEIC高效图像容器,苹果设备使用的高效压缩格式

16.2 相关文档

文档名称链接/路径
Figma设计稿https://www.figma.com/design/GEYjKAaakgF4jtrD1tRdsx/相册
Immich官网https://immich.app/
Immich GitHubhttps://github.com/immich-app/immich

本文作者:oyph

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!