# Nomi 差异化产品 PRD

日期：2026-05-23

## 1. 结论

Nomi 不应该被定义成“另一个 Web 端 AI 视频画布”，而应该定义成：

> 开源、本地优先、Agent 可操作的 AI 视频生产 IDE。

竞品已经在抢三个方向：

- Laper：专业剧本、多人协作、影视前期制片。
- TapNow：智能体创意画布、商业视觉生成、社区化创作空间。
- LibTV：Web 端无限画布、多模型节点工作流、Agent Skill 生态。

Nomi 最有机会打穿的方向不是“生成效果比谁更强”，因为生成模型会快速同质化；也不是“云端协作更强”，这会进入 SaaS 资本和算力消耗战。Nomi 应该打穿的是：

- 桌面端带来的本地文件、素材、导出、后台任务、隐私和系统集成能力。
- 开源带来的可审计、可扩展、可 fork、可接入任意模型和任意工作流能力。
- 项目级生产记忆：剧本、分镜、画布、素材、模型调用、生成历史、剪辑时间轴和导出结果都沉淀在一个可迁移的本地项目包里。

一句话产品定位：

> Nomi 是 AI 视频创作者的本地项目仓库和自动化生产台。创作者写剧本，Agent 拆镜头，画布生成素材，时间轴剪片，所有源文件、素材、模型配置和生成证据都在自己的电脑里。

## 2. 本地现状

### 2.1 已有产品骨架

从当前 `/Users/aoqimin/Desktop/Nomi` 代码看，Nomi 已经具备差异化的底座：

- Electron 桌面运行时：`electron/runtime.ts` 提供项目、资产、任务、Agent、模型目录、本地 skill 的 IPC 能力。
- 本地项目库：项目默认落在系统文档目录的 `Nomi Projects`，并包含 `project.json`、`assets`、`exports`、`cache`。
- 本地模型目录：供应商、模型、mapping、API Key 保存在本地 userData 下的 `model-catalog.json`。
- 本地素材落盘：远程生成结果会被 `localizeTaskAsset` 导入项目资产目录，避免只保存临时 URL。
- 三段式工作台：创作区、生成区、预览导出区。
- 生成画布：支持 `text`、`character`、`scene`、`image`、`keyframe`、`video`、`shot`、`output`、`panorama` 等节点类型。
- Agent 注入：创作区和生成区都走 `sendWorkbenchAiMessage`，并带有本地 skill 注入机制。
- 时间轴与导出：已有本地时间轴和 WebM 导出，但当前限制是无音频、浏览器 MediaRecorder、导出能力较轻。

### 2.2 当前产品短板

- “桌面端为什么必须存在”的价值还没有显性化。现在像是一个可打包的 Web 工作台，而不是桌面生产软件。
- “开源为什么强”的价值还停留在 README 表述，没有形成用户可感知的扩展闭环。
- Agent 目前更像聊天助手和节点规划器，距离“自动跑完整条生产链”还差工具协议、执行日志、可回放计划和权限边界。
- 模型接入已有雏形，但用户仍需要理解 mapping，应该升级成“从官方文档到可测试 provider pack”的产品能力。
- 导出能力还弱，无法支撑认真生产：音频、字幕、片头片尾、多格式、稳定转码、失败恢复都需要补齐。

## 3. 竞品事实

### 3.1 Laper

事实：

- Laper 官网定位为面向影视人的 AI 创作平台，强调剧本、角色、预算、日程等专业前期流程。
- 其公开资料强调 Project Intelligence、角色识别、剧本 PDF 导入、预算和拍摄计划、实时协作等能力。
- Laper 早期工程文章提到使用 Loro 做文档同步，这说明它重视多人协同和结构化文稿状态。

推断：

- Laper 的主战场是“专业影视前期 SaaS”，不是本地开源视频生产工具。
- 它的强项会是专业流程、协作、结构化制片数据，而不是用户可自定义模型、可改源码、可本地保存完整生成链路。

Nomi 启发：

- 不要和 Laper 硬拼影视工业协作套件。
- 可以学习它的“项目智能”概念，但落地到本地项目包：角色、场景、镜头、素材、生成历史、导出版本，都应该成为 Nomi 项目的结构化资产。

### 3.2 TapNow

事实：

- TapNow 官方文档把产品描述为 AI Agent 驱动的创意画布。
- 官方文档列出 AI 扩图、生成、融合、背景移除、文生图、图生图、图生视频、试衣等商业视觉能力。
- 文档里有共享画布、个人主页、创作者社区和商业产品图场景。

推断：

- TapNow 更偏在线商业视觉生产与社区传播，核心是云端 AI agent canvas。
- 它的用户收益是低门槛、在线可用、快速出商业视觉内容。

Nomi 启发：

- Nomi 不要追逐“更像云端社区”的路线。
- Nomi 可以对标的是更重的生产：长项目、多资产、多模型、多版本、可本地归档、可自动化跑批。

### 3.3 LibTV

事实：

- LibTV 公开信息显示其核心是 Web 端无限画布、AI 视频节点、模型聚合、Agent Skill 与模板/社区能力。
- LibTV 相关 GitHub 仓库已公开 skill 目录，显示其也在做 Agent Skill 生态。

推断：

- LibTV 与 Nomi 最接近，都是“AI 视频 + 画布 + 工作流 + skill/agent”。
- 但 LibTV 当前主要心智仍是 Web 端产品，天然依赖云端账号、在线资源和平台内工作流。

Nomi 启发：

- 不能只做“LibTV 的开源版”。Nomi 必须把桌面端、本地项目、开源扩展、可离线/半离线生产做成第一性差异。
- Nomi 的画布不应该只是交互界面，而应该是本地项目 DAG，可版本化、可复现、可批量执行。

### 3.4 其他参考

- LTX Studio、Runway、Pika、Kling、CapCut 等会继续压低视频生成和剪辑门槛。
- ComfyUI 是开源节点工作流的强心智，但学习曲线高、偏图像/模型工程。
- Nomi 的机会在二者之间：比 SaaS 更可控，比 ComfyUI 更适合创作者完整生产。

## 4. 差异化主线

### 4.1 桌面端差异化

桌面端能做而 Web 端难做的事情：

1. 本地项目包

   每个项目是一个真实文件夹，包含剧本、分镜、画布、素材、缓存、导出、模型配置引用、生成日志。用户可以备份、压缩、发给别人、放进 Git 或 NAS。

2. 本地素材资产库

   生成结果、用户导入素材、参考图、视频片段都本地落盘，避免云端链接过期、跨域失败、账号迁移丢失。

3. 本地模型和本地算力

   支持 Ollama、ComfyUI、Stable Diffusion、Wan、内部模型服务。Web SaaS 通常不愿意把任意本地模型作为一等公民。

4. 系统级导入导出

   支持拖拽文件夹、监控素材目录、读取本地字体、调用 ffmpeg、多格式导出、后台转码、导出到指定文件夹。

5. 隐私和 IP 安全

   剧本、角色设定、未发布 IP、客户素材可以留在本机。云端产品很难让专业用户完全放心。

6. 长任务和失败恢复

   桌面端可以维护本地队列、断点续跑、日志、任务重试和结果归档，不完全依赖浏览器页面生命周期。

7. 终端和自动化

   Nomi 可以暴露 CLI、MCP、本地 HTTP、文件 watch，让高级用户用脚本批量生成、批量换模型、批量导出。

产品落点：

- 将“项目文件夹”设计成核心卖点，而不是隐藏实现。
- App 首页不只显示项目卡片，还显示项目体积、素材数量、生成历史、导出版本、缺失模型/断链状态。
- 增加“打开项目文件夹”“打包项目”“导入项目包”“检查项目健康度”。

### 4.2 开源差异化

开源能做而闭源 SaaS 难做的事情：

1. 可审计

   API Key、素材、剧本是否上传，用户可以看源码确认。

2. 可扩展

   用户能写 provider、skill、节点、导出器、项目检查器，而不是等平台排期。

3. 可 fork

   工作室、教育机构、企业内部可以定制自己的模型目录、品牌、节点、流程。

4. 可复现

   社区可以发布工作流 recipe：模型版本、节点图、prompt 模板、参数、示例素材都可一起分享。

5. 可对接任意生态

   ComfyUI、Ollama、Replicate、RunPod、自建 API、公司内网模型，都可以通过 provider pack 接入。

产品落点：

- 建立 `Nomi Provider Pack` 格式：一个目录或 zip，包含 vendor、models、mappings、测试样例、文档来源。
- 建立 `Nomi Skill Pack` 格式：skill markdown、脚本、依赖声明、权限声明、示例输入输出。
- 建立 `Nomi Workflow Recipe` 格式：画布 DAG、示例项目、依赖模型、预期输出、版本号。
- App 内做“安装本地 pack”而不是先做中心化 marketplace。

### 4.3 底层逻辑差异化

Nomi 的底层逻辑应该从“页面工具”升级成“三层生产系统”：

1. Project Memory Layer

   存剧本、角色、场景、镜头、资产、导出、模型调用证据。它回答：这个项目发生过什么？

2. Production Graph Layer

   画布 DAG 和时间轴是生产图，不只是 UI。它回答：素材如何从文本一步步变成成片？

3. Agent Runtime Layer

   Agent 读取项目状态、提出计划、调用工具、写回变更、记录日志、等待用户确认。它回答：下一步怎么自动执行且可审计？

这三层形成 Nomi 的核心护城河：

> 用户不是在 Nomi 里临时生成几张图，而是在 Nomi 里经营一个可长期演化、可复现、可迁移的 AI 视频项目。

## 5. 目标用户

### 5.1 第一优先级

独立 AI 视频创作者、漫剧/短剧创作者、IP 内容创作者。

他们的痛点：

- 剧本、分镜、生图、生视频、剪辑分散在多个工具。
- 角色一致性和素材管理混乱。
- 云端工具生成结果难归档、难复用、难追踪。
- 模型和平台变化快，需要随时换供应商。

Nomi 给他们的价值：

- 一个本地项目管理完整创作链。
- Agent 可以把文稿变成可执行画布。
- 所有素材和历史沉淀下来，长期复用。

### 5.2 第二优先级

AI 工作流开发者、模型玩家、开源社区贡献者。

他们的痛点：

- SaaS 不可扩展，ComfyUI 又太偏工程。
- 想把自己的模型、脚本、prompt 方法包装给别人用。

Nomi 给他们的价值：

- Provider Pack、Skill Pack、Workflow Recipe。
- TypeScript/Electron 桌面生态，更容易做产品化 UI。

### 5.3 暂不优先

- 大型影视公司多人协同制片系统。
- 企业级云端审片、权限、资产管理。
- 纯社交社区和模板市场。

这些方向后续可以做，但不应成为 MVP 的主线。

## 6. 产品目标

### 6.1 12 周目标

让一个创作者可以从一个短剧片段出发，在本地完成：

1. 创建项目。
2. 写入剧本。
3. Agent 拆成镜头节点。
4. 选择模型并生成关键帧和视频片段。
5. 自动落盘素材。
6. 拖入时间轴。
7. 加字幕/音频。
8. 导出 MP4。
9. 打包项目，未来可复现和迁移。

### 6.2 北极星指标

单个本地项目从“剧本文字”到“可导出视频草片”的完成率。

辅助指标：

- 首条草片生成时间。
- 单项目资产复用率。
- 生成失败后的恢复成功率。
- 成功接入新模型的比例。
- 项目包跨机器打开成功率。
- 社区 provider/skill/workflow pack 数量。

## 7. 核心功能规划

### P0：本地项目包 1.0

用户故事：

> 作为创作者，我希望每个视频项目都是一个完整文件夹，里面保存所有源文件、素材、历史和导出，这样我不会被任何平台锁死。

功能：

- 项目文件夹结构标准化：`project.json`、`assets/`、`exports/`、`cache/`、`logs/`、`recipes/`。
- 项目健康检查：断链素材、缺失模型、缺失 API Key、失败任务、过期远程 URL。
- 打开项目文件夹。
- 打包项目为 `.nomiproj`。
- 导入 `.nomiproj`。
- 项目内素材索引：按角色、场景、镜头、来源节点、生成模型、日期过滤。

验收：

- 在一台电脑生成项目包，另一台电脑导入后能打开剧本、画布、时间轴和本地素材。
- 缺失模型时给出清晰修复入口。

### P0：模型接入 Agent 2.0

用户故事：

> 作为创作者，我不想理解每家 API 的请求和响应格式。我把官方文档或 curl 示例给 Nomi，它帮我生成可测试的模型接入包。

功能：

- 文档 URL 或粘贴 curl 示例输入。
- Agent 生成 Provider Pack 草案。
- 自动生成 text/image/video task mapping。
- 内置测试样例。
- 显示缺失字段，不编造 endpoint。
- 支持导出/导入 Provider Pack。

验收：

- 用户提供一个 OpenAI-compatible 文本模型文档，5 分钟内可完成接入。
- 用户提供一个异步图生视频 API 文档，Agent 能生成 create/query 草案，并在不确定时禁用 mapping。

### P0：Agent 可执行生产链

用户故事：

> 作为创作者，我希望 Agent 不只是聊天，而是能读取当前项目，提出生产计划，创建节点，排队生成，把结果送入时间轴，但关键动作要我确认。

功能：

- Agent plan 数据结构：读取、计划、待确认动作、执行、结果、日志。
- 工具集合：`creation_read/write`、`canvas_read/create/update/connect/run`、`timeline_read/add/move/trim`、`project_assets_read/import`。
- 权限边界：生成消耗、删除、覆盖、导出前必须确认。
- 执行日志落到项目 `logs/agent-runs/`。
- 失败后可继续：用户可说“从第 4 个镜头继续”。

验收：

- 输入 500 字故事，Agent 能拆 6 个镜头，创建图像/视频节点和连线。
- 用户确认后批量跑生成，失败节点可重试。
- 生成成功后可一键加入时间轴。

### P0：桌面导出引擎

用户故事：

> 作为创作者，我需要导出可发布的视频，而不是只有浏览器 WebM 草稿。

功能：

- 引入 ffmpeg 导出 MP4。
- 支持音频轨、字幕轨、片段音量、简单转场。
- 支持 9:16、16:9、1:1、4:5。
- 导出到项目 `exports/`。
- 导出日志和失败原因。

验收：

- 30 秒、10 个片段、含音频字幕的视频可稳定导出 MP4。
- 导出失败有明确错误，不丢失项目。

### P1：角色和场景资产库

用户故事：

> 作为漫剧创作者，我希望角色、服装、场景、风格参考能在整个项目里复用，避免每个镜头重新整理。

功能：

- 角色卡：名称、外观、服装、参考图、LoRA/模型偏好、禁用词。
- 场景卡：地点、光线、构图、参考图。
- 资产拖到画布时自动作为 character/style/composition reference。
- 角色一致性检查：镜头节点缺少角色参考时提示。

验收：

- 一个角色卡可被多个镜头引用。
- 生成请求 extras 中包含角色参考图。

### P1：Workflow Recipe

用户故事：

> 作为开源社区用户，我希望分享一套完整工作流，别人安装后就能跑同样的节点结构和参数。

功能：

- Recipe manifest：名称、版本、作者、依赖模型、依赖 skill、节点图、示例输入。
- 从当前项目导出 recipe。
- 安装本地 recipe。
- 新项目从 recipe 创建。

验收：

- 从示例漫剧 recipe 创建项目，自动生成创作区模板、画布结构和时间轴骨架。

### P1：本地自动化接口

用户故事：

> 作为高级用户，我希望用终端或其他 Agent 控制 Nomi 项目。

功能：

- 本地 HTTP/MCP 接口。
- CLI：`nomi project open`、`nomi run recipe`、`nomi export`。
- 文件 watch：把脚本放入 `inbox/` 后自动创建创作区草稿。

验收：

- 外部 Agent 可以读取当前项目、创建节点、触发导出。

### P2：可选云端和协作

原则：

- 云端是可选同步，不是核心依赖。
- 默认本地，用户明确开启才同步。

功能：

- 项目云备份。
- Pack/Recipe 社区索引。
- 简单评论和分享。

不做：

- 早期不做复杂多人实时编辑。
- 不先做重社区 Feed。

## 8. 信息架构建议

### 首页

- 项目库。
- 每个项目卡片显示：更新时间、素材数量、导出数量、项目健康状态、占用空间。
- 操作：打开、打开文件夹、打包、删除、导入项目包。

### 工作台顶部

- 创作、生成、预览导出三段保持。
- 增加项目健康状态。
- 模型接入改为“模型与扩展”。

### 右侧 Agent

- 分三种模式：
  - 问答：解释当前项目。
  - 计划：生成待确认生产计划。
  - 执行：运行已确认动作并显示日志。

### 资产库

- 独立侧栏或 drawer。
- 维度：全部、角色、场景、图片、视频、音频、导出。
- 每个资产可查看来源节点、模型、prompt、使用次数。

## 9. 与竞品的明确取舍

| 维度 | Laper | TapNow | LibTV | Nomi 应该选择 |
| --- | --- | --- | --- | --- |
| 主阵地 | 专业影视前期 SaaS | 在线创意画布和商业视觉 | Web AI 视频画布 | 桌面本地 AI 视频 IDE |
| 数据归属 | 平台项目 | 平台项目 | 平台项目 | 本地项目文件夹 |
| 扩展性 | 未知/闭源 | 平台内扩展 | Skill/模板生态 | 开源 provider/skill/workflow pack |
| 模型策略 | 平台能力 | 平台能力 | 多模型聚合 | 任意 API + 本地模型 + 用户自带 key |
| 协作 | 强项 | 分享和社区 | Web 协作潜力 | 先不抢实时协作 |
| 生产深度 | 剧本和制片 | 视觉内容生成 | 画布工作流 | 端到端本地生产和复现 |

核心取舍：

- 不追“最大社区”，先追“最可信的本地生产项目”。
- 不追“最多模型按钮”，先追“任意模型都能被用户接进来并稳定跑”。
- 不追“最炫画布”，先追“画布是可执行、可复现、可审计的生产图”。

## 10. 风险

### 风险 1：桌面端安装门槛

问题：

- 未签名 App 会被 macOS/Windows 拦截。

缓解：

- README 继续保留绕过说明。
- 早期种子用户可接受。
- 有用户增长后购买签名证书。

### 风险 2：模型接入复杂度过高

问题：

- 各模型 API 差异大，自动 mapping 容易失败。

缓解：

- Agent 只生成草案，不确定就禁用 mapping。
- Provider Pack 必须带测试样例。
- 先覆盖 OpenAI-compatible、同步图片、异步视频三种主形态。

### 风险 3：本地导出工程复杂

问题：

- 音频、字幕、转场、不同系统 ffmpeg 打包都很容易出错。

缓解：

- P0 先做稳定 MP4、音频轨、字幕轨。
- 高级特效不做。
- 导出日志必须产品化。

### 风险 4：开源生态冷启动

问题：

- 没有用户贡献 pack，生态价值难显现。

缓解：

- 官方先提供 5 个 provider pack、5 个 workflow recipe、3 个 skill pack。
- 每个 pack 都必须能一键安装和跑通。

## 11. 12 周里程碑

### 第 1-2 周：项目包和健康检查

- 标准化项目目录。
- 项目健康检查。
- 打包/导入 `.nomiproj`。
- 打开项目文件夹。

### 第 3-4 周：Provider Pack

- 导出/导入模型接入包。
- 文档到草案 Agent。
- 三类 API 形态模板。
- 接入测试 UI。

### 第 5-6 周：Agent 执行协议

- 统一 plan schema。
- 工具权限和确认流程。
- Agent run log。
- 从故事到节点图的端到端跑通。

### 第 7-8 周：生成队列和失败恢复

- 批量运行节点。
- 任务状态队列。
- 失败重试。
- 结果自动本地化和送入资产库。

### 第 9-10 周：桌面导出

- ffmpeg MP4。
- 音频轨和字幕轨。
- 导出日志。
- 导出到项目目录。

### 第 11-12 周：示例和发布

- 官方漫剧 recipe。
- 官方短视频 recipe。
- 3 个 provider pack。
- 完整 quickstart。
- 发布 0.2.0。

## 12. MVP 成功定义

MVP 成功不是“功能看起来很多”，而是用户能完成这个闭环：

> 下载 Nomi，创建项目，接入一个模型，写一段 500 字故事，让 Agent 拆镜头，生成 6 个镜头素材，排进时间轴，导出 MP4，并把整个项目打包带走。

如果这个闭环稳定，Nomi 的差异化就成立。

## 13. 资料来源

- Nomi 本地仓库：`/Users/aoqimin/Desktop/Nomi`
- Nomi GitHub：<https://github.com/aqm857886159/Nomi>
- Laper 官网：<https://laper.ai/>
- Laper 作者页：<https://laper.ai/authors/shizhi>
- TapNow 官方文档：<https://docs.tapnow.ai/en/docs>
- TapNow 官网：<https://tapnow.ai/>
- LibTV 官方站：<https://liblib.tv/>
- LibTV Skills GitHub：<https://github.com/libtv-labs/libtv-skills>
- LTX Studio 官网：<https://ltx.studio/>
- Runway 官网：<https://runwayml.com/>
