models

sora-2

Markdown · JSON

sora-2

Sora 2 maakt video met gesynchroniseerde dialogen, geluidseffecten en achtergrondgeluid op basis van tekst of een referentieafbeelding. Het standaardprofiel ondersteunt visuele verkenning en conceptclips, met afzonderlijke workflows van de producent voor herbruikbare niet-menselijke personages, voortzettingen en gerichte videobewerkingen.

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

Sora 2 is het video- en audiogeneratiemodel van OpenAI voor dynamische clips op basis van een geschreven scènebeschrijving of een referentieafbeelding. Het genereert de beeldenreeks samen met gesynchroniseerde spraak, effecten en achtergrondgeluid. Het standaardprofiel Sora 2 is bedoeld voor visuele verkenning, conceptontwikkeling, prototypes en ruwe montages. Sora 2 Pro is een afzonderlijke editie die op een grotere beeldgetrouwheid en afwerking op hogere resolutie gericht is.

Beschrijf een shot dat te zien en te horen is

De promptinggids van de maker bouwt een bruikbare briefing op rond kadrering, onderwerp, actie, omgeving en licht. Geef de scène een samenhangende visuele stijl en beschrijf de beweging vervolgens in duidelijke momenten. Een origineel productconcept kan een klein mechanisch voorwerp tonen dat eenmaal op een werkbank ronddraait terwijl de camera langzaam dichterbij komt, met zacht raamlicht en een subtiel motorgeluid. Geef aan wat de kijker moet opmerken en hoe de actie eindigt.

Houd de camerabeweging en de actie van het onderwerp in elk shot begrijpelijk. Een ingewikkelde sequentie kan in afzonderlijke shotblokken worden opgedeeld, elk met een eigen kadrering, actie en belichting. Behoud dezelfde onderwerpdetails en hetzelfde kleurenpalet wanneer meerdere clips samen één sequentie moeten vormen. De gids benadrukt dat kortere shots de aanwijzingen doorgaans betrouwbaarder volgen en dat herhaalde generaties met dezelfde prompt verschillende takes opleveren.

Bij de lancering van het model worden verbeterd fysiek gedrag en betere continuïteit tussen shots beschreven, onder meer in realistische, filmische en animestijlen. Dit zijn beoogde mogelijkheden die je moet aansturen en beoordelen. Controleer beweging, contact tussen voorwerpen, verhoudingen en continuïteit in plaats van aan te nemen dat een geloofwaardig eerste beeld een samenhangende sequentie garandeert. Vereenvoudig een onduidelijke actie en geef die een zichtbaar begin en einde.

Stuur dialoog en geluid afzonderlijk aan

Geef gesproken tekst apart van de visuele beschrijving op en label de sprekers consequent. Houd dialogen kort genoeg om bij de actie en de beoogde cliplengte te passen. Laat in een animatie met twee personages een korte vraag en een kort antwoord op elkaar volgen, in plaats van een lange toespraak in een kort shot te willen verwerken. De gids waarschuwt dat ingewikkelde, lange dialogen het tempo en de synchronisatie kunnen verstoren.

Beschrijf het klanklandschap dat bij de scène hoort: het geluid van een kleine beweging, de omgevingsklank van een ruimte of het ritme van een omgevingseffect. Leg uit welk geluid met de actie moet samenvallen. Beluister de resulterende spraak en effecten samen met het beeld en controleer de toewijzing aan sprekers, de bewoording en de timing. Gesynchroniseerde audio maakt deel uit van de gegenereerde clip en is geen afzonderlijk tekstantwoord.

Formaat, duur en een opening op basis van een afbeelding

De gedocumenteerde uitvoerformaten van het standaardmodel zijn 720×1280 staand en 1280×720 liggend. Formaten met een hogere resolutie uit het Pro-profiel mogen niet aan standaard Sora 2 worden toegeschreven. Formaat en duur zijn expliciete aanvraaginstellingen; een ander formaat in de prompt schrijven of om een langere film vragen, wijzigt die instellingen niet. De referentie voor het aanmaken vermeldt clipinstellingen van 4, 8 en 12 seconden. Kies dus een kort, afgebakend actiemoment wanneer je een shot voorbereidt. De uitgebreide workflow van de producent documenteert ook clipinstellingen van 16 en 20 seconden.

Een referentieafbeelding legt het eerste beeld vast en de tekst beschrijft wat er daarna gebeurt. De producent ondersteunt referenties in JPEG, PNG en WebP en vereist dat de afbeelding overeenkomt met het beoogde videoformaat. Bereid het onderwerp, de omgeving en de compositie in die openingsafbeelding voor en vraag vervolgens om een specifieke beweging. Dit is een referentie voor het openingsbeeld, geen garantie dat elk detail gedurende de hele clip overeenkomt.

Herbruikbare niet-menselijke personages

De uitgebreide workflow van de producent kan een herbruikbaar personagebestand aanmaken op basis van een korte referentievideo van een dier, mascotte of voorwerp. De voorbereidingsrichtlijnen vragen om een MP4-clip van ongeveer twee tot vier seconden, 720p tot 1080p, in 16:9 of 9:16. Dezelfde beeldverhouding voor bron en uitvoer helpt een uitgerekt uiterlijk te vermijden. De generatie kan naar maximaal twee personages verwijzen.

Bewaar de personage-identifier en vermeld de naam in de prompt; alleen de identifier doorgeven is volgens de gids geen volledige voorbereiding. Personagebestanden kunnen samen met een generatie op basis van een afbeelding worden gebruikt, maar videoverlengingen aanvaarden ze niet. De producent blokkeert standaard uploads van personages die op mensen lijken en weigert in de gedocumenteerde API-flow referentieafbeeldingen met menselijke gezichten. De functies voor persoonlijke personages in de Sora-app vormen een afzonderlijke productworkflow.

Zet een voltooide clip voort of bewerk die

Een verlenging gebruikt een voltooide bronvideo en een prompt voor de voortzetting, met de volledige bronclip als context voor beweging, camerarichting en continuïteit van de scène. De gids beschrijft toevoegingen van maximaal 20 seconden per verlenging. De gedocumenteerde invoer voor verlenging bestaat uit de bronvideo en tekst; extra personage- of afbeeldingsreferenties zijn uitgesloten van die modus. Beschrijf hoe de bestaande actie doorgaat in plaats van zonder overgang een ongerelateerde scène te introduceren.

Videobewerking richt zich op een duidelijke wijziging aan een bestaande clip. Een gerichte herwerking kan de kleur van een voorwerp of het kleurenpalet van de scène aanpassen en de rest van het shot behouden. De gids van de producent beveelt één goed afgebakende wijziging per keer aan en maakt onderscheid tussen het bewerken van een gegenereerde video en het uploaden van willekeurig beeldmateriaal, waarvoor een afzonderlijke toelatingsvoorwaarde geldt. Bewaar de voltooide bron en bepaal de exact gewenste wijziging voordat je nog een bewerking uitvoert.

Rendertaken en de afgewerkte video

De gedocumenteerde videoflow van de producent verloopt asynchroon: een ingediende taak kan in de wachtrij staan of in uitvoering zijn voordat die voltooid wordt of mislukt. Een voltooide taak levert een MP4-video op; miniaturen en sprite sheets ondersteunen voorvertoningen en het doorbladeren. Houd de taakidentiteit gekoppeld aan de prompt, referenties en teruggegeven bestanden. Een eerste taakantwoord is niet de uiteindelijke afspeelbare video.

De gewone downloadworkflow vermeldt een geldigheidsduur van één uur voor download-URL's. De uitgebreide batchworkflow bereidt onafhankelijke JSON-renderaanvragen voor met stabiele itemidentifiers, geüploade referenties en een resultaat dat aan elk shot teruggekoppeld wordt; de voltooide bestanden hebben een afzonderlijke downloadperiode van maximaal 24 uur. Bewaar de afgewerkte clip tijdig en beoordeel het werkelijke beeld en geluid voordat je die als een geselecteerde take beschouwt.

De gedocumenteerde API-inhoudsbeperkingen van de producent vereisen materiaal dat geschikt is voor een publiek jonger dan 18 jaar en weigeren auteursrechtelijk beschermde personages of muziek en het genereren van echte personen. Bereid de scène en referenties daarop voor. Het directe modelresultaat is video met audio, geen gegenereerde stilstaande beelden, een gesprekstoolantwoord of een film van onbeperkte lengte. Behoud de exacte identiteit van het standaardmodel en de aanvaarde bronclip wanneer je een visueel concept voortzet.

Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2

sora-2

Overig /sora-2

Aan de slag

Sora 2 maakt video met gesynchroniseerde dialogen, geluidseffecten en achtergrondgeluid op basis van tekst of een referentieafbeelding. Het standaardprofiel ondersteunt visuele verkenning en conceptclips, met afzonderlijke workflows van de producent voor herbruikbare niet-menselijke personages, voortzettingen en gerichte videobewerkingen.

Toegestane invoer
Tekst
Resultaten
json · sse

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Chat Completions POST /v1/chat/completions
Invoer
text
Uitvoer
json, sse
Uitvoerformaat
JSON of text/event-stream
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
sora-2
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limietenStandaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limietenStandaard—
Veldmessages[].contentTypestringVereisteVereistWaarden en limietenStandaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Combinaties van invoermaterialen

owned_text_messages

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages
Parametermaterial_typesContracttext
ParametermessagesContractarray met berichten met role en content als letterlijke tekenreeks
Parameterfile_materialContractWerkelijk UTF-8-materiaal kan als letterlijke tekenreeksinhoud worden ingevoegd; er wordt geen bestandsreferentie uit afgeleid.
Parameteroptional_controlsContractstream

Levenscyclus: synchronous_json_or_sse

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus geselecteerd is
Flex-modus
Niet opgegeven Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt

Ailoot-tarieven

Prijzen per configuratie

ConfiguratieTariefstaffelKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefKosten
Invoer · Invoertokens $0 / 1K tokens
Uitvoer · Uitvoertokens $0.2 / 1K tokens
Invoer · Cache lezen $0 / 1K tokens
Invoer · Cache schrijven $0 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Chat Completions

curl · volledige JSON-responsPython SDK · volledige JSON-responscurl · bewaar de SSE-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
from pathlib import Path
print(Path("result.json").read_text(encoding="utf-8"))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="sora-2", messages=[{"role":"user","content":"hello"}], stream=False)
import json
from pathlib import Path

data = result.to_dict(mode="json")
Path("result.json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":true}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.sse

Resultaten ophalen en opslaan

Ailoot Ultra · Chat Completions

JSON of text/event-stream

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar de volledige JSON- of SSE-bytes, de antwoordheaders, het teruggestuurde verbruik en alle aangeleverde resultaatvelden. Er wordt geen modelspecifieke uitvoerfamilie aangenomen.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar het oorspronkelijke antwoord en de identiteit van de poging; hieruit wordt geen nieuwe statusopvraging voor een opdracht of nieuwe indiening afgeleid.

Antwoordvelden
VeldTypeBetekenis
Veldcomplete response JSONTypeobjectBetekenisBewaar elk teruggestuurd veld zonder een modelspecifieke resultaatfamilie aan te nemen.
VeldSSE data eventsTypestreamBetekenisBewaar elke teruggestuurde gebeurtenis en eindmarkering zonder uitsluitend tekstvelden te selecteren.

Aliasnamen

Modelaliasnamen

Ailoot Ultra sora-2

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

sora-2

Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2

sora-2

Overig /sora-2

Aan de slag

Sora 2 maakt video met gesynchroniseerde dialogen, geluidseffecten en achtergrondgeluid op basis van tekst of een referentieafbeelding. Het standaardprofiel ondersteunt visuele verkenning en conceptclips, met afzonderlijke workflows van de producent voor herbruikbare niet-menselijke personages, voortzettingen en gerichte videobewerkingen.

Toegestane invoer
Tekst
Resultaten
json · sse

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Anthropic Messages POST /v1/messages
Invoer
text
Uitvoer
json, sse
Uitvoerformaat
JSON of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
sora-2
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limietenStandaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
user, assistant
Standaard—
Veldmessages[].contentTypestringVereisteVereistWaarden en limietenStandaard—
Veldmax_tokensTypeintegerVereisteVereistWaarden en limietenStandaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Combinaties van invoermaterialen

Tekst · UTF-8-tekst

messages[].content als tekenreeks

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages, max_tokens
Parameteroptional_controlsContractstream
Parametermaterial_typesContracttext
Parametertext_file_materialContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht.

Levenscyclus: synchronous_or_streamed

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus geselecteerd is
Flex-modus
Niet opgegeven Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt

Ailoot-tarieven

Prijzen per configuratie

ConfiguratieTariefstaffelKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefKosten
Invoer · Invoertokens $0 / 1K tokens
Uitvoer · Uitvoertokens $0.2 / 1K tokens
Invoer · Cache lezen $0 / 1K tokens
Invoer · Cache schrijven $0 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Anthropic Messages

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op
{
  "model": "sora-2",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Resultaten ophalen en opslaan

Ailoot Ultra · Anthropic Messages

JSON of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar alle inhoudsblokken, handtekeningen van redeneringen en werkelijke toolgebruik-ID’s. Voeg alle SSE-blokdelta’s samen; het eerste tekstblok is niet de volledige uitvoer.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldmodelTypestring
Veldcontent[]Typetext|thinking|tool_use|other content block
Veldstop_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot Ultra sora-2

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

sora-2

FAQ · sora-2
Welke invoer en resultaten zijn beschikbaar?

POST /v1/chat/completions · sora-2: text → json, sse

POST /v1/messages · sora-2: text → json, sse

Welke velden gebruikt het verzoek?

POST /v1/chat/completions · sora-2: model, messages, stream

POST /v1/messages · sora-2: model, messages, max_tokens, stream

Meer details

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement
Kies een abonnement met korting voor je terugkerende verzoeken.
Promotiecode tot 50%
Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.
Kosten in de geschiedenis
Model, tokens en bedrag worden per verzoek bewaard.

Kies een abonnement · Bekijk modelprijzen

Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie
Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.
Resellerlicentie
Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.
Documenten op de site
Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

Vraag een resellerlicentie aan · Aanbodvoorwaarden en licentieovereenkomst