ModelHargaPerusahaan
500+ API Model AI, Semua Dalam Satu API. Hanya Di CometAPI
API Model
Pembangun
Mula PantasDokumentasiPapan Pemuka API
Syarikat
Tentang kamiPerusahaan
Sumber
Model AIBlogLog PerubahanSokongan
Terma PerkhidmatanDasar Privasi
© 2026 CometAPI · All rights reserved
Home/Models/OpenAI/Sora 2 Pro
O

Sora 2 Pro

Setiap Saat:$0.24
Sora 2 Pro ialah model generatif media kami yang paling canggih dan berkuasa, mampu menjana video dengan Audio yang disegerakkan. Ia boleh mencipta klip video yang terperinci dan dinamik daripada bahasa semula jadi atau imej.
Baru
Penggunaan komersial
Playground
Gambaran Keseluruhan
Ciri-ciri
Harga
API

Ciri utama

  • Penjanaan multimodal (video + audio) — Sora-2-Pro menjana bingkai video bersama audio yang disegerakkan (dialog, bunyi ambien, SFX) dan bukannya menghasilkan video dan audio secara berasingan.
  • Kesetiaan lebih tinggi / peringkat “Pro” — ditala untuk kesetiaan visual yang lebih tinggi, babak yang lebih mencabar (pergerakan kompleks, oklusi, dan interaksi fizikal), serta konsistensi per-babak yang lebih lama berbanding Sora-2 (bukan Pro). Ia mungkin mengambil masa lebih lama untuk render berbanding model Sora-2 standard.
  • Kepelbagaian input — menyokong prompt teks tulen, dan boleh menerima bingkai input imej atau imej rujukan untuk memandu komposisi (aliran kerja input_reference).
  • Cameo / suntikan rupa — boleh memasukkan rupa pengguna yang dirakam ke dalam babak terjana dengan aliran kerja persetujuan dalam aplikasi.
  • Kemunasabahan fizikal: peningkatan kekekalan objek dan kesetiaan pergerakan (cth., momentum, keapungan), mengurangkan artifak “teleport” yang tidak realistik yang lazim pada sistem terdahulu.
  • Kebolehkawalan: menyokong prompt berstruktur dan arahan pada peringkat shot agar pencipta boleh menetapkan kamera, pencahayaan, dan jujukan berbilang shot.

Perincian teknikal & permukaan integrasi

Keluarga model: Sora 2 (asas) dan Sora 2 Pro (varian berkualiti tinggi).
Modaliti input: prompt teks, rujukan imej, dan rakaman pendek video/audio cameo untuk rupa.
Modaliti output: video berkod (dengan audio) — parameter didedahkan melalui endpoint /v1/videos (pemilihan model melalui model: "sora-2-pro"). Permukaan API mengikut keluarga endpoint video OpenAI untuk operasi create/retrieve/list/delete.

Latihan & seni bina (ringkasan awam): OpenAI menerangkan Sora 2 sebagai dilatih pada data video berskala besar dengan pasca-latihan untuk memperbaiki simulasi dunia; butiran khusus (saiz model, set data tepat, dan tokenisasi) tidak dihuraikan secara terperinci kepada umum. Jangkakan komputasi berat, tokenizer video khusus/seni bina terspesialis dan komponen penjajaran multimodal.


Endpoint API & aliran kerja: tunjukkan aliran kerja berasaskan tugas: hantar permintaan penciptaan POST (model="sora-2-pro"), terima id tugas atau lokasi, kemudian tinjau atau tunggu sehingga siap dan muat turun fail hasil. Parameter lazim dalam contoh yang diterbitkan termasuk prompt, seconds/duration, size/resolution, dan input_reference untuk permulaan berpandukan imej.

Parameter tipikal :

  • model: "sora-2-pro"
  • prompt: penerangan babak dalam bahasa semula jadi, pilihan dengan petunjuk dialog
  • seconds / duration: panjang klip sasaran ( Pro menyokong kualiti tertinggi dalam tempoh yang tersedia)
  • size / resolution: laporan komuniti menunjukkan Pro menyokong sehingga 1080p dalam banyak kes penggunaan.

Input kandungan: fail imej (JPEG/PNG/WEBP) boleh dibekalkan sebagai bingkai atau rujukan; apabila digunakan, imej hendaklah sepadan dengan resolusi sasaran dan bertindak sebagai sauh komposisi.

Perilaku rendering: Pro ditala untuk memprioritikan koherens bingkai-ke-bingkai dan fizik yang realistik; ini lazimnya bermaksud masa komputasi yang lebih panjang dan kos per klip yang lebih tinggi berbanding varian bukan Pro.

Prestasi penanda aras

Kekuatan kualitatif: OpenAI menambah baik realisme, konsistensi fizik, dan audio yang disegerakkan** berbanding model video terdahulu. Keputusan VBench lain menunjukkan Sora-2 dan derivatifnya berada di atau hampir puncak model tertutup kontemporari dan koherens temporal.

Pemasa/kelajuan bebas (contoh penanda aras): Sora-2-Pro mengambil purata ~2.1 minutes untuk klip 1080p selama 20 saat dalam satu perbandingan, manakala pesaing (Runway Gen-3 Alpha Turbo) lebih pantas (~1.7 minutes) pada tugas yang sama — pertukaran ialah kualiti vs latensi render dan pengoptimuman platform.

Batasan (praktikal & keselamatan)

  • Fizik/konsistensi tidak sempurna — bertambah baik tetapi tidak sempurna; artifak, pergerakan tidak semula jadi, atau ralat penyegerakan audio masih boleh berlaku.
  • Kekangan durasi & komputasi — klip panjang memerlukan komputasi intensif; banyak aliran kerja praktikal mengehadkan klip kepada durasi pendek (cth., satu digit hingga puluhan saat yang rendah untuk output berkualiti tinggi).
  • Risiko privasi / persetujuan — suntikan rupa (“cameo”) menimbulkan risiko persetujuan dan salah maklumat/disinformasi; OpenAI mempunyai kawalan keselamatan dan mekanisme pembatalan yang jelas dalam aplikasi, namun integrasi yang bertanggungjawab diperlukan.
  • Kos & latensi — render berkualiti Pro boleh lebih mahal dan lebih perlahan daripada model lebih ringan atau pesaing; ambil kira pengebilan per‑saat/per‑render dan penggiliran.
  • Penapisan kandungan keselamatan — penjanaan kandungan berbahaya atau berhak cipta adalah terhad; model dan platform merangkumi lapisan keselamatan dan pemoderasian.

Kes penggunaan biasa dan disyorkan

Kes penggunaan:

  • Prototip pemasaran & iklan — pantas mencipta bukti konsep sinematik.
  • Pravisualisasi — papan cerita, blocking kamera, visualisasi shot.
  • Kandungan sosial pendek — klip bergaya dengan dialog dan SFX yang disegerakkan.
  • Cara mengakses API Sora 2 Pro

Langkah 1: Daftar untuk Kunci API

Log masuk ke cometapi.com. Jika anda belum menjadi pengguna kami, sila daftar terlebih dahulu. Log masuk ke konsol CometAPI. Dapatkan kunci API kelayakan akses bagi antara muka. Klik “Add Token” pada token API di pusat peribadi, dapatkan kunci token: sk-xxxxx dan serahkan.

cometapi-key

Langkah 2: Hantar Permintaan ke API Sora 2 Pro

Pilih endpoint “sora-2-pro” untuk menghantar permintaan API dan tetapkan badan permintaan. Kaedah permintaan dan badan permintaan diperoleh daripada dokumen API laman web kami. Laman kami juga menyediakan ujian Apifox untuk kemudahan anda. Gantikan <YOUR_API_KEY> dengan kunci CometAPI sebenar anda daripada akaun anda. base url is office Create video

Masukkan soalan atau permintaan anda ke dalam medan content—ini ialah perkara yang akan direspons oleh model. Proses respons API untuk mendapatkan jawapan yang dijana.

Langkah 3: Dapatkan dan Sahkan Keputusan

Proses respons API untuk mendapatkan jawapan yang dijana. Selepas pemprosesan, API memberikan status tugas dan data output.

  • Latihan / simulasi dalaman — jana visual senario untuk penyelidikan RL atau robotik (dengan berhati-hati).
  • Produksi kreatif — apabila digabungkan dengan suntingan manusia (cantum klip pendek, gred, gantikan audio).

Soalan Lazim

Adakah Sora 2 Pro menjana audio yang disegerakkan dengan video?

Ya, Sora 2 Pro menjana bingkai video bersama audio yang disegerakkan termasuk dialog, bunyi ambien dan kesan bunyi—bukan dihasilkan secara berasingan tetapi sebagai output yang disatukan.

Apakah resolusi dan tempoh yang disokong oleh Sora 2 Pro?

Sora 2 Pro menyokong resolusi sehingga 1080p. Ia dioptimumkan untuk klip pendek berkualiti tinggi, biasanya dalam julat beberapa saat hingga belasan saat rendah untuk kesetiaan maksimum.

Bagaimanakah Sora 2 Pro berbeza daripada Sora 2 standard?

Sora 2 Pro ditala untuk kesetiaan visual yang lebih tinggi, mengendalikan syot yang lebih mencabar (gerakan kompleks, oklusi, interaksi fizikal), dan mengekalkan konsistensi yang lebih lama bagi setiap babak—dengan kos masa render yang lebih panjang.

Bolehkah Sora 2 Pro menggunakan imej rujukan untuk membimbing penjanaan video?

Ya, Sora 2 Pro menyokong aliran kerja input_reference di mana imej JPEG/PNG/WEBP bertindak sebagai penambat komposisi untuk membimbing bingkai permulaan atau gaya video yang dijana.

Adakah Sora 2 Pro menyokong suntikan rupa (cameo)?

Ya, Sora 2 Pro boleh memasukkan rupa tangkapan pengguna ke dalam babak yang dijana. OpenAI mempunyai aliran kerja persetujuan terbina dalam dan mekanisme pembatalan untuk menangani risiko privasi dan penyalahgunaan.

Berapa lamakah masa yang diambil oleh Sora 2 Pro untuk merender video?

Ujian penanda aras menunjukkan Sora 2 Pro secara purata mengambil kira-kira 2.1 minit untuk klip 1080p berdurasi 20 saat. Pro mengutamakan kualiti berbanding kelajuan, jadi jangkakan masa render yang lebih panjang berbanding Sora 2 standard.

Apakah penambahbaikan fizik yang ditawarkan oleh Sora 2 Pro?

Sora 2 Pro menambah baik kekekalan objek dan kesetiaan gerakan—momentum, daya apungan dan interaksi fizikal kelihatan lebih realistik dengan artifak 'teleporting' yang lebih sedikit, yang biasa dalam model video terdahulu.

Bilakah saya patut memilih Sora 2 Pro berbanding Google Veo 3?

Pilih Sora 2 Pro untuk integrasi ekosistem OpenAI, suntikan rupa dan babak fizikal yang kompleks. Veo 3 mungkin menawarkan penjanaan yang lebih pantas dan harga yang berbeza—nilai berdasarkan keperluan kependaman dan bajet anda.

Harga untuk Sora 2 Pro

Terokai harga yang kompetitif untuk Sora 2 Pro, direka bentuk untuk memenuhi pelbagai bajet dan keperluan penggunaan. Pelan fleksibel kami memastikan anda hanya membayar untuk apa yang anda gunakan, menjadikannya mudah untuk meningkatkan skala apabila keperluan anda berkembang. Temui bagaimana Sora 2 Pro boleh meningkatkan projek anda sambil mengekalkan kos yang terurus.
Model NameTagsOrientationResolutionPrice
sora-2-provideosPortrait720x1280$0.24 / sec
sora-2-provideosLandscape1280x720$0.24 / sec
sora-2-provideosPortrait (High Res)1024x1792$0.40 / sec
sora-2-provideosLandscape (High Res)1792x1024$0.40 / sec
sora-2-pro-all-Universal / All-$0.80000

Kod contoh dan API untuk Sora 2 Pro

Sora-2-pro ialah model penjanaan video+audio unggulan OpenAI yang direka untuk mencipta klip video pendek yang sangat realistik dengan dialog dan kesan bunyi yang disegerakkan, serta simulasi fizikal/dunia yang lebih kukuh berbanding model video sebelumnya. Ia diposisikan sebagai varian "Pro" berkualiti lebih tinggi yang tersedia untuk pengguna berbayar dan melalui API bagi penjanaan secara berprogram. Model ini menekankan kebolehkawalan, kekonsistenan masa, dan penyegerakan audio untuk kes penggunaan sinematik dan sosial.
POST
/v1/videos
Curl
Python
JavaScript
# Create a video with sora-2-pro
# Step 1: Submit the video generation request
echo "Submitting video generation request..."
response=$(curl -s https://api.cometapi.com/v1/videos \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -F "model=sora-2-pro" \
  -F "prompt=A calico cat playing a piano on stage")

echo "Response: $response"

# Extract video_id from response (handle JSON with spaces like "id": "xxx")
video_id=$(echo "$response" | tr -d '
' | sed 's/.*"id"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')
echo "Video ID: $video_id"

# Step 2: Poll for progress until 100%
echo ""
echo "Checking video generation progress..."
while true; do
  status_response=$(curl -s "https://api.cometapi.com/v1/videos/$video_id" \
    -H "Authorization: Bearer $COMETAPI_KEY")

  # Parse progress from "progress": "0%" format
  progress=$(echo "$status_response" | grep -o '"progress":"[^"]*"' | head -1 | sed 's/"progress":"//;s/"$//')
  # Parse status from the outer level
  status=$(echo "$status_response" | grep -o '"status":"[^"]*"' | head -1 | sed 's/"status":"//;s/"$//')

  echo "Progress: $progress, Status: $status"

  if [ "$progress" = "100%" ]; then
    echo "Video generation completed!"
    break
  fi

  if [ "$status" = "FAILURE" ] || [ "$status" = "failed" ]; then
    echo "Video generation failed!"
    echo "$status_response"
    exit 1
  fi

  sleep 10
done

# Step 3: Download the video to output directory
echo ""
echo "Downloading video to ./output/$video_id.mp4..."
mkdir -p ./output
curl -s "https://api.cometapi.com/v1/videos/$video_id/content" \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -o "./output/$video_id.mp4"

if [ -f "./output/$video_id.mp4" ]; then
  echo "Video saved to ./output/$video_id.mp4"
  ls -la "./output/$video_id.mp4"
else
  echo "Failed to download video"
  exit 1
fi

Curl Code Example

# Create a video with sora-2-pro
# Step 1: Submit the video generation request
echo "Submitting video generation request..."
response=$(curl -s https://api.cometapi.com/v1/videos \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -F "model=sora-2-pro" \
  -F "prompt=A calico cat playing a piano on stage")

echo "Response: $response"

# Extract video_id from response (handle JSON with spaces like "id": "xxx")
video_id=$(echo "$response" | tr -d '\n' | sed 's/.*"id"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')
echo "Video ID: $video_id"

# Step 2: Poll for progress until 100%
echo ""
echo "Checking video generation progress..."
while true; do
  status_response=$(curl -s "https://api.cometapi.com/v1/videos/$video_id" \
    -H "Authorization: Bearer $COMETAPI_KEY")
  
  # Parse progress from "progress": "0%" format
  progress=$(echo "$status_response" | grep -o '"progress":"[^"]*"' | head -1 | sed 's/"progress":"//;s/"$//')
  # Parse status from the outer level
  status=$(echo "$status_response" | grep -o '"status":"[^"]*"' | head -1 | sed 's/"status":"//;s/"$//')
  
  echo "Progress: $progress, Status: $status"
  
  if [ "$progress" = "100%" ]; then
    echo "Video generation completed!"
    break
  fi
  
  if [ "$status" = "FAILURE" ] || [ "$status" = "failed" ]; then
    echo "Video generation failed!"
    echo "$status_response"
    exit 1
  fi
  
  sleep 10
done

# Step 3: Download the video to output directory
echo ""
echo "Downloading video to ./output/$video_id.mp4..."
mkdir -p ./output
curl -s "https://api.cometapi.com/v1/videos/$video_id/content" \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -o "./output/$video_id.mp4"

if [ -f "./output/$video_id.mp4" ]; then
  echo "Video saved to ./output/$video_id.mp4"
  ls -la "./output/$video_id.mp4"
else
  echo "Failed to download video"
  exit 1
fi

Python Code Example

# Create a video with sora-2-pro using raw HTTP requests
import os
import time
import requests

api_key = os.environ.get("COMETAPI_KEY")
base_url = "https://api.cometapi.com/v1"

headers = {"Authorization": f"Bearer {api_key}"}

# Step 1: Submit the video generation request
print("Submitting video generation request...")
response = requests.post(
    f"{base_url}/videos",
    headers=headers,
    files={
        "model": (None, "sora-2-pro"),
        "prompt": (None, "A calico cat playing a piano on stage"),
    },
)

result = response.json()
print(f"Response: {result}")

video_id = result.get("id")
print(f"Video ID: {video_id}")

# Step 2: Poll for progress until 100%
print("\nChecking video generation progress...")
while True:
    try:
        status_response = requests.get(f"{base_url}/videos/{video_id}", headers=headers)
        status_result = status_response.json()

        # Parse progress and status from response
        data = status_result.get("data", {})
        if data is None:
            data = {}
        progress = data.get("progress", "0%")
        status = data.get("status", "unknown")

        print(f"Progress: {progress}, Status: {status}")

        if status in ["FAILURE", "failed"]:
            print("Video generation failed!")
            print(status_result)
            exit(1)

        if progress == "100%":
            print("Video generation completed!")
            break
    except Exception as e:
        print(f"Temporary error: {e}, retrying...")

    time.sleep(10)

# Step 3: Download the video to output directory
print(f"\nDownloading video to ./output/{video_id}.mp4...")
os.makedirs("./output", exist_ok=True)

video_response = requests.get(f"{base_url}/videos/{video_id}/content", headers=headers)

output_path = f"./output/{video_id}.mp4"
with open(output_path, "wb") as f:
    f.write(video_response.content)

if os.path.exists(output_path):
    file_size = os.path.getsize(output_path)
    print(f"Video saved to {output_path}")
    print(f"File size: {file_size} bytes")
else:
    print("Failed to download video")
    exit(1)

JavaScript Code Example

// Create a video with sora-2-pro using raw HTTP requests
import fs from "fs";
import path from "path";

const apiKey = process.env.COMETAPI_KEY;
const baseUrl = "https://api.cometapi.com/v1";

async function sleep(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

async function main() {
  // Step 1: Submit the video generation request
  console.log("Submitting video generation request...");

  const formData = new FormData();
  formData.append("model", "sora-2-pro");
  formData.append("prompt", "A calico cat playing a piano on stage");

  const submitResponse = await fetch(`${baseUrl}/videos`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
    },
    body: formData,
  });

  const result = await submitResponse.json();
  console.log("Response:", JSON.stringify(result, null, 2));

  const videoId = result.id;
  console.log("Video ID:", videoId);

  // Step 2: Poll for progress until 100%
  console.log("\nChecking video generation progress...");

  while (true) {
    try {
      const statusResponse = await fetch(`${baseUrl}/videos/${videoId}`, {
        headers: {
          Authorization: `Bearer ${apiKey}`,
        },
      });

      const text = await statusResponse.text();
      if (text.startsWith("<")) {
        console.log("Temporary server error, retrying...");
        await sleep(10000);
        continue;
      }

      const statusResult = JSON.parse(text);

      // Parse progress and status from response
      const data = statusResult.data || {};
      const progress = data.progress || "0%";
      const status = data.status || "unknown";

      console.log(`Progress: ${progress}, Status: ${status}`);

      if (status === "FAILURE" || status === "failed") {
        console.log("Video generation failed!");
        console.log(JSON.stringify(statusResult, null, 2));
        process.exit(1);
      }

      if (progress === "100%") {
        console.log("Video generation completed!");
        break;
      }
    } catch (e) {
      console.log(`Temporary error: ${e.message}, retrying...`);
    }

    await sleep(10000);
  }

  // Step 3: Download the video to output directory
  console.log(`\nDownloading video to ./output/${videoId}.mp4...`);

  const outputDir = "./output";
  if (!fs.existsSync(outputDir)) {
    fs.mkdirSync(outputDir, { recursive: true });
  }

  const videoResponse = await fetch(`${baseUrl}/videos/${videoId}/content`, {
    headers: {
      Authorization: `Bearer ${apiKey}`,
    },
  });

  const outputPath = path.join(outputDir, `${videoId}.mp4`);
  const videoBuffer = Buffer.from(await videoResponse.arrayBuffer());
  fs.writeFileSync(outputPath, videoBuffer);

  if (fs.existsSync(outputPath)) {
    const stats = fs.statSync(outputPath);
    console.log(`Video saved to ${outputPath}`);
    console.log(`File size: ${stats.size} bytes`);
  } else {
    console.log("Failed to download video");
    process.exit(1);
  }
}

main().catch(console.error);