2.7 KiB
2.7 KiB
| name | overview | todos | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| video-generation-flow-update | 修改 VideoExplanation.vue 的视频生成流程,新增阶段二(调用 nano-banana 生成首尾帧图片),然后用首尾帧图片调用万相模型生成视频 |
|
用户需求
将视频生成流程修改为三阶段:
- 阶段一(保持不变):解析试题,生成讲解文案 + 分镜脚本
- 阶段二(新增):根据分镜调用 nano-banana 生成首尾帧分镜图片
- 每个分镜生成 2 张图片(首帧 + 尾帧)
- prompt 直接使用 storyboard[].visual
- 使用 nano-banana-pro 模型
- 阶段三(修改):根据首尾帧图片调用万相 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 列表
新增/修改函数
- generateImageForShot(shot, frameType): 调用 nano-banana 生成单张图片
- generateImagesFromStoryboard(): 遍历分镜生成所有首尾帧图片
- generateSingleClip(): 改为调用万相首尾帧视频 API(wan2.2-kf2v-flash)
API 调用
- nano-banana 图片生成:
- URL:
https://grsai.dakka.com.cn/v1/draw/nano-banana - 参数: model="nano-banana-pro", prompt=visual, aspectRatio="16:9", imageSize="1K"
- 万相首尾帧视频:
- 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