你还记得 Sora2 推出的 Cameo 和 Remix 功能吗?
Cameo(客串)是 Sora 2 推出的官方真人出镜功能,允许用户通过录制验证视频,将自己的面部、体型、声音特征提取并融合到 AI 生成的任意场景中,实现"真人演员 + 虚拟场景 + 配音"的混合视频生成。它允许你将多个角色(包括自己、朋友、宠物甚至原创形象)置入同一个 AI 生成的视频中。
Remix(重混)是 Sora 2 的一项非常强大的视频二次创作能力,它允许你对已有的视频进行对象级和场景级的深度修改,而不仅仅是简单的剪辑或添加滤镜,通过提示词你可以修改视频并且加入自己的 Cameo 角色。
本文将详细介绍 Sora 2 的 Cameo 和 Remix 功能如何使用 ,以及企业、独立开发和普通用户如何通过GrsAi API调用 Sora 2 Cameo 和 Remix。
以 “sora” app 为例,点击底部 “+” 创建视频,选择 cameo 出镜秀中的角色,通过 “@” 标签来调用你已经创建或他人共享的角色,实现多角色同框,输入提示词(支持中文),等待生成。
[场景描述] + [主角 (我/Cameo 角色) 动作] + [环境细节] + [风格要求]
案例:
古老巨龙盘踞的山巅,我是精灵法师举杖召唤魔法护盾,抵挡烈焰吐息,破碎巨石,魔法尘埃,云海夕阳,史诗奇幻,电影广角,戏剧灯光。
注意: 使用"我"或"主角"指代 Cameo 角色 详细描述动作和场景 避免描述面部细节 (AI 会自动匹配你的特征) 可以指定服装、场景、氛围
Sora2 目前有严格的地区限制,并且采用邀请制,没有码且非美国,加拿大 IP 用户则无法使用。Openai 目前还没有开通 Sora 2 APi 包括 Cameo 和 Remix 功能,那企业或独立开发者应该怎么调用正版的 Sora2 Api?
GrsAi Sora2 Cameo 多角色生成功能接入
GrsAi(https://grsai.com)是 Ai 大模型 APi 源头供应商,提供便宜稳定的 Ai 大模型 APi 接入服务,国内直连。Sora 2—0.08/条视频,同时支持 Sora 2 Cameo 多角色上传和 Remix 功能的调用。
Sora 2 API 接入文档请到控制台查看:https://grsai.com/zh/dashboard/documents/sora-2
目前站内模型包含:Nano Banana-0.022/张,Sora-image(Gpt4o)-0.02/张,Veo3.1/Veo3.0-0.4/张,Gemini,Flux.......更多请查看 GrsAi 控制台 (https://grsai.com/zh/dashboard/models) 模型列表。
基础环境配置
1.API 端点信息
// 海外用户使用
const HOST_OVERSEAS = "https://api.grsai.com";
// 国内用户使用
const HOST_DOMESTIC = "https://grsai.dakka.com.cn";
// 接口地址
const API_ENDPOINT = `${HOST_DOMESTIC}/v1/video/sora-video`;
2.请求头配置
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer apikey" // 替换为实际API密钥
};
Cameo APi 多角色上传功能调用
1.characters 参数完整说明
{
"characters": [
{
"url": "https://example.com/characterA.mp4",
"timestamps": "0,3"
},
{
"url": "https://example.com/characterB.mp4",
"timestamps": "1,4"
}
]
}
2.参数规范:
3.角色引用语法 在 prompt 中使用@character+ 位置索引格式引用角色:
// 正确示例
const prompt = "在公园长椅上,@character1正在读书,@character2在旁边玩耍";
// 位置索引从1开始,对应characters数组中的顺序
// @character1 → characters[0]
// @character2 → characters[1]
如果要使用 Sora2 中公开的 Cameo 角色,则可以直接在提示词中 @ 用户 ID 使用。
完整实战案例
案例:创建两个卡通角色在公园场景
步骤 1:准备角色视频
确保视频文件可通过 URL 公开访问
步骤 2:构造 API 请求
const requestBody = {
"model": "sora-2",
"prompt": "在阳光明媚的公园里,@character1在草地上快乐地跳舞,@character2在天空中盘旋飞翔,背景有鲜花和树木,风格为卡通动画",
"url": "https://example.com/park_background.png", // 场景参考图
"aspectRatio": "16:9",
"duration": 10,
"size": "large",
"characters": [
{
"url": "https://example.com/rabbit_dance.mp4",
"timestamps": "0,3"
},
{
"url": "https://example.com/bird_fly.mp4",
"timestamps": "0,3"
}
],
"webHook": "https://your-app.com/callback", // 回调地址
"shutProgress": false
};
步骤 3:执行 API 调用
// 使用Fetch API调用
async function generateSoraVideo() {
try {
const response = await fetch('https://grsai.dakka.com.cn/v1/video/sora-video', {
method: 'POST',
headers: headers,
body: JSON.stringify(requestBody)
});
const data = await response.json();
console.log('任务ID:', data.data.id);
return data;
} catch (error) {
console.error('API调用失败:', error);
}
}
结果获取方式
方式 1:WebHook 回调(推荐)
// 你的回调接口需要处理的数据格式
const callbackData = {
"id": "f44bcf50-f2d0-4c26-a467-26f2014a771b",
"results": [
{
"url": "https://example.com/generated_video.mp4",
"removeWatermark": true,
"pid": "s_6916910fc8548191aa07e106e84b3bb8"
}
],
"progress": 100,
"status": "succeeded",
"failure_reason": "",
"error": ""
};
方式 2:轮询获取结果
// 使用结果查询接口
async function getResult(taskId) {
const response = await fetch('https://grsai.dakka.com.cn/v1/draw/result', {
method: 'POST',
headers: headers,
body: JSON.stringify({ id: taskId })
});
return await response.json();
}
// 轮询示例
async function pollResult(taskId, interval = 5000) {
while (true) {
const result = await getResult(taskId);
if (result.data.status === 'succeeded') {
console.log('生成成功:', result.data.results[0].url);
break;
} else if (result.data.status === 'failed') {
console.error('生成失败:', result.data.failure_reason);
break;
}
console.log(`进度: ${result.data.progress}%`);
await new Promise(resolve => setTimeout(resolve, interval));
}
}
重要注意事项
1.视频规格限制
2.计费与配额
3.错误处理
// 常见的状态码和错误信息
const errorMessages = {
"output_moderation": "输出内容违规",
"input_moderation": "输入内容违规",
"error": "其他系统错误"
};
Remix 功能 APi 调用 二次创作功能 使用 remixTargetId 参数基于已有视频创作续集:
{
"remixTargetId": "s_6916910fc8548191aa07e106e84b3bb8",
"prompt": "同样的角色在夜晚的公园中,@character1和@character2在月光下继续他们的冒险"
}
多尺寸输出策略
// 快速预览使用small尺寸
const previewRequest = {
size: "small",
duration: 10
};
// 最终输出使用large尺寸
const finalRequest = {
size: "large",
duration: 15
};
通过 GRSAI 的 Sora 2 API,开发者可以充分利用多角色上传功能,创建出丰富多样的个性化 AI 视频内容,为应用程序增添强大的视频生成能力。
更详细的 Sora 2 Api 文档请参考GrsAi控制台