Sora 2 API
OpenAI の Sora 2 は、リアルなビジュアル、正確な物理、同期されたオーディオ、高い操作性を備えた、最先端のテキストから動画と画像から動画です。Standard と Pro の階層に加え、複数の生成にわたって再利用できるキャラクターIDを作る Characters エンドポイントがあります。
Standard と Pro の品質階層で、テキストから動画と画像から動画に対応しています。Pro のバリアントは、より高い精細さ、よりシャープなリアリズム、より高い操作性を重視しています。Characters エンドポイントは、動画の参照から再利用できるキャラクターIDを作成し、Sora 2 の生成をまたいで外見を一貫させます。
概要
Sora 2 APIについて
Sora 2でできること、OpenAIのモデルラインナップにおける位置づけ、そして多くのチームに選ばれる理由。
Sora 2はOpenAIの動画生成モデルで、WaveSpeedAIのREST APIから利用できます。OpenAI の Sora 2 は、リアルなビジュアル、正確な物理、同期されたオーディオ、高い操作性を備えた、最先端のテキストから動画と画像から動画です。Standard と Pro の階層に加え、複数の生成にわたって再利用できるキャラクターIDを作る Characters エンドポイントがあります。
Standard と Pro の品質階層で、テキストから動画と画像から動画に対応しています。Pro のバリアントは、より高い精細さ、よりシャープなリアリズム、より高い操作性を重視しています。Characters エンドポイントは、動画の参照から再利用できるキャラクターIDを作成し、Sora 2 の生成をまたいで外見を一貫させます。
WaveSpeedAIのSora 2ファミリーには、Image-To-Video, Text-To-Videoのワークフローをカバーする6個のRESTエンドポイントがあります。各バリアントには、それぞれ独自の料金、パラメーター、作例があります。入力の種類と本番環境の制約に合うものを選ぶか、同じAPIキーで複数を呼び出して、多段階のパイプラインを組み立ててください。
WaveSpeedAIの他の1,000以上のAIモデルと同じAPIキー、請求アカウント、レート制限の枠組みでSora 2を実行できます。ベンダーごとの設定も、プロバイダーごとのSDKも、ベンダーごとのレート制限も不要です。1つの連携で、テキストから画像、テキストから動画から、音声合成、3D生成、高画質化、編集まで、すべてカバーできます。
エンドポイント
Sora 2のAPIエンドポイント一覧
WaveSpeedAIで現在利用可能なSora 2のエンドポイントは6個です。ワークフローに合ったバリアントを選んでください。
/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の使い方
登録から生成完了まで4ステップ。Python、Node.js、cURLの完全なサンプルは、下のAPIセクションにあります。
- 01
APIキーを取得
WaveSpeedAIのアカウントに登録し、ダッシュボードからAPIキーをコピーします。新規アカウントには無料のスタータークレジットが付くので、課金が始まる前にプレイグラウンドを数十回実行できます。
- 02
予測を送信
入力をJSONとしてhttps://api.wavespeed.ai/api/v3/openai/sora-2/text-to-videoにPOSTします。エンドポイントはすぐに予測IDを返します。生成は非同期なので、推論中に接続を開いたままにする必要はありません。
- 03
完了までポーリング
https://api.wavespeed.ai/api/v3/predictions/{request_id}/resultにGETします。completedなら出力を返し、failed、cancelled、timeout、deletedならエラーで停止し、それ以外のステータスの間はポーリングを続けます。
- 04
出力URLを読み取る
ステータスが"completed"になったら、data.outputs[0]からURLを読み取ります。URLは、WaveSpeedAIのCDN上にある生成されたメディアを指します。呼び出したSora 2のバリアントに応じて、画像、動画、音声、3Dファイルのいずれかです。
活用例
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
構造化されたプロンプトで操作性を支える
被写体、シーン、カメラ、ライティング、アクションを1つのプロンプトに入れます。Sora 2 の操作性の特長は、一言のプロンプトではなく、構造化されたクリエイティブブリーフに最もよく反映されます。
- 05
画像から動画には、質の高いキーとなる静止画を合わせる
構図が重要なときは、高品質な参照画像から始めてください。Sora 2 の画像から動画は、開始時のフレームを保ちながら、物理を考慮したモーションと同期オーディオを加えます。
料金
Sora 2 APIの料金
料金は出力ごとです。最終的な請求額は、各バリアントのプレイグラウンドで設定するパラメーター(解像度、長さ、出力数、参照入力)に応じて変わります。
| エンドポイント | タイプ | 最低料金 |
|---|---|---|
| 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で予測を送信します。プレイグラウンドでは、入力の組み合わせに応じて、そのまま貼り付けられるサンプルが生成されます。
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 vs Veo 3.1
Veo 3.1 は、リファレンスから動画と開始・終了の補間を備えた3つの料金階層(Standard / Fast / Lite)があります。Sora 2 は、物理の正確さと操作性を重視し、生成をまたいだアイデンティティのための専用の Characters エンドポイントを備えています。同程度のプレミアム価格帯で、機能の構成が異なります。
Sora 2 vs Seedance 2.0
Seedance 2.0 は、全バリアントでのネイティブオーディオに加え、video-edit と video-extend を、より低コストで提供しています。Sora 2 は、OpenAI のフォトリアリズムと物理の事前知識を軸に、繰り返し登場するアイデンティティのための Characters ワークフローを備えています。
Sora 2 vs Kling 3.0
Kling 3.0 は、Standard、Pro、4K の階層をカバーし、モーションコントロールをサブエンドポイントとして備えています。Sora 2 は、Pro の品質階層を備えたテキストから動画と画像から動画、そして Characters エンドポイントに集中しており、モーションコントロールはありませんが、物理と操作性に強みがあります。
FAQ
Sora 2 API — よくある質問
料金、ライセンス、連携など、WaveSpeedAIでSora 2を実行する際のよくある質問。
Sora 2 APIとは何ですか?
Sora 2は、OpenAIの動画生成モデルで、WaveSpeedAI上でREST APIとして提供されています。OpenAI の Sora 2 は、リアルなビジュアル、正確な物理、同期されたオーディオ、高い操作性を備えた、最先端のテキストから動画と画像から動画です。Standard と Pro の階層に加え、複数の生成にわたって再利用できるキャラクターIDを作る Characters エンドポイントがあります。プログラムから呼び出すことも、上にリンクされたプレイグラウンドで試すこともできます。
Sora 2 APIはどう呼び出しますか?
WaveSpeedAIのアカウントに登録し、/accesskeyからAPIキーをコピーして、入力をJSONとしてhttps://api.wavespeed.ai/api/v3/openai/sora-2/text-to-videoにPOSTします。エンドポイントは予測IDを返します。結果のエンドポイントを約2秒ごとにポーリングし、長時間かかるタスクでは間隔を広げ、終端ステータスになったら停止してください。本番運用向けのPython / Node.js / cURLのサンプルは上にあります。
Sora 2 APIの料金はいくらですか?
Sora 2は1回あたり$0.40からです。実際の料金は、設定するパラメーター(解像度、長さ、出力数、参照入力)に応じて変わります。プレイグラウンドの「生成」ボタンの横に表示されるリアルタイムの料金プレビューで、現在の入力での正確な料金を確認できます。
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。各バリアントには、専用のプレイグラウンドページと料金があります。
Sora 2の出力を商用利用できますか?
商用利用の権利は、OpenAIのモデルライセンスに従います。OpenAIのほとんどのモデルは出力の商用利用を認めています。具体的なライセンスの概要は各モデルのプレイグラウンドページで、プラットフォーム全体の条件はWaveSpeedAIの利用規約でご確認ください。
なぜ直接ではなくWaveSpeedAIでSora 2を使うのですか?
Sora 2と、他のプロバイダーの1,000以上のAIモデルを、1つのAPIキー、1つの請求アカウントで利用できます。ベンダーごとのSDK設定も、個別のレート制限も、ベンダーごとの連携コードの書き直しも不要です。料金は、通常OpenAIの直接のAPIと同等かそれ以下です。
提供元
OpenAIについて
WaveSpeedAIにおけるSora 2と、OpenAIのモデルラインナップ全体を手がけるチーム。
OpenAI は、ChatGPT、GPT-4 と GPT-5、DALL·E、Sora、Whisper を手がける研究機関です。画像・動画モデルは、消費者向けから企業向けまで幅広いアプリケーションに導入されており、指示への追従、フォトリアリズム、慎重な安全対策に重点を置いています。画像APIは、商用利用の条件が明確であることを求められる、マーケティングやエディトリアルの用途でよく選ばれています。
WaveSpeedAIでSora 2を使った開発を始めよう
登録時に無料のスタータークレジットを進呈。OpenAIをはじめ、あらゆるプロバイダーの1,000以上のAIモデルを、1つのAPIキーで。