# Sora2Pro 模型接入实施总结 ## 概述 成功接入速创API的 Sora2Pro 视频生成模型,支持文生视频和图生视频功能。 ## API 接口信息 - **提交接口**: `https://api.wuyinkeji.com/api/sora2pro/submit` - **查询接口**: `https://api.wuyinkeji.com/api/sora2/detail` (与 sora2 共用) - **请求方式**: POST (表单提交) - **认证方式**: Authorization Header ## API 参数说明 ### 提交参数 | 参数名 | 必填 | 类型 | 说明 | 示例值 | |--------|------|------|------|--------| | prompt | 是 | string | 生成视频的提示词,须避免出现黄、暴、政、以及其他著名IP相关内容 | 小猫钓鱼 | | url | 否 | string | 参考图片URL(外网访问并下载的图片链接,图片须避免出现真人形象) | https://xx.com/demo.jpg | | aspectRatio | 否 | string | 输出视频比例,支持:9:16(竖屏)、16:9(横屏),默认 9:16 | 9:16 | | duration | 否 | string | 视频时长(秒),支持:15、25,默认 25 | 25 | ### 注意事项 - **25秒视频**:只能生成标清视频 - **15秒视频**:支持高清和标清选项(通过模型配置区分) - **sora2pro 接口**:不需要 `size` 参数(与 sora2 接口不同) ## 定价信息 - **统一价格**: 400积分/次 - 所有 sora2pro 模型(文生视频/图生视频,15秒/25秒,竖屏/横屏)均为 400积分 ## 数据库配置 ### 模型列表 共添加 12 个模型配置到 `points_config` 表: #### 文生视频模型(6个) 1. `sc_sora2pro_text_portrait_15s_small` - 速创Sora2Pro 文生视频-竖屏-15秒-标清 2. `sc_sora2pro_text_portrait_15s_large` - 速创Sora2Pro 文生视频-竖屏-15秒-高清 3. `sc_sora2pro_text_portrait_25s_small` - 速创Sora2Pro 文生视频-竖屏-25秒-标清 4. `sc_sora2pro_text_landscape_15s_small` - 速创Sora2Pro 文生视频-横屏-15秒-标清 5. `sc_sora2pro_text_landscape_15s_large` - 速创Sora2Pro 文生视频-横屏-15秒-高清 6. `sc_sora2pro_text_landscape_25s_small` - 速创Sora2Pro 文生视频-横屏-25秒-标清 #### 图生视频模型(6个) 1. `sc_sora2pro_img_portrait_15s_small` - 速创Sora2Pro 图生视频-竖屏-15秒-标清 2. `sc_sora2pro_img_portrait_15s_large` - 速创Sora2Pro 图生视频-竖屏-15秒-高清 3. `sc_sora2pro_img_portrait_25s_small` - 速创Sora2Pro 图生视频-竖屏-25秒-标清 4. `sc_sora2pro_img_landscape_15s_small` - 速创Sora2Pro 图生视频-横屏-15秒-标清 5. `sc_sora2pro_img_landscape_15s_large` - 速创Sora2Pro 图生视频-横屏-15秒-高清 6. `sc_sora2pro_img_landscape_25s_small` - 速创Sora2Pro 图生视频-横屏-25秒-标清 ### SQL 脚本 执行 `V11__add_sora2pro_models.sql` 脚本即可添加所有模型配置。 ## 代码修改 ### 修改文件 - `src/main/java/com/dora/service/provider/impl/SuChuangProviderImpl.java` ### 主要改动 1. **新增方法**: `isSora2ProModel(String modelName)` - 判断是否为 sora2pro 模型 2. **修改提交逻辑**: - 自动识别 sora2pro 模型并使用 `/api/sora2pro/submit` 接口 - sora2pro 接口不发送 `size` 参数 3. **日志增强**: 添加模型类型日志输出 ### 关键代码片段 ```java // 判断是否为 sora2pro 模型 boolean isSora2Pro = isSora2ProModel(request.getModelName()); // 使用不同的接口 String requestUrl = isSora2Pro ? apiUrl + "/api/sora2pro/submit" : apiUrl + "/api/sora2/submit"; // sora2pro 不需要 size 参数 if (!isSora2Pro) { formData.add("size", size); } ``` ## 部署步骤 1. **执行数据库脚本** ```sql -- 执行 V11__add_sora2pro_models.sql source V11__add_sora2pro_models.sql; ``` 2. **部署代码** - 部署更新后的 `SuChuangProviderImpl.java` - 重启应用服务 3. **验证配置** ```sql -- 验证模型是否添加成功 SELECT model_name, description, points_cost, task_type, is_enabled FROM points_config WHERE model_name LIKE 'sc_sora2pro%' ORDER BY task_type, model_name; ``` ## 使用示例 ### 文生视频(15秒竖屏标清) ```json { "modelName": "sc_sora2pro_text_portrait_15s_small", "prompt": "小猫钓鱼" } ``` ### 文生视频(25秒横屏标清) ```json { "modelName": "sc_sora2pro_text_landscape_25s_small", "prompt": "美丽的风景" } ``` ### 图生视频(15秒竖屏高清) ```json { "modelName": "sc_sora2pro_img_portrait_15s_large", "prompt": "根据图片生成视频", "imageUrl": "https://example.com/image.jpg" } ``` ## 注意事项 1. **接口差异**: sora2pro 使用 `/api/sora2pro/submit`,而 sora2 使用 `/api/sora2/submit` 2. **参数差异**: sora2pro 不需要 `size` 参数 3. **时长限制**: 25秒只能生成标清,15秒支持高清和标清 4. **查询接口**: sora2pro 和 sora2 共用 `/api/sora2/detail` 查询接口 5. **定价统一**: 所有 sora2pro 模型均为 400积分 ## 测试建议 1. 测试文生视频(15秒和25秒) 2. 测试图生视频(15秒和25秒) 3. 测试不同宽高比(9:16 和 16:9) 4. 验证积分扣费是否正确(400积分) 5. 验证任务状态查询和结果获取 ## 完成时间 2025-01-XX