5.0 KiB
5.0 KiB
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个)
sc_sora2pro_text_portrait_15s_small- 速创Sora2Pro 文生视频-竖屏-15秒-标清sc_sora2pro_text_portrait_15s_large- 速创Sora2Pro 文生视频-竖屏-15秒-高清sc_sora2pro_text_portrait_25s_small- 速创Sora2Pro 文生视频-竖屏-25秒-标清sc_sora2pro_text_landscape_15s_small- 速创Sora2Pro 文生视频-横屏-15秒-标清sc_sora2pro_text_landscape_15s_large- 速创Sora2Pro 文生视频-横屏-15秒-高清sc_sora2pro_text_landscape_25s_small- 速创Sora2Pro 文生视频-横屏-25秒-标清
图生视频模型(6个)
sc_sora2pro_img_portrait_15s_small- 速创Sora2Pro 图生视频-竖屏-15秒-标清sc_sora2pro_img_portrait_15s_large- 速创Sora2Pro 图生视频-竖屏-15秒-高清sc_sora2pro_img_portrait_25s_small- 速创Sora2Pro 图生视频-竖屏-25秒-标清sc_sora2pro_img_landscape_15s_small- 速创Sora2Pro 图生视频-横屏-15秒-标清sc_sora2pro_img_landscape_15s_large- 速创Sora2Pro 图生视频-横屏-15秒-高清sc_sora2pro_img_landscape_25s_small- 速创Sora2Pro 图生视频-横屏-25秒-标清
SQL 脚本
执行 V11__add_sora2pro_models.sql 脚本即可添加所有模型配置。
代码修改
修改文件
src/main/java/com/dora/service/provider/impl/SuChuangProviderImpl.java
主要改动
- 新增方法:
isSora2ProModel(String modelName)- 判断是否为 sora2pro 模型 - 修改提交逻辑:
- 自动识别 sora2pro 模型并使用
/api/sora2pro/submit接口 - sora2pro 接口不发送
size参数
- 自动识别 sora2pro 模型并使用
- 日志增强: 添加模型类型日志输出
关键代码片段
// 判断是否为 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);
}
部署步骤
-
执行数据库脚本
-- 执行 V11__add_sora2pro_models.sql source V11__add_sora2pro_models.sql; -
部署代码
- 部署更新后的
SuChuangProviderImpl.java - 重启应用服务
- 部署更新后的
-
验证配置
-- 验证模型是否添加成功 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秒竖屏标清)
{
"modelName": "sc_sora2pro_text_portrait_15s_small",
"prompt": "小猫钓鱼"
}
文生视频(25秒横屏标清)
{
"modelName": "sc_sora2pro_text_landscape_25s_small",
"prompt": "美丽的风景"
}
图生视频(15秒竖屏高清)
{
"modelName": "sc_sora2pro_img_portrait_15s_large",
"prompt": "根据图片生成视频",
"imageUrl": "https://example.com/image.jpg"
}
注意事项
- 接口差异: sora2pro 使用
/api/sora2pro/submit,而 sora2 使用/api/sora2/submit - 参数差异: sora2pro 不需要
size参数 - 时长限制: 25秒只能生成标清,15秒支持高清和标清
- 查询接口: sora2pro 和 sora2 共用
/api/sora2/detail查询接口 - 定价统一: 所有 sora2pro 模型均为 400积分
测试建议
- 测试文生视频(15秒和25秒)
- 测试图生视频(15秒和25秒)
- 测试不同宽高比(9:16 和 16:9)
- 验证积分扣费是否正确(400积分)
- 验证任务状态查询和结果获取
完成时间
2025-01-XX