ModellerPriserBedrift
500+ AI-modell API, Alt I Én API. Bare I CometAPI
Modeller API
Utvikler
HurtigstartDokumentasjonAPI Dashbord
Selskap
Om ossBedrift
Ressurser
AI-modellerBloggEndringsloggStøtte
TjenestevilkårPersonvernerklæring
© 2026 CometAPI · All rights reserved
Home/Models/OpenAI/Sora 2 Pro
O

Sora 2 Pro

Per sekund:$0.24
Sora 2 Pro er vår mest avanserte og kraftigste mediegenereringsmodell, som kan generere videoer med synkronisert lyd. Den kan skape detaljerte, dynamiske videoklipp fra naturlig språk eller bilder.
Ny
Kommersiell bruk
Playground
Oversikt
Funksjoner
Priser
API

Nøkkelfunksjoner

  • Multimodal generering (video + lyd) — Sora-2-Pro genererer videobilder sammen med synkronisert lyd (dialog, omgivelseslyd, SFX) i stedet for å produsere video og lyd separat.
  • Høyere kvalitet / «Pro»-nivå — justert for høyere visuell kvalitet, mer krevende opptak (kompleks bevegelse, okklusjon og fysiske interaksjoner), samt lengre konsistens per scene enn Sora-2 (ikke-Pro). Det kan ta lengre tid å rendre enn standardmodellen Sora-2.
  • Allsidige inndata — støtter rene tekstprompter, og kan godta bildeinputrammer eller referansebilder for å styre komposisjonen (input_reference-arbeidsflyter).
  • Cameos / innsetting av likhet — kan sette inn en brukers fangede likhet i genererte scener med samtykkearbeidsflyter i appen.
  • Fysisk plausibilitet: forbedret objektpermanens og bevegelseskvalitet (f.eks. momentum, oppdrift), som reduserer urealistiske «teleporterings»-artefakter som var vanlige i tidligere systemer.
  • Kontrollerbarhet: støtter strukturerte prompter og instruksjoner på opptaksnivå slik at skapere kan spesifisere kamera, lyssetting og sekvenser med flere opptak.

Tekniske detaljer og integrasjonsflate

Modellfamilie: Sora 2 (base) og Sora 2 Pro (høykvalitetsvariant).
Inndatamodaliteter: tekstprompter, bildereferanse og kort innspilt cameo-video/-lyd for likhet.
Utdataformater: kodet video (med lyd) — parametere eksponeres gjennom endepunktene /v1/videos (modellvalg via model: "sora-2-pro"). API-flaten følger OpenAIs familie av videoendepunkter for oppretting/henting/listing/sletting.

Trening og arkitektur (offentlig sammendrag): OpenAI beskriver Sora 2 som trent på videodata i stor skala med ettertrening for å forbedre verdenssimulering; detaljer (modellstørrelse, nøyaktige datasett og tokenisering) er ikke offentlig oppgitt i detalj linje for linje. Forvent tung beregning, spesialiserte videotokenizere/-arkitekturer og multimodale justeringskomponenter.


API-endepunkter og arbeidsflyt: viser en jobb-basert arbeidsflyt: send en POST-forespørsel for oppretting (model="sora-2-pro"), motta en jobb-id eller lokasjon, og poll deretter eller vent på fullføring og last ned de resulterende filene. Vanlige parametere i publiserte eksempler inkluderer prompt, seconds/duration, size/resolution og input_reference for bildestyrte starter.

Typiske parametere :

  • model: "sora-2-pro"
  • prompt: naturlig språkbeskrivelse av scenen, eventuelt med dialogsignaler
  • seconds / duration: målklipplengde (Pro støtter høyest kvalitet innen tilgjengelige varigheter)
  • size / resolution: rapporter fra miljøet indikerer at Pro støtter opptil 1080p i mange brukstilfeller.

Innholdsinndata: bildefiler (JPEG/PNG/WEBP) kan leveres som et bilde eller en referanse; når de brukes, bør bildet samsvare med måloppløsningen og fungere som et komposisjonsanker.

Renderingsatferd: Pro er justert for å prioritere bildefor-bilde-koherens og realistisk fysikk; dette innebærer vanligvis lengre beregningstid og høyere kostnad per klipp enn ikke-Pro-varianter.

Referanseytelse

Kvalitative styrker: OpenAI har forbedret realisme, fysikkonsistens og synkronisert lyd** sammenlignet med tidligere videomodeller. Andre VBench-resultater indikerer at Sora-2 og derivater ligger på eller nær toppen blant samtidige lukkede kildemodeller når det gjelder temporal koherens.

Uavhengig timing/gjennomstrømming (eksempelbenchmark): Sora-2-Pro hadde i gjennomsnitt ~2,1 minutter for 20-sekunders 1080p-klipp i én sammenligning, mens en konkurrent (Runway Gen-3 Alpha Turbo) var raskere (~1,7 minutter) på samme oppgave — avveiningene er kvalitet mot renderingslatens og plattformoptimalisering.

Begrensninger (praktiske og sikkerhetsmessige)

  • Ikke perfekt fysikk/konsistens — forbedret, men ikke feilfri; artefakter, unaturlig bevegelse eller lydsynkroniseringsfeil kan fortsatt forekomme.
  • Varighets- og beregningsbegrensninger — lange klipp er beregningsintensive; mange praktiske arbeidsflyter begrenser klipp til korte varigheter (f.eks. fra enkeltsekunder til lave tosifrede antall sekunder for utdata av høy kvalitet).
  • Personvern-/samtykkerisiko — innsetting av likhet («cameos») medfører samtykke- og feil-/desinformasjonsrisiko; OpenAI har eksplisitte sikkerhetskontroller og tilbakekallingsmekanismer i appen, men ansvarlig integrasjon er påkrevd.
  • Kostnad og latens — rendering i Pro-kvalitet kan være dyrere og tregere enn lettere modeller eller konkurrenter; ta hensyn til fakturering per sekund/per rendering og køsetting.
  • Sikkerhetsfiltrering av innhold — generering av skadelig eller opphavsrettsbeskyttet innhold er begrenset; modellen og plattformen inkluderer sikkerhetslag og moderering.

Typiske og anbefalte bruksområder

Bruksområder:

  • Markedsføring og annonseprototyper — skap raskt filmatiske konseptbevis.
  • Previsualisering — storyboards, kamerablokkering, visualisering av opptak.
  • Kort innhold for sosiale medier — stiliserte klipp med synkronisert dialog og SFX.
  • Hvordan få tilgang til Sora 2 Pro API

Trinn 1: Registrer deg for API-nøkkel

Logg inn på cometapi.com. Hvis du ikke er bruker hos oss ennå, vennligst registrer deg først. Logg inn på CometAPI-konsollen din. Hent API-nøkkelen for tilgang til grensesnittet. Klikk på «Add Token» under API-token i det personlige senteret, hent token-nøkkelen: sk-xxxxx og send inn.

cometapi-key

Trinn 2: Send forespørsler til Sora 2 Pro API

Velg endepunktet «sora-2-pro» for å sende API-forespørselen og angi forespørselsteksten. Forespørselsmetoden og forespørselsteksten hentes fra API-dokumentasjonen på nettstedet vårt. Nettstedet vårt tilbyr også Apifox-testing for enkelhets skyld. Erstatt <YOUR_API_KEY> med din faktiske CometAPI-nøkkel fra kontoen din. Base URL er den offisielle Create video

Sett inn spørsmålet eller forespørselen din i content-feltet — dette er det modellen vil svare på. Behandle API-responsen for å hente det genererte svaret.

Trinn 3: Hent og bekreft resultater

Behandle API-responsen for å hente det genererte svaret. Etter behandling svarer API-et med oppgavestatus og utdata.

  • Intern opplæring / simulering — generer scenariovisualiseringer for RL- eller robotikkforskning (med forsiktighet).
  • Kreativ produksjon — når det kombineres med menneskelig redigering (sammensying av korte klipp, fargegradering, erstatning av lyd).

FAQ

Does Sora 2 Pro generate synchronized audio with video?

Ja, Sora 2 Pro genererer videobilder sammen med synkronisert lyd, inkludert dialog, omgivelseslyd og lydeffekter—ikke produsert hver for seg, men som en samlet utdata.

What resolution and duration does Sora 2 Pro support?

Sora 2 Pro støtter opptil 1080p oppløsning. Den er optimalisert for kortklipp i høy kvalitet, vanligvis i området fra ensifrede til lave tosifrede sekunder for høyest mulig kvalitet.

How does Sora 2 Pro differ from standard Sora 2?

Sora 2 Pro er fininnstilt for høyere visuell fidelitet, håndterer mer krevende tagninger (kompleks bevegelse, okklusjon, fysiske interaksjoner) og opprettholder lengre konsistens per scene—på bekostning av lengre renderingstider.

Can Sora 2 Pro use reference images to guide video generation?

Ja, Sora 2 Pro støtter input_reference-arbeidsflyter der JPEG/PNG/WEBP-bilder fungerer som komposisjonsankre for å styre startbilde eller stil på den genererte videoen.

Does Sora 2 Pro support likeness injection (cameos)?

Ja, Sora 2 Pro kan sette inn en brukers avbildede utseende i genererte scener. OpenAI har innebygde samtykkearbeidsflyter og mekanismer for tilbakekalling for å håndtere personvern- og misbruksrisikoer.

How long does Sora 2 Pro take to render a video?

Referansetester viser at Sora 2 Pro i snitt bruker omtrent 2.1 minutter for et 20-sekunders 1080p-klipp. Pro prioriterer kvalitet over hastighet, så forvent lengre renderingstider enn standard Sora 2.

What physics improvements does Sora 2 Pro offer?

Sora 2 Pro forbedrer objektpermanens og bevegelsesfidelitet—impuls, oppdrift og fysiske interaksjoner fremstår mer realistiske, med færre 'teleporting'-artefakter som var vanlige i tidligere videomodeller.

When should I choose Sora 2 Pro over Google Veo 3?

Velg Sora 2 Pro for integrasjon i OpenAI-økosystemet, likeness-injeksjon og komplekse fysiske scener. Veo 3 kan tilby raskere generering og annen prissetting—evaluer basert på dine latens- og budsjettbehov.

Priser for Sora 2 Pro

Utforsk konkurransedyktige priser for Sora 2 Pro, designet for å passe ulike budsjetter og bruksbehov. Våre fleksible planer sikrer at du bare betaler for det du bruker, noe som gjør det enkelt å skalere etter hvert som kravene dine vokser. Oppdag hvordan Sora 2 Pro kan forbedre prosjektene dine samtidig som kostnadene holdes håndterbare.
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

Eksempelkode og API for Sora 2 Pro

Sora-2-pro er OpenAIs flaggskipmodell for video- og lydgenerering, utviklet for å lage korte, svært realistiske videoklipp med synkronisert dialog, lydeffekter og sterkere fysisk/verdenssimulering enn tidligere videomodeller. Den er posisjonert som «Pro»-varianten med høyere kvalitet, tilgjengelig for betalende brukere og via API-et for programmatisk generering. Modellen legger vekt på kontrollerbarhet, tidsmessig sammenheng og lydsynkronisering for filmatiske og sosiale bruksområder.
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);