87 lines
2.7 KiB
Markdown
87 lines
2.7 KiB
Markdown
---
|
||
name: video-generation-flow-update
|
||
overview: 修改 VideoExplanation.vue 的视频生成流程,新增阶段二(调用 nano-banana 生成首尾帧图片),然后用首尾帧图片调用万相模型生成视频
|
||
todos:
|
||
- id: import-config
|
||
content: 导入 GRS_API_KEY,添加 storyboardImages 状态和 phase 枚举扩展
|
||
status: completed
|
||
- id: add-image-functions
|
||
content: 新增 generateImageForShot 和 generateImagesFromStoryboard 函数
|
||
status: completed
|
||
dependencies:
|
||
- import-config
|
||
- id: modify-video-api
|
||
content: 修改 generateSingleClip 为万相首尾帧视频 API 调用
|
||
status: completed
|
||
dependencies:
|
||
- import-config
|
||
- id: update-main-flow
|
||
content: 修改 generateVideoFromScript 整合三个阶段
|
||
status: completed
|
||
dependencies:
|
||
- add-image-functions
|
||
- modify-video-api
|
||
- id: update-ui
|
||
content: 更新 UI 阶段指示器、进度显示和图片预览
|
||
status: completed
|
||
dependencies:
|
||
- update-main-flow
|
||
---
|
||
|
||
## 用户需求
|
||
|
||
将视频生成流程修改为三阶段:
|
||
|
||
1. **阶段一(保持不变)**:解析试题,生成讲解文案 + 分镜脚本
|
||
2. **阶段二(新增)**:根据分镜调用 nano-banana 生成首尾帧分镜图片
|
||
|
||
- 每个分镜生成 2 张图片(首帧 + 尾帧)
|
||
- prompt 直接使用 storyboard[].visual
|
||
- 使用 nano-banana-pro 模型
|
||
|
||
3. **阶段三(修改)**:根据首尾帧图片调用万相 API 生成视频
|
||
|
||
- 使用万相首尾帧视频模型 wan2.2-kf2v-flash
|
||
- 视频时长固定 5 秒
|
||
|
||
## 关键变更
|
||
|
||
- storyboard 新增 firstFrameUrl、lastFrameUrl 字段存储图片
|
||
- phase 新增枚举值:firstFrame、lastFrame、video
|
||
- 视频时长从 15 秒改为 5 秒(万相模型限制)
|
||
- progress 重新分配:脚本 0-15%,首帧 15-40%,尾帧 40-65%,视频 65-98%
|
||
|
||
## 技术栈
|
||
|
||
- Vue3 Composition API
|
||
- axios HTTP 客户端
|
||
- Vite 代理(已配置 dashscope-api)
|
||
|
||
## 实现方案
|
||
|
||
### 新增状态
|
||
|
||
- `storyboardImages`: 存储每个分镜的首尾帧图片 URL 列表
|
||
|
||
### 新增/修改函数
|
||
|
||
1. **generateImageForShot(shot, frameType)**: 调用 nano-banana 生成单张图片
|
||
2. **generateImagesFromStoryboard()**: 遍历分镜生成所有首尾帧图片
|
||
3. **generateSingleClip()**: 改为调用万相首尾帧视频 API(wan2.2-kf2v-flash)
|
||
|
||
### API 调用
|
||
|
||
1. **nano-banana 图片生成**:
|
||
|
||
- URL: `https://grsai.dakka.com.cn/v1/draw/nano-banana`
|
||
- 参数: model="nano-banana-pro", prompt=visual, aspectRatio="16:9", imageSize="1K"
|
||
|
||
2. **万相首尾帧视频**:
|
||
|
||
- URL: `/dashscope-api/api/v1/services/aigc/image2video/video-synthesis`
|
||
- 参数: model="wan2.2-kf2v-flash", first_frame_url, last_frame_url
|
||
- resolution: "720P"
|
||
|
||
### 配置
|
||
|
||
- 复用 `src/config/index.js` 中的 GRS_API_KEY |