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.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
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-2Aan 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
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten sora-2 | Standaard— |
Veldmessages | Typemessage[] | VereisteVereist | Waarden en limieten | Standaard— |
Veldmessages[].role | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldmessages[].content | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldstream | Typeboolean | VereisteOptioneel | Waarden en limieten | Standaardfalse |
Combinaties van invoermaterialen
owned_text_messages
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, messages |
Parametermaterial_types | Contracttext |
Parametermessages | Contractarray met berichten met role en content als letterlijke tekenreeks |
Parameterfile_material | ContractWerkelijk UTF-8-materiaal kan als letterlijke tekenreeksinhoud worden ingevoegd; er wordt geen bestandsreferentie uit afgeleid. |
Parameteroptional_controls | Contractstream |
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
| Configuratie | Tariefstaffel | Kosten |
|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Kosten 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
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
| Veld | Type | Betekenis |
|---|---|---|
Veldcomplete response JSON | Typeobject | BetekenisBewaar elk teruggestuurd veld zonder een modelspecifieke resultaatfamilie aan te nemen. |
VeldSSE data events | Typestream | BetekenisBewaar 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
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2Aan 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
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten sora-2 | Standaard— |
Veldmessages | Typemessage[] | VereisteVereist | Waarden en limieten | Standaard— |
Veldmessages[].role | Typestring | VereisteVereist | Waarden en limieten user, assistant | Standaard— |
Veldmessages[].content | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldmax_tokens | Typeinteger | VereisteVereist | Waarden en limieten | Standaard— |
Veldstream | Typeboolean | VereisteOptioneel | Waarden en limieten | Standaardfalse |
Combinaties van invoermaterialen
Tekst · UTF-8-tekst
messages[].content als tekenreeks
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, messages, max_tokens |
Parameteroptional_controls | Contractstream |
Parametermaterial_types | Contracttext |
Parametertext_file_material | ContractLees 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
| Configuratie | Tariefstaffel | Kosten |
|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Kosten 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
{
"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
| Veld | Type |
|---|---|
Veldid | Typestring |
Veldmodel | Typestring |
Veldcontent[] | Typetext|thinking|tool_use|other content block |
Veldstop_reason | Typestring|null |
Veldusage | Typeobject |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende 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
FAQ · sora-2
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- Welke velden gebruikt het verzoek?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream