# Memora (Re-Moment)

语言选择:
[English](./README.md) | [한국어](./README_KO.md) | [日本語](./README_JA.md) | [简体中文](./README_ZH.md) | [Español](./README_ES.md) | [Français](./README_FR.md) | [Português](./README_PT.md) | [हिन्दी](./README_HI.md) | [বাংলা](./README_BN.md) | [العربية](./README_AR.md)

---

<a href="https://apps.apple.com/us/app/memora/id6772086536">
  <img src="https://lab.missflash.com/assets/memora/appstore-ios-black.svg" alt="Download on the App Store" width="220" align="right">
</a>

[![App Store](https://img.shields.io/badge/App%20Store-Download-black.svg?style=flat-square&logo=appstore)](https://apps.apple.com/us/app/memora/id6772086536)
[![Platform: iOS 18+](https://img.shields.io/badge/Platform-iOS%2018%2B-blue.svg?style=flat-square&logo=apple)](https://developer.apple.com/ios/)
[![Platform: iPadOS 18+](https://img.shields.io/badge/Platform-iPadOS%2018%2B-blue.svg?style=flat-square&logo=apple)](https://developer.apple.com/ipados/)
[![Framework: Swift 6](https://img.shields.io/badge/Framework-Swift%206-orange.svg?style=flat-square&logo=swift)](https://developer.apple.com/swift/)
[![License: Proprietary](https://img.shields.io/badge/License-Proprietary-red.svg?style=flat-square)](./LICENSE.md)

**Memora**，副标题 **Re-Moment**，是一款以本地优先为核心的 iPhone/iPad 应用。它会分析用户的照片图库，并把相关的时刻整理成短篇回忆故事视频。应用重点提供私密照片索引、可审核的推荐、可编辑的故事草稿和设备端渲染。Pro Vision AI 是可选的付费功能，用于更高质量的字幕和远程辅助索引。

## 📑 目录
- [📱 应用截图 (App Screenshots)](#应用截图-app-screenshots)
- [✨ 主要功能](#主要功能)
  - [智能故事推荐](#智能故事推荐)
  - [可审核的回忆故事](#可审核的回忆故事)
  - [本地优先的 Vision 与存储](#本地优先的-vision-与存储)
  - [Pro Vision AI](#pro-vision-ai)
  - [视频渲染与保存](#视频渲染与保存)
- [❓ FAQ（常见问题）](#faq常见问题)
- [📌 重要说明](#重要说明)
- [🛠 技术栈](#技术栈)
  - [客户端](#客户端)
  - [服务器](#服务器)
- [📜 政策与许可](#政策与许可)
- [📄 许可](#许可)

## <a id="应用截图-app-screenshots"></a>📱 应用截图 (App Screenshots)

| 截图 | 截图 | 截图 | 截图 | 截图 |
| :---: | :---: | :---: | :---: | :---: |
| <img src="https://lab.missflash.com/assets/memora/screenshots/1.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/2.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/3.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/4.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/5.png" width="160" /> |
| <img src="https://lab.missflash.com/assets/memora/screenshots/6.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/7.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/8.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/9.png" width="160" /> | <img src="https://lab.missflash.com/assets/memora/screenshots/10.png" width="160" /> |

---

## <a id="主要功能"></a>✨ 主要功能

### 智能故事推荐
* **照片图库索引:** Memora 通过 PhotoKit 读取用户允许访问的照片，并提取日期、地点、收藏、媒体类型、质量、人脸数量、场景和字幕信号。
* **推荐卡片:** 应用会根据同一人物、相似背景、美食、季节、城市/旅行、时间快照、有意义的瞬间和视频高光等生成故事候选。
* **搜索与维护:** 用户可以在本地搜索已索引照片，并使用翻译补全、一致性修复、推荐反馈重置和索引恢复辅助功能。
* **扫描优先级设置**: 可以在应用设置中直接调整索引扫描优先级。
* **快速扫描 (Quick Scan) 模式**: 提供基于规则的快速扫描选项，以更快获取结果。
* **外观模式设置**: 使用全新的外观模式选项（系统、浅色、深色）自定义您的应用体验，以便在任何环境下都能舒适地浏览。


### 可审核的回忆故事
* **故事审核:** 渲染前可检查推荐故事，通过全屏预览和搜索来替换、删除、添加、重新排序照片，并从人脸清晰的照片中登记代表人物。
* **反馈控制:** 用户可以归档生成的故事、隐藏某条推荐、排除相似推荐类型，并撤销最近的反馈。
* **人物支持:** 已登记的人物资料可用于创建人物主题故事，并改善后续推荐质量。
* **故事预览时间轴**: 使用全新的时间轴预览功能，在渲染前准确查看视频的节奏。
* **空状态和反馈摘要**: 更好地查看您隐藏的推荐内容，在没有故事可显示时获得更流畅的体验。
* **人物管理**: 为人物选择代表性面孔，并轻松将照片合并到现有的人物个人资料中，以实现更好的分类管理。

### 本地优先的 Vision 与存储
* **默认设备端处理:** 标准索引和备用字幕使用本地 PhotoKit、Vision 和元数据分析。除非用户启用并使用 Pro Vision AI，否则照片不会发送到服务器。
* **可选的使用统计:** 从1.1.5版本起，数据共享默认开启；设备地区为欧盟、欧洲经济区或英国时默认关闭。已保存的选择会保留，可在活动标签页的使用统计中更改。共享开启时，Memora 才会发送汇总的漏斗阶段和功能使用次数，以及应用环境信息、哈希化的安装 ID，并在可用时附带后端账户 ID。哈希处理不代表完全匿名。关闭共享后会停止传输并请求删除服务器端数据。统计中绝不包含照片、字幕、位置、面部数据、搜索词或故事标题。详情请参阅[隐私政策](./PRIVACY_POLICY.md)。
* **本地数据库:** 索引、故事、渲染任务、偏好、检查点和人物资料通过 SwiftData 严格安全地保存在应用本地沙盒中。
* **诊断:** MetricKit 诊断用于排查崩溃、卡顿、启动、CPU 和磁盘写入问题。这些诊断不包含用户的原始照片文件。
* **AI下载UI改进**: 设备端Vision AI模型下载现支持字节级进度显示和停滞检测，大文件下载卡住时会及时提示。
* **动态Vision AI模型清单**: 支持由后端驱动的设备端MLX模型配置更新。
* **设备端Vision AI稳定性**: 字幕处理会根据设备的内存、发热和电量状态自动调整，检测到问题时会自动安全地切换到快速扫描，避免应用卡顿和崩溃。


### Pro Vision AI
* **可选付费功能:** Pro Vision AI 通过服务器端代理提供增强的 VLM 字幕和远程索引额度管理。额度不可用或无法连接服务器时，应用仍可使用标准本地 Vision AI。
* **服务器端控制:** 后端会验证 StoreKit 权益状态，签发短期访问令牌，执行额度管理，保护提供商 API 密钥，处理幂等性并跟踪滥用防护信号。
* **图像处理:** 图像载荷仅为请求的字幕处理操作而转发。服务设计上不会为产品使用或 AI 训练保存原始图像字节。但为权益、额度、调试、安全和滥用防护目的，可能保留经过清理的请求元数据、提供商响应文本、请求状态、额度计数器、设备哈希和错误信息等运营记录。

### 视频渲染与保存
* **原生渲染器:** 回忆故事基于缓存的照片资源通过 AVFoundation 渲染，默认目标为 30fps，并使用 dissolve、slide、wipe、zoom 类运动与转场效果。
* **导出到 Photos:** 渲染前会在需要时准备 iCloud-only 资源的本地副本。完成的视频通过 Photos add-only 权限和 Photos 兼容 MOV fallback 路径保存。
* **进度与取消:** 应用会显示下载、渲染、保存、失败、取消和恢复状态。
* **AI 生成的内置音乐:** 部分可选背景音乐由 Google Gemini/Lyria 生成。根据[服务条款](./TERMS_OF_SERVICE.md)，这些音乐只能作为 Memora 渲染视频的一部分保存和分享。

### 参与度和无障碍功能
* **每日任务和连续打卡**: 完成每日回忆任务，记录您的参与连续打卡，并解锁主题成就徽章。
* **主屏幕小组件**: 使用新的连续打卡小组件，直接从主屏幕跟踪您的打卡状态。
* **每月回顾**: 享受个性化的每月回顾通知和信息流，回顾您的最佳瞬间。
* **无障碍功能增强**: 改进了对动态字体 (Dynamic Type)、减弱动态效果 (Reduce Motion) 和旁白 (VoiceOver) 的支持，提供舒适的体验。
* **用户可编辑的字幕**: 手动编辑 AI 生成的字幕，并可随时恢复为 AI 默认值。
* **应用内支持和错误处理**: 直接在应用内联系支持，并享受更清晰、标准化的错误恢复流程。

<!-- changeflow:memora-readme-zh:start -->
### 最新更新
* 改进故事搜索准确性，精准识别修饰词与名词的搭配关系，避免在搜索“蓝色衣服”时匹配到蓝天下穿白衣服等误判照片。
* 商店现已分别说明订阅和点数包，并将点数使用说明放在点数包中，同时明确优惠标识的比较依据。
* 统一了商店和新手引导中的Pro点数术语与说明，并优化了韩语和日语的界面名称、帮助文字及错误消息。
* 商店现可清晰标识当前已订阅的方案；若已取消自动续订，将明确显示服务到期日而非下次续订日。
* 联系客服时，现在可以选择请求类型（问题、错误或功能建议）。即使错过了推送通知，“Alerts”标签页也会显示所有当前公告。
<!-- changeflow:memora-readme-zh:end -->

---

## <a id="faq常见问题"></a>❓ FAQ（常见问题）

[邮件联系](./support.html)

* **为什么索引这么慢？**
  Memora分为标准模式和Pro模式。标准模式直接使用您设备上的AI模型，由于端侧处理的特性，这可能需要很长时间。为了获得更快的索引速度和高质量的字幕，您可以在商店中购买Pro Vision AI订阅。

* **我的照片会保存在服务器上吗？**
  不会，您的照片永远不会保存在我们的服务器上。在标准模式下，所有的处理都在您的设备上本地完成。即使在使用Pro Vision AI时，图像也只是暂时发送到服务器进行处理，随后会立即被丢弃，永远不会被保存或用于AI训练。

* **我必须购买什么才能使用该应用吗？**
  不需要，Memora的核心功能完全免费。您可以免费使用标准模式来索引照片并创建故事。Pro Vision AI是一项可选的付费功能，适合希望获得更快处理速度和更丰富图像字幕的用户。

* **我使用的是Pro版本，但索引依然很慢？**
  这可能是后台连接问题。请强制关闭应用程序（在应用切换器中向上滑动），然后重新打开它。此外，由于Pro模式需要与我们的服务器通信，请确保您有稳定的互联网连接。

* **我可以备份我的数据吗？**
  可以。您可以使用Memora中的“设置 > 备份与恢复 > 数据库备份”功能，将您的索引、故事和偏好设置等数据导出为文件备份，保存到本地或文件管理库中。（注：这仅备份应用数据，不备份您的原始照片文件。）

* **我可以恢复我备份的数据吗？**
  可以。您可以使用Memora中的“设置 > 备份与恢复 > 数据库恢复”功能，导入之前导出的备份文件来恢复数据。

* **为什么照片索引时屏幕会变暗？**
  索引仅在屏幕常亮时进行。为了节省电池并防止烧屏，Memora会在连续索引5分钟后自动将屏幕亮度降至最低。我们强烈建议在长时间索引时将设备连接电源。

* **夜间屏幕太亮了？**
  您可以手动调低设备的亮度或使用深色模式。如果您让应用保持索引状态，Memora会在5分钟后自动为您调暗屏幕。

* **白天屏幕太暗了？**
  您可以手动调高设备的亮度或禁用深色模式。Memora为了节省电池，会在索引5分钟后故意调暗屏幕。如果您需要查看屏幕，只需轻触屏幕或通过控制中心手动调整亮度。

* **索引期间设备发热严重？**
  标准模式在很大程度上利用了您设备的处理器和神经网络引擎，这自然会导致其发热。Pro模式将繁重的计算卸载到我们的服务器上，从而显著减少设备发热和电池消耗。如果发热让您感到不适，请考虑暂停索引、连接充电器或升级到Pro Vision AI以获得更凉爽、更快速的体验。

## <a id="重要说明"></a>📌 重要说明

* Memora 需要照片读取权限来索引并推荐故事。支持有限照片访问，但完整访问可提供预期体验。
* 将渲染后的视频保存到照片应用需要照片添加权限。
* Pro Vision AI 会将所选图片临时发送到后端和配置的 VLM 提供商以生成字幕数据。但是请放心，所有照片在生成字幕后都会被立即删除，不会被保存。
* AI 生成的字幕和推荐可能不准确。在渲染或分享前请检查故事内容。
* 内置 AI 生成音乐以非独占方式提供，不保证独占版权或不侵犯第三方权利。不得单独提取或重新分发音频。
* 产品名称、额度、价格和平台支持范围可能在 App Store 发布前后变化。

---

## <a id="技术栈"></a>🛠 技术栈

### 客户端
* Swift 6, SwiftUI, SwiftData
* PhotoKit, Vision, AVFoundation, MetricKit
* MLX Swift LM / MLX VLM 相关包, Swift HuggingFace, Swift Transformers

### 服务器
* FastAPI, Uvicorn, Starlette
* PostgreSQL, SQLAlchemy, Alembic, Psycopg 3
* Pydantic, Pydantic Settings, HTTPX
* 用于 StoreKit 和令牌验证路径的 PyJWT, cryptography

---

## <a id="政策与许可"></a>📜 政策与许可

* [Privacy Policy](./PRIVACY_POLICY.md)
* [Terms of Service](./TERMS_OF_SERVICE.md)
* [Legal Notice](./LEGAL_NOTICE.md)
* [Open Source Licenses](./OPEN_SOURCE_LICENSES.md)
* [Proprietary License](./LICENSE.md)

---

## <a id="许可"></a>📄 许可

Copyright © 2026 MFLab-AI ([https://lab.missflash.com/](https://lab.missflash.com/)). All rights reserved.

除非另有书面许可，Memora 的源代码、资产、品牌、文档和相关材料均为专有内容。第三方开源组件仍受其各自许可证约束。
