# 产品路线图(post-MVP) 前置阅读:[PRODUCT.md](./PRODUCT.md)(愿景与非目标)。 本文约定 **Phase → Epic → 验收标准 → 风险/依赖**。完成状态可在各 Epic 前打勾或通过 PR 注释更新。 --- ## Phase 0:文档与设计基线(本次交付) | Epic | 内容 | 验收 | |------|------|------| | 0.1 | `docs/PRODUCT.md`、`docs/ROADMAP.md` 落库 | 团队承认单一事实源 | | 0.2 | `README.md` post-MVP 入口链接 | README 可从首页点到 PRODUCT/ROADMAP | | 0.3 | `DESIGN.md` Product Context 与 PRODUCT 对齐 | 不出现两套对立产品叙事 | --- ## Phase 1:视觉圣经(Production Style Lock) **目标**:项目级锁住「写实/画风/调色倾向」,让所有 Wanx 文生图与同项目生成文案共享前缀与负面模板,大幅降低同剧卡通/真人混搭。 ### Epic | ID | Epic | 主要改动面 | 验收标准 | 风险/备注 | |----|------|------------|----------|-----------| | 1.1 | **项目字段** `production_style`(或等价 JSON) | `Project` / API / 前端项目设置一小块 | 可保存:`render_path`(如 photoreal|cinematic illustration)、可选 `positive_prefix`、`negative_suffix`,读回一致 | SQLite 迁移;老项目默认值「未锁」须有 UI 提示 | | 1.2 | **文生图注入** | [`projects.py`](../backend/app/routers/projects.py) Wanx、`ImageGenerateRequest` 路径 | 所有角色/地点 AI 生成图请求的 prompt 前缀/负面词合并顺序可测(单测或日志断言) | 用户自定义过长 prompt + 前缀叠加需截断策略 | | 1.3 | **解析器约束联动**(可选同日或 1.2 之后) | [`ENTITY_PROMPT`](../backend/app/services/script_parser.py) 增补「服从项目 bible」 | `image_prompt` 输出不得与项目所选 render_path 冲突(软约束可由 LLM + 后端二次前缀兜底) | 仅软约束时需文档说明 | | 1.4 | **视频文案**(可选) | [`generate_video`](../backend/app/routers/projects.py) prompt 拼装 | 同项目可加短风格后缀(不改变百炼字段语义前提下) | R2V 对长 prompt 敏感,需严控长度 | **工程进度**:**1.1** 已交付(`Project.production_*` 列、`init_db` 幂等迁移、[migrate_v5.py](../backend/migrate_v5.py)、`GET /api/projects/{id}` 含 `production`、`PATCH /api/projects/{id}/production`、[storyboard.html](../frontend/storyboard.html) 侧栏「视觉圣经」);**1.2** 已交付(演员/地点 Wanx 文生图前缀与负面后缀合并);**1.4** 已交付(`generate_video` 注入前缀 + [`WanR2VClient.submit_task`](../backend/app/services/wan_r2v_client.py) `negative_prompt_suffix`)。**1.3**(解析器与 bible 联动)仍为可选后续。 **Phase 1 收口**:按 [PRODUCT.md](./PRODUCT.md) §6 做一轮「画风一致性」抽查。 --- ## Phase 1B:万相 2.7 默认化 + Provider 雏形(商业化对齐) 与 [PRODUCT.md](./PRODUCT.md) §4.1 一致:**默认视频后端为万相 2.7**,2.6 为 Legacy;文档见 `docs/阿里百炼/wan/`。 | ID | Epic | 验收 | |----|------|------| | 1B.1 | **2.7 客户端与分流** | `BAILIAN_VIDEO_BACKEND`、`video_synthesis.submit_scene_video_task`、轮询与下载与 2.6 隔离 | | 1B.2 | **镜间衔接** | `continuity_assets` + 公网 URL;`first_clip`/尾帧策略可配置;顺序批量 + 间隔限流 | | 1B.3 | **人类在环 API/UI** | 项目级引擎偏好与默认衔接;分镜级覆盖、手传 URL、`qc_status`、`video_seed`;时长 2–15s(2.7) | | 1B.4 | **Provider 清单** | `GET /api/providers` 只读注册表(Wan27 I2V/R2V、Wan26、Wanx、Qwen),供设置页与后续持久化选型 | **依赖**:`BAILIAN_VIDEO_REF_PUBLIC_BASE_URL` 指向可访问的本服务 HTTPS 根;服务器可选 **ffmpeg** 用于尾帧导出。 --- ## Phase 2:Look Variant(角色造型版本) **目标**:同一 Character 多套外貌/衣着/年代,`Scene`(分镜)级绑定所用 Look;图生视频参考图与该 Look 一致。 ### Epic | ID | Epic | 主要改动面 | 验收标准 | 风险 | |----|------|------------|----------|------| | 2.1 | **数据模型** `CharacterLook`(或副表) | `backend/app/models`、`migrate.py` | CRUD:`look_id`、`image_path`/`image_prompt` | 迁移与旧数据:`character_id` 默认 Look | | 2.2 | **API**:列表/切换默认 Look | `projects` router | 前端可选 Look、保存到 Scene | — | | 2.3 | **`Scene.character_look_id`(或等价)** | FK、序列化、`_serialize_storyboard` | 拉分镜带出 `look`;缺省时回退到 Character 主图 | JOIN 性能可忽略 | | 2.4 | **`generate_video` 参考图** | `_character_reference_for_video` | 按 `scene` 选用的 Look 取图 | — | | 2.5 | **UI** | [`storyboard.html`](../frontend/storyboard.html)、演员卡片 | Look 选择与预览 | — | --- ## Phase 3:道具系统(Prop) **目标**:道具作为一等实体进入分镜与(在能力允许时)生成链路。 ### Epic | ID | Epic | 主要改动面 | 验收标准 | 风险 | |----|------|------------|----------|------| | 3.1 | **`Prop` 表 + CRUD API** | models、router | 项目维度增删改、参考图 | — | | 3.2 | **`scene_props` 多对多** | 关联表、导入/PUT | 分镜可多道具;序列化透出 | — | | 3.3 | **解析管线**(可选 Phase) | Parser JSON + `import_parse_result` | props 可先手工后自动 | NLP 抖动 | | 3.4 | **进入视频/prompt** | `generate_video` | 至少在 prompt 中带道具名描述;若 Wan-R2V 日后多参考 API 对齐再升级为第二参考图 | **多参考能力与收费以百炼文档为准** | --- ## Phase 4:环境与叙事连续性 **目标**:地点不止单张静帧;可选子视角与关键陈设,加强「影视感」铺垫。 ### Epic | ID | Epic | 主要改动面 | 验收 | |----|------|------------|------| | 4.1 | **Location 多图**(`location_assets` 或数组字段) | 模型、上传、选人镜时选「本镜用什么气氛图」 | 分镜可选用子图 | | 4.2 | **导出/剪辑衔接说明**(产品) | README 或产品内文案 | 用户知悉:复杂长镜头仍需 NLE | **风险**:单帧无法控制整段视频中陈设位置连续——文档与帮助需一致。 --- ## Phase 5:流程与品控 **目标**:定妆/风格「锁定」后再批量生成;失败可对比重试。 ### Epic | ID | Epic | 验收 | |----|------|------| | 5.1 | **「圣经锁」**:风格与关键实体审定后禁用误触大批量 | 可操作的状态机或小流程 | | 5.2 | **生成批次历史 / 并排对比(轻量)** | 至少在单镜维度可回看上次任务 | --- ## 图示(与 PRODUCT 对齐) ```mermaid flowchart LR subgraph bible [ProductionBible] Style[StyleLock] end subgraph entities [EntityPool] Char[Character] Look[LookVariant] Loc[Location] Prop[Prop] end subgraph shots [Storyboard] Scene[SceneBindings] end subgraph gen [Generation] T2I[T2I] R2V[R2V] end bible --> entities entities --> Scene Scene --> T2I Scene --> R2V ``` --- ## 开发与验收节奏(推荐阅读) 1. **按 Phase 顺序合并 PR**,不设并行破坏依赖(Phase 2 依赖 Phase 1 最好已合,以减少返工)。 2. **每个 Epic 收口**:最小 E2E 或 QA 脚本 + PRODUCT §6 相关一条。 3. **Phase 执行(post-文档)**:从 Phase 1 第一个 Epic(1.1 项目字段)起在 Agent/任务中逐项实现;本节即执行清单——**本节「Phase 1+」的工程实现独立于 Phase 0 文档 PR**。 --- *变更记录:初始化于 post-MVP 规划基线与 Phase 0 文档交付。*