Sora 2 API
OpenAI Sora 2——业界领先的文生视频和图生视频,视觉写实、物理准确、音频同步,可控性强。提供 Standard 和 Pro 档位,另有 Characters 端点,可创建可跨多次生成复用的角色 ID。
提供 Standard 和 Pro 质量档位的文生视频和图生视频。Pro 变体强调更高的保真度、更锐利的写实感和更强的可控性。Characters 端点根据视频参考创建可复用的角色 ID,使角色外观在多次 Sora 2 生成之间保持一致。
概览
关于 Sora 2 API
Sora 2 能做什么、它在 OpenAI 模型阵容中的定位,以及团队选择它的原因。
Sora 2 是 OpenAI 推出的视频生成模型,可通过 WaveSpeedAI REST API 使用。OpenAI Sora 2——业界领先的文生视频和图生视频,视觉写实、物理准确、音频同步,可控性强。提供 Standard 和 Pro 档位,另有 Characters 端点,可创建可跨多次生成复用的角色 ID。
提供 Standard 和 Pro 质量档位的文生视频和图生视频。Pro 变体强调更高的保真度、更锐利的写实感和更强的可控性。Characters 端点根据视频参考创建可复用的角色 ID,使角色外观在多次 Sora 2 生成之间保持一致。
WaveSpeedAI 上的 Sora 2 系列提供 6 个 REST 端点,涵盖 Image-To-Video, Text-To-Video 个工作流。每个变体都有各自的定价、参数选项和示例输出——请选择与你的输入模态和生产约束相匹配的那一个,或使用同一个 API 密钥调用多个变体,组合成多步骤流水线。
使用与 WaveSpeedAI 上其他 1,000 多个 AI 模型相同的 API 密钥、账单账户和速率限制来运行 Sora 2。无需单独对接供应商,无需各家 SDK,也无需应对各家不同的速率限制——一次集成即可覆盖从文生图、文生视频到音频合成、3D 生成、放大和编辑的全部能力。
端点
全部 Sora 2 API 端点
WaveSpeedAI 现已提供 6 个 Sora 2 端点——请选择适合你工作流的变体。
/filters:quality(82)/media/images/20260408112732_q7q9ibeh.webp)
Sora 2 Pro Image To Video
OpenAI Sora 2 Pro Image-to-Video creates physics-aware, realistic videos from reference images with synchronized audio and strong steerability. Supports 720p and 1080p resolutions with durations up to 20 seconds. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
/filters:quality(82)/media/images/20260408112737_6jbthvrf.webp)
Sora 2 Pro Text To Video
OpenAI Sora 2 Pro is a state-of-the-art text-to-video model with realistic physics, synchronized audio, and strong steerability. Supports multiple resolutions up to 1080p and durations up to 20 seconds. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
/filters:quality(82)/media/images/20260408112720_fr0co07c.webp)
Sora 2 Text To Video Pro
OpenAI Sora 2 Text-to-Video Pro creates high-fidelity videos with synchronized audio, realistic physics, and enhanced steerability. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
/filters:quality(82)/media/images/20260408112722_dedc4sez.webp)
Sora 2 Text To Video
OpenAI Sora 2 is a state-of-the-art text-to-video model with realistic visuals, accurate physics, synchronized audio, and strong steerability. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
/filters:quality(82)/media/images/20260408112718_d65e7n5f.webp)
Sora 2 Image To Video Pro
OpenAI Sora 2 Image-to-Video Pro creates physics-aware, realistic videos with synchronized audio and greater steerability. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
/filters:quality(82)/media/images/20260408112711_0sgj3log.webp)
Sora 2 Image To Video
OpenAI Sora 2 generates realistic image-to-video content with synchronized audio, improved physics, sharper realism and steerability. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
示例
看看 Sora 2 的实际效果
由 Sora 2 API 生成的真实输出。悬停在任意视频上即可预览,点击可打开全尺寸查看器。
使用方法
如何使用 Sora 2 API
从注册到完成一次生成,只需四步。完整的 Python、Node.js 和 cURL 示例见下方的 API 部分。
- 01
获取 API 密钥
注册 WaveSpeedAI 账号,并从控制台复制你的 API 密钥。新账号附带免费体验额度——足够在开始计费前把 Playground 运行几十次。
- 02
提交预测
把你的输入以 JSON 形式 POST 到 https://api.wavespeed.ai/api/v3/openai/sora-2/text-to-video。端点会立即返回预测 ID——生成是异步的,因此推理期间你无需保持连接。
- 03
轮询完成状态
GET https://api.wavespeed.ai/api/v3/predictions/{request_id}/result。状态为 completed 时返回输出;状态为 failed、cancelled、timeout 或 deleted 时以错误终止;其他任何状态都继续轮询。
- 04
读取输出 URL
状态变为 "completed" 后,从 data.outputs[0] 读取 URL。该 URL 指向 WaveSpeedAI CDN 上你生成的媒体——具体是图片、视频、音频还是 3D 文件,取决于你调用的 Sora 2 变体。
应用场景
用 Sora 2 可以构建什么
开发者和创作者使用 Sora 2 API 的常见工作流。
带同步音频的文生视频
openai/sora-2/text-to-video 根据文本提示词生成写实视频,带同步音频、准确的物理效果和强可控性——这是 OpenAI 为全新创意需求打出的 Sora 2 核心能力。
具备物理感知运动的图生视频
openai/sora-2/image-to-video 将参考静态图制作成带同步音频、物理效果更好的写实视频。适合起始构图已锁定、运动必须忠于源图像的场景。
Pro 档位,交付级输出
openai/sora-2/text-to-video-pro 和 image-to-video-pro 创建带同步音频、真实物理效果和更强可控性的高保真视频——当 Standard 输出不够锐利、无法用于交付时,请使用 Pro 档位。
可复用的角色 ID
openai/sora-2/characters 根据视频参考创建可复用的角色 ID,使同一角色外观可在多次 Sora 2 生成中延续——适合系列化内容、品牌吉祥物和固定出场角色。
可控性,实现精确的创作控制
目录强调 Pro 变体具有「强可控性」和「更强的可控性」。请在提示词中使用明确的镜头、灯光和动作语言——Sora 2 对结构化的创作指导反应良好。
物理感知的场景
目录宣称:文生视频和图生视频都具有「准确的物理效果」和「物理感知」的输出。适合产品演示、体育动作,以及物体交互必须看起来符合物理常识的场景。
技巧
Sora 2 提示词技巧
让 Sora 2 输出更好结果的实用建议——总结自生产流水线中各类视频模型都适用的做法。
- 01
Pro 档位用于交付,Standard 用于迭代
Standard 和 Pro 的提示词格式相同——只需切换端点 URL。用 Standard 迭代找到方向,需要在交付画质下保持物理准确性和可控性时再切换到 Pro。
- 02
为固定出场角色创建角色 ID
openai/sora-2/characters 根据视频参考构建可复用的 ID。创建一次,之后在文生视频和图生视频调用中引用该 ID——比每次生成都重新上传参考片段更快。
- 03
明确描述物理和交互
目录强调准确的物理效果。请写明物体如何交互——倾倒、弹跳、碰撞、织物垂坠——而不要假设模型仅凭主体就能推断出物理行为。
- 04
用结构化提示词锚定可控性
在一条提示词中写明主体 + 场景 + 镜头 + 光线 + 动作。Sora 2 所宣称的可控性,最适合结构化的创作说明,而不是单个词的提示词。
- 05
图生视频搭配高质量的关键静态图
构图重要时,请从高质量的参考图像出发。Sora 2 的图生视频会保留起始画面,同时加入物理感知的运动和同步音频。
定价
Sora 2 API 定价
按输出计费。最终费用会随你在各变体 Playground 中设置的参数(分辨率、时长、输出数量、参考素材)而变化。
| 端点 | 类型 | 起步价 |
|---|---|---|
| openai/ | image-to-video | $1.20 |
| openai/ | text-to-video | $1.20 |
| openai/ | text-to-video | $1.20 |
| openai/ | text-to-video | $0.40 |
| openai/ | image-to-video | $1.20 |
| openai/ | image-to-video | $0.40 |
API
调用 Sora 2 API
在 wavespeed.ai/accesskey 注册并获取 API 密钥,然后通过 REST 提交预测。Playground 可以为任意输入组合生成可直接粘贴的示例代码。
POSThttps://api.wavespeed.ai/api/v3/openai/sora-2/text-to-video
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/openai/sora-2/text-to-video" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d '{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "720*1280",
"duration": 4
}')
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/openai/sora-2/text-to-video";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "720*1280",
"duration": 4
}),
});
const task = body.data ?? body;
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"size": "720*1280",
"duration": 4
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/openai/sora-2/text-to-video", json.dumps(payload).encode())
task = body.get("data", body)
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout", "deleted"}:
raise RuntimeError(result)
time.sleep(2)对比
Sora 2 与其他方案对比
在 WaveSpeedAI 上,何时应选择 Sora 2 而不是同类模型。
Sora 2 对比 Veo 3.1
Veo 3.1 提供三个价格档位(Standard / Fast / Lite),并带参考生视频和首尾帧插值。Sora 2 强调物理准确性和可控性,并有专用的 Characters 端点用于跨生成保持身份——功能范围不同,价格同属高端。
Sora 2 对比 Seedance 2.0
Seedance 2.0 每个变体都带原生音频,并以更低成本提供视频编辑和视频延长。Sora 2 定位于 OpenAI 的写实感和物理先验,并通过 Characters 工作流保持固定的角色身份。
Sora 2 对比 Kling 3.0
Kling 3.0 涵盖 Standard、Pro 和 4K 档位,运动控制为子端点。Sora 2 专注于文生视频和图生视频,有 Pro 质量档位和 Characters 端点——没有运动控制,但物理效果和可控性方面表现突出。
常见问题
Sora 2 API — 常见问题
定价、许可、集成——关于在 WaveSpeedAI 上运行 Sora 2 的常见问题。
Sora 2 API 是什么?
Sora 2 是 OpenAI 的视频生成模型,在 WaveSpeedAI 上以 REST API 形式提供。OpenAI Sora 2——业界领先的文生视频和图生视频,视觉写实、物理准确、音频同步,可控性强。提供 Standard 和 Pro 档位,另有 Characters 端点,可创建可跨多次生成复用的角色 ID。你可以通过编程方式调用它,也可以在上方链接的 Playground 中试用。
如何调用 Sora 2 API?
注册 WaveSpeedAI 账号,从 /accesskey 复制你的 API 密钥,然后把输入以 JSON 形式 POST 到 https://api.wavespeed.ai/api/v3/openai/sora-2/text-to-video。端点会返回预测 ID。从大约每 2 秒一次开始轮询结果端点,长耗时任务可适当拉长间隔,并在任何终止状态时停止。上方有面向生产环境的 Python / Node.js / cURL 示例。
Sora 2 API 的费用是多少?
Sora 2 每次调用 $0.40 起。实际费用会随你设置的参数(分辨率、时长、输出数量、参考素材)而变化。Playground 中“生成”按钮旁的实时费用预览会显示你当前输入对应的准确价格。
有哪些 Sora 2 变体可用?
WaveSpeedAI 托管了 6 个已上线的 Sora 2 端点:openai/sora-2-pro/image-to-video, openai/sora-2-pro/text-to-video, openai/sora-2/text-to-video-pro, openai/sora-2/text-to-video, openai/sora-2/image-to-video-pro, openai/sora-2/image-to-video。每个变体都有自己的 Playground 页面和定价。
Sora 2 的输出可以商用吗?
商用权利遵循 OpenAI 的模型许可。大多数 OpenAI 模型允许商用输出;具体许可摘要请查看各模型的 Playground 页面,平台层面的条件请参阅 WaveSpeedAI 的服务条款。
为什么要在 WaveSpeedAI 上使用 Sora 2,而不是直接对接?
一个 API 密钥、一个账单账户,即可使用 Sora 2 以及来自其他提供方的 1,000 多个 AI 模型。无需逐家配置 SDK,无需应对各自独立的速率限制,也无需为每家重写集成代码。价格通常与 OpenAI 直接提供的 API 持平或更低。
提供方
关于 OpenAI
Sora 2 及 WaveSpeedAI 上 OpenAI 更多模型背后的团队。
OpenAI 是 ChatGPT、GPT-4 和 GPT-5、DALL·E、Sora 和 Whisper 背后的实验室。其图像和视频模型广泛部署于消费级和企业级应用,注重指令遵循、写实感和保守的安全护栏。对于需要明确商用许可的营销和编辑类场景,其图像 API 是常见的选择。
在 WaveSpeedAI 上用 Sora 2 开始构建
注册即送免费体验额度。一个 API 密钥,即可使用来自 OpenAI 及其他所有提供方的 1,000 多个 AI 模型。