Files
1818web-hoduan/docs/sora2pro-integration-summary.md

148 lines
5.0 KiB
Markdown
Raw Normal View History

# 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