# 模型选择功能集成指南 ## 功能概述 在分镜生成(storyboard_generating)后插入模型选择步骤,允许客户根据费用预估选择视频生成模型。 ## 已完成的代码修改 ### 1. 新增模块 - `app/cost_estimator.py` - 多模型费用预估(Wan 2.2, Wan 2.7, Vidu 2.0) - `app/model_selector.py` - 模型选择交互处理器 ### 2. 修改模块 - `app/ktv_adapter.py` - 添加 model_selecting handler,修改 scene_video_generating 支持多模型 ## 产线定义更新步骤 ### 步骤 1: 插入 model_selecting 步骤 在数据库的 `pipeline_steps` 表中,在 `storyboard_generating` (step_order=13) 之后插入新步骤: ```sql -- 查找当前 storyboard_generating 的 step_order SELECT step_order FROM pipeline_steps WHERE pipeline_id = 'ktv_pipeline' AND step_name = 'storyboard_generating'; -- 假设结果是 13,需要将后续步骤的 step_order +1 UPDATE pipeline_steps SET step_order = step_order + 1 WHERE pipeline_id = 'ktv_pipeline' AND step_order > 13; -- 插入 model_selecting 步骤 INSERT INTO pipeline_steps ( pipeline_id, step_name, step_type, step_order, description, handler_function, step_config ) VALUES ( 'ktv_pipeline', 'model_selecting', 'interactive', 14, '客户根据费用预估选择视频生成模型', 'handle_model_selecting', '{"deps": ["storyboard_generating"], "timeout_hours": 24}' ); -- 更新 scene_video_generating 的依赖 UPDATE pipeline_steps SET step_config = JSON_SET( step_config, '$.deps', JSON_ARRAY('model_selecting', 'character_image_generating') ) WHERE pipeline_id = 'ktv_pipeline' AND step_name = 'scene_video_generating'; ``` ### 步骤 2: 验证步骤顺序 ```sql SELECT step_name, step_order, step_type FROM pipeline_steps WHERE pipeline_id = 'ktv_pipeline' ORDER BY step_order; ``` 预期结果: ``` 1 - audio_preparing 2 - demucs_separating 3 - lyric_calibrating ... 13 - storyboard_generating 14 - model_selecting <-- 新增 15 - scene_video_generating <-- 更新依赖 16 - scene_video_evaluating ... ``` ## 费用预估模型配置 当前支持的模型(在 `cost_estimator.py` 中定义): | 模型 | 质量评分 | 生成速度 | 价格/帧 | 特点 | |------|---------|---------|---------|------| | Wan 2.2 | 7.5/10 | fast | $0.002 | 本地GPU,性价比高 | | Wan 2.7 | 8.5/10 | medium | $0.003 | 本地GPU,质量更好 | | Vidu 2.0 | 9.0/10 | slow | $0.008 | 云端API,最高质量 | ## 工作流程 1. **分镜生成完成** → 计算总帧数和时长 2. **生成费用预估** → 为每个模型计算成本 3. **创建 human_task** → 显示选项给客户 4. **客户选择模型** → 通过前端界面选择 5. **任务继续执行** → scene_video_generating 使用选中的模型 ## 注意事项 1. **Vidu 2.0 暂未实现** - 当前选择 Vidu 2.0 会降级到 Wan 2.2,需要后续集成 Vidu API 2. **超时设置** - model_selecting 步骤默认 24 小时超时,可在 step_config 中调整 3. **默认选择** - 如果客户未选择,默认使用 Wan 2.2(最便宜选项) ## 验证清单 - [ ] 数据库步骤已更新 - [ ] 代码已提交 (commit: model-selection) - [ ] 测试产线执行到 storyboard_generating - [ ] 验证 human_task 创建成功 - [ ] 验证客户选择后任务继续执行 - [ ] 验证 scene_video_generating 使用了正确的模型