
Soraとは何か - OpenAI動画生成AI完全ガイド
高品質な動画をAIで生成したいですか?Sora は、OpenAI が提供する革新的な動画生成モデルで、テキストによる説明からリアルな動画コンテンツを生成できます。この記事では、Sora の機能、使い方、API 連携手順を総合的に解説します。
本文内容:
- Sora とは何か、そのコア機能
- Sora 2 の技術仕様と制限
- API を通じて Sora を使用する方法
- 完全なコードサンプル
- 価格比較とコスト分析
Sora 是什么?#
Sora は、OpenAI が 2024 年にリリースしたテキストから動画(Text-to-Video)を生成するAIモデルです。ユーザーが入力したテキスト説明に基づき、最長 1 分間の高解像度動画を生成できます。
Sora 的核心能力#
- 文本生成视频:文字による説明を入力すると、AI が自動的に対応する動画コンテンツを生成
- 图片生成视频:静止画像を動きのある動画へ変換
- 视频扩展:既存の動画の長さを延長
- 视频混剪:複数の動画クリップをインテリジェントに合成
Sora 2 技术规格#
| 规格 | 参数 |
|---|---|
| 最大分辨率 | 1920×1080 (1080P) |
| 视频时长 | 4秒、8秒、12秒 |
| 支持比例 | 16:9(横屏)、9:16(竖屏) |
| 输出格式 | MP4 |
Sora 2 可用模型#
Crazyrouter は、さまざまなシーンのニーズに応える複数の Sora 2 モデルバリエーションを提供しています:
| 模型名称 | 分辨率 | 适用场景 | 价格 |
|---|---|---|---|
sora-2 | 1280×720 / 720×1280 | 汎用動画生成 | $0.11/次 |
sora-2-pro | 最高 1792×1024 | プロフェッショナルな高画質動画 | $1.98/次 |
sora-2-landscape | 1280×720 | 横向き動画 | $0.08/次 |
sora-2-landscape-hd | 1280×720 HD | 横向き高画質 | $0.08/次 |
sora-2-portrait | 720×1280 | 縦向き動画(ショート動画) | $0.08/次 |
sora-2-portrait-hd | 720×1280 HD | 縦向き高画質 | $0.08/次 |
価格について:上記の価格には Crazyrouter の割引(55% off)が含まれています。実際の価格は Crazyrouter の料金ページ をご確認ください。
如何使用 Sora API#
前提条件#
- Crazyrouter アカウントを登録
- API Key を取得
- Python または Node.js の実行環境を用意
API 参数说明#
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | ✅ | モデル名。例:sora-2 |
prompt | string | ✅ | 動画の内容を説明するテキスト |
size | string | ✅ | 解像度:1280x720(横向き)または 720x1280(縦向き) |
seconds | string | ❌ | 動画の長さ:"4"、"8"、"12"、デフォルトは 4 秒 |
Python 代码示例#
import requests
import time
API_KEY = "your-crazyrouter-api-key"
BASE_URL = "https://crazyrouter.com"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# 1. 创建视频生成任务
def create_video(prompt, size="1280x720", seconds="4"):
response = requests.post(
f"{BASE_URL}/v1/videos",
headers=headers,
json={
"model": "sora-2",
"prompt": prompt,
"size": size,
"seconds": seconds
}
)
return response.json()
# 2. 查询任务状态
def get_video_status(task_id):
response = requests.get(
f"{BASE_URL}/v1/videos/{task_id}",
headers=headers
)
return response.json()
# 3. 完整流程
def generate_video(prompt):
# 创建任务
result = create_video(prompt)
task_id = result.get("id")
print(f"任务已创建: {task_id}")
# 轮询状态
while True:
status = get_video_status(task_id)
print(f"状态: {status.get('status')}, 进度: {status.get('progress', 0)}%")
if status.get("status") == "completed":
video_url = f"{BASE_URL}/v1/videos/{task_id}/content"
print(f"视频生成完成: {video_url}")
return video_url
elif status.get("status") == "failed":
print(f"生成失败: {status.get('error')}")
return None
time.sleep(10) # 每10秒检查一次
# 使用示例
video_url = generate_video("一只猫在海滩上漫步,夕阳西下,金色的阳光洒在海面上")
cURL 示例#
# 创建视频生成任务
curl -X POST https://crazyrouter.com/v1/videos \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "一只猫在海滩上漫步,夕阳西下",
"size": "1280x720",
"seconds": "4"
}'
# 返回示例
# {
# "id": "video_xxx",
# "object": "video",
# "model": "sora-2",
# "status": "queued",
# "progress": 0,
# "created_at": 1769407259,
# "seconds": "4",
# "size": "1280x720"
# }
# 查询任务状态
curl https://crazyrouter.com/v1/videos/video_xxx \
-H "Authorization: Bearer your-api-key"
Node.js 示例#
const axios = require('axios');
const API_KEY = 'your-crazyrouter-api-key';
const BASE_URL = 'https://crazyrouter.com';
const headers = {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
};
async function generateVideo(prompt) {
// 创建任务
const createResponse = await axios.post(
`${BASE_URL}/v1/videos`,
{
model: 'sora-2',
prompt: prompt,
size: '1280x720',
seconds: '4'
},
{ headers }
);
const taskId = createResponse.data.id;
console.log(`任务已创建: ${taskId}`);
// 轮询状态
while (true) {
const statusResponse = await axios.get(
`${BASE_URL}/v1/videos/${taskId}`,
{ headers }
);
const status = statusResponse.data;
console.log(`状态: ${status.status}, 进度: ${status.progress || 0}%`);
if (status.status === 'completed') {
const videoUrl = `${BASE_URL}/v1/videos/${taskId}/content`;
console.log(`视频生成完成: ${videoUrl}`);
return videoUrl;
} else if (status.status === 'failed') {
console.log(`生成失败: ${status.error}`);
return null;
}
await new Promise(resolve => setTimeout(resolve, 10000));
}
}
// 使用示例
generateVideo('一只猫在海滩上漫步,夕阳西下');
Prompt 写作技巧#
良い Prompt は、高品質な動画を生成するための鍵です。以下にいくつかのコツを紹介します。
1. 描述具体场景#
❌ 不好的 Prompt: "一只猫"
✅ 好的 Prompt: "一只橘色的猫在阳光明媚的花园里追逐蝴蝶,背景是盛开的玫瑰花"
2. 包含动作描述#
❌ 不好的 Prompt: "城市街道"
✅ 好的 Prompt: "繁忙的东京街头,行人匆匆走过,霓虹灯闪烁,雨滴落在湿润的路面上"
3. 指定镜头风格#
✅ "航拍视角下的山脉,云雾缭绕,阳光穿透云层"
✅ "特写镜头:一滴水珠从树叶上滑落"
✅ "慢动作:运动员跳跃的瞬间"
价格对比#
| 服务 | 价格 | 说明 |
|---|---|---|
| OpenAI 官方 | $0.20/次 | ChatGPT Plus のサブスクリプションが必要 |
| Crazyrouter | $0.11/次 | 従量課金、サブスクリプション不要 |
| Runway Gen-3 | $0.25/秒 | 秒単位の課金 |
| Pika Labs | $0.10/次 | 品質はやや低め |
価格について:価格は随時変更される可能性があります。実際の課金額をご確認ください。
常见问题#
Sora 是免费的吗?#
Sora は無料ではありません。OpenAI 公式では ChatGPT Plus(0.08/回から利用できます。
Sora 生成的视频有水印吗?#
OpenAI 公式で生成される動画にはウォーターマークが入ります。Crazyrouter API で生成される動画では、ウォーターマークなしのバージョンを選択できます。
Sora 支持中文 Prompt 吗?#
はい、Sora は中国語の Prompt をサポートしています。生成したい動画の内容を中国語でそのまま記述できます。
视频生成需要多长时间?#
通常、4 秒の動画生成には 1〜3 分、8 秒の動画には 2〜5 分、12 秒の動画には 3〜8 分程度かかります。実際の所要時間はサーバーの負荷状況によって変動します。
Sora 2 和 Sora 1 有什么区别?#
Sora 2 は 2024 年末にリリースされたアップグレード版で、主な改善点は以下の通りです:
- より高い動画品質と解像度
- 物理シミュレーションの精度向上
- 対応する動画の長さが延長(最大 12 秒)
- 生成速度の高速化
开始使用#
- アカウント登録: Crazyrouter にアクセスして登録
- API Key を取得:コンソールで API Key を作成
- 残高をチャージ:必要な分だけチャージ、最低利用金額なし
- 生成を開始:上記のコードサンプルを使って動画生成を開始
関連記事:
ご不明な点があれば、support@crazyrouter.com までお問い合わせください。
Available in other languages:


