# Phase 8: 自动剪辑模板与编排引擎设计 > 状态:规划中 > 基线:Phase 7 已完成上传 → 分类 → 生成 → 下载主链路 > 原则:Clean Architecture、单一环境真源、生产不构建、未实现不假入口 ## 一、目标 Phase 8 的目标是把当前“用户上传素材后手动发起生成”的 MVP,升级为“按模板自动编排素材并生成成片”的自动剪辑 1.0。 一句话:用户选择项目、素材库和剪辑模板,系统自动选素材、排顺序、生成剪辑计划,并交给 FFmpeg Worker 输出成片。 ## 二、不做范围 - 不做复杂 AI 脚本理解。 - 不做数字人、直播切片、自动带货文案生成。 - 不做真实支付/订阅闭环。 - 不做假模板市场或 mock 运营后台。 ## 三、核心能力 1. 剪辑模板管理 - 内置模板:基础混剪、产品展示、探店短片、口播素材拼接。 - 模板字段:比例、目标时长、片段数量、片段时长、分类偏好、转场策略、音乐策略。 2. 自动选片 - 基于素材分类、质量分、时长、类型筛选候选素材。 - 生成候选片段列表,不直接修改原素材。 3. 剪辑计划 - 新增 `EditPlan` 聚合,保存自动编排结果。 - 新增 `EditPlanClip`,描述每个片段的素材、入点、出点、顺序、转场。 - 生成任务从“直接 FFmpeg”升级为“按 EditPlan 执行 FFmpeg”。 4. 前端工作流 - 项目生成页新增模板选择。 - 生成前展示剪辑计划预览。 - 用户确认后创建生成任务。 - 不支持的模板能力显示“暂未开放”,不得 fake success。 ## 四、架构设计 ### Domain - `EditTemplate` - `EditPlan` - `EditPlanClip` - `TemplateKind` - `ClipSelectionRule` ### Ports - `EditTemplateRepository` - `EditPlanRepository` - `ClipSelector` - `EditPlanRenderer` ### Application Use Cases - `ListEditTemplatesUseCase` - `PreviewEditPlanUseCase` - `CreateEditPlanUseCase` - `CreateGenerationTaskFromEditPlanUseCase` ### Adapters - SQLAlchemy repositories 保存模板与剪辑计划。 - Rule-based `ClipSelector` 先实现确定性选片。 - FFmpeg renderer 根据 `EditPlan` 拼接视频。 ### API - `GET /api/v1/edit-templates` - `POST /api/v1/edit-plans/preview` - `POST /api/v1/edit-plans` - `GET /api/v1/edit-plans/{id}` - `POST /api/v1/generation/from-edit-plan` ## 五、数据库迁移 新增 Alembic migration: - `edit_templates` - `edit_plans` - `edit_plan_clips` 迁移规则: - Alembic 是唯一迁移真源。 - 禁止生产自动建表。 - 新字段必须进入 schema guard。 ## 六、前端页面 - `ProjectGeneration.tsx` - 模板选择 - 参数输入 - 预览剪辑计划 - 创建生成任务 - 新增 `EditPlanPreview.tsx` - 片段顺序 - 素材名 - 分类标签 - 预计时长 - 缺素材提示 ## 七、测试与验收 ### 单元测试 - 模板参数校验。 - 自动选片规则。 - 剪辑计划生成。 - FFmpeg 命令计划生成。 ### 集成测试 - 创建模板 → 上传素材 → 分类 → 预览计划 → 创建计划 → 生成任务。 ### 公网 smoke - 注册登录。 - 创建工作空间/项目/素材库。 - 上传小视频。 - 创建 edit plan。 - 生成 MP4。 - 下载验证 `Content-Type: video/mp4`。 ## 八、发布门禁 - `npm run type-check` - `npm run build` - `pytest` 覆盖新增 use case/repository/API。 - Alembic preflight 通过。 - 公网 smoke 通过。 - 生产部署继续 artifact/image 模式,生产机器不做前端构建。 ## 九、里程碑 1. Week 1:领域模型、迁移、repository、模板列表 API。 2. Week 2:自动选片与剪辑计划 preview。 3. Week 3:FFmpeg 按 EditPlan 拼接。 4. Week 4:前端生成页接入、smoke、发布。