sora-2
Sora 2 maakt video met gesynchroniseerde dialoog, 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, voortzetting 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 schriftelijke 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 gericht op grotere visuele getrouwheid en afwerking met een hogere resolutie.
Beschrijf een shot dat te zien en te horen is
De promptgids 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 daarna de beweging in duidelijke momenten. Een origineel productconcept kan een klein mechanisch object tonen dat eenmaal ronddraait op een werkbank 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 reeks kan worden verdeeld in afzonderlijke shotblokken, elk met eigen kadrering, actie en belichting. Behoud dezelfde onderwerpdetails en hetzelfde kleurenpalet wanneer meerdere clips samen één reeks moeten vormen. De gids benadrukt dat kortere shots de aanwijzingen doorgaans betrouwbaarder volgen en dat herhaald genereren met dezelfde prompt verschillende takes oplevert.
Bij de introductie van het model worden verbeterd fysiek gedrag en continuïteit tussen shots beschreven, onder meer in realistische, filmische en animestijlen. Dit zijn beoogde mogelijkheden die je moet aansturen en controleren. Beoordeel beweging, contact tussen objecten, verhoudingen en continuïteit in plaats van aan te nemen dat een aannemelijk eerste frame een samenhangende reeks garandeert. Vereenvoudig een onduidelijke actie en geef die een zichtbaar begin en einde.
Stuur dialoog en geluid afzonderlijk aan
Specificeer gesproken tekst los van de visuele beschrijving en label de sprekers consequent. Houd de dialoog kort genoeg om bij de actie en de beoogde cliplengte te passen. Wissel voor een animatie met twee personages een korte vraag en een kort antwoord af, in plaats van een lange toespraak in een kort shot te willen onderbrengen. De gids waarschuwt dat complexe, lange dialoog het tempo en de synchronisatie kan verstoren.
Beschrijf de geluidsomgeving die bij de scène hoort: het geluid van een kleine beweging, het omgevingsgeluid in 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 sprekerstoewijzing, formulering en timing. Gesynchroniseerde audio maakt deel uit van de gegenereerde clip en is geen afzonderlijk tekstantwoord.
Formaat, duur en een door een afbeelding gestuurde opening
De gedocumenteerde uitvoerformaten van het standaardmodel zijn 720×1280 staand en 1280×720 liggend. De formaten met hogere resolutie van het Pro-profiel mogen niet aan standaard Sora 2 worden toegeschreven. Formaat en duur zijn expliciete verzoekinstellingen; een ander formaat noemen of in de prompt om een langere film vragen verandert die instellingen niet. De creatiereferentie vermeldt clipinstellingen van 4, 8 en 12 seconden, dus kies bij het voorbereiden van een shot een kort, afgebakend actiemoment. De uitgebreide workflow van de producent documenteert ook clipinstellingen van 16 en 20 seconden.
Een referentieafbeelding verankert het eerste frame en de tekst beschrijft wat daarna gebeurt. De producent ondersteunt JPEG-, PNG- en WebP-referenties en vereist dat de afbeelding overeenkomt met het doelvideoformaat. Bereid het onderwerp, de omgeving en de compositie in dat openingsbeeld voor en vraag vervolgens om een specifieke beweging. Dit is een referentie voor het openingsframe, geen garantie dat elk detail gedurende de hele clip overeenkomt.
Herbruikbare niet-menselijke personages
De uitgebreide workflow van de producent kan een herbruikbaar personagebestand maken uit een korte referentievideo van een dier, mascotte of object. De voorbereidingsrichtlijnen vragen om een MP4-clip van ongeveer twee tot vier seconden, 720p tot 1080p, in 16:9 of 9:16. Een overeenkomstige beeldverhouding van bron en uitvoer helpt een uitgerekt uiterlijk te voorkomen. De generatie kan naar maximaal twee personages verwijzen.
Bewaar de personage-ID en noem de naam ervan in de prompt; alleen de ID doorgeven is niet de volledige voorbereiding volgens de gids. Personagebestanden kunnen worden gebruikt bij een generatie op basis van een afbeelding, maar videoverlengingen accepteren ze niet. De producent blokkeert standaard uploads van personages met een menselijke gelijkenis en wijst referentieafbeeldingen met menselijke gezichten af in de gedocumenteerde API-workflow. 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 voortzettingsprompt, waarbij de hele bronclip als context dient voor beweging, camerarichting en scènecontinuïteit. De gids beschrijft toevoegingen van maximaal 20 seconden per verlenging. De gedocumenteerde invoer voor verlenging bestaat uit de bronvideo en tekst; aanvullende personage- of afbeeldingsreferenties zijn in die modus uitgesloten. Beschrijf hoe de bestaande actie verdergaat in plaats van zonder overgang een niet-gerelateerde scène te introduceren.
Videobewerking richt zich op een duidelijke verandering in een bestaande clip. Een gerichte herziening kan de kleur van een object of het kleurenpalet van de scène wijzigen, terwijl de rest van het shot behouden blijft. De gids van de producent beveelt één goed gedefinieerde verandering tegelijk 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 identificeer de exacte benodigde herziening voordat je nog een bewerking uitvoert.
Rendertaken en de voltooide video
De gedocumenteerde videoworkflow van de producent is asynchroon: een ingediende taak kan in de wachtrij staan of worden uitgevoerd voordat die voltooid wordt of mislukt. Een voltooide taak levert een MP4-video op; miniaturen en sprite-sheets ondersteunen voorvertoningen en bladeren door resultaten. Houd de taak-ID gekoppeld aan de prompt, referenties en teruggegeven bestanden. Een eerste taakrespons is niet de uiteindelijke afspeelbare video.
De gewone downloadworkflow beschrijft een geldigheidsduur van één uur voor download-URL's. De uitgebreide batchworkflow bereidt onafhankelijke JSON-renderverzoeken voor met stabiele item-ID's, geüploade referenties en een resultaat dat aan elk shot wordt gekoppeld; de voltooide bestanden hebben een afzonderlijke downloadperiode van maximaal 24 uur. Sla de voltooide clip tijdig op en controleer het daadwerkelijke beeld en geluid voordat je die als geselecteerde take beschouwt.
De gedocumenteerde API-inhoudsbeperkingen van de producent vereisen materiaal dat geschikt is voor publiek onder 18 jaar en wijzen auteursrechtelijk beschermde personages of muziek en het genereren van echte personen af. Bereid de scène en referenties daarop voor. Het directe modelresultaat is video met audio, geen gegenereerde stilstaande beelden, een conversationele toolrespons of een onbeperkte film. Behoud de exacte identiteit van het standaardmodel en de geaccepteerde 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 dialoog, 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, voortzetting en gerichte videobewerkingen.
- Toegestane invoer
- Tekst
- Resultaten
- json · sse
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Chat Completions POST /v1/chat/completions
- Invoertypen
text- Uitvoertypen
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 | Contractberichtenarray met role en een letterlijke tekenreeks voor content |
Parameterfile_material | ContractDaadwerkelijk UTF-8-materiaal kan in content worden ingevoegd als letterlijke tekenreeks; er wordt geen bestandsreferentie 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 is geselecteerd
- Flexmodus
- Niet opgegeven Wanneer de modus flex is geselecteerd
- Maximale redeneerinspanning
- Niet opgegeven Wanneer bij 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 alle JSON- of SSE-bytes, antwoordheaders, geretourneerd gebruik en alle aangeleverde resultaatvelden. Er wordt geen modelspecifieke uitvoerfamilie verondersteld.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar het oorspronkelijke antwoord en de pogingidentiteit; er wordt geen nieuwe taakpolling of herindiening afgeleid.
Antwoordvelden
| Veld | Type | Betekenis |
|---|---|---|
Veldcomplete response JSON | Typeobject | BetekenisBewaar elk geretourneerd veld zonder een modelspecifieke resultaatfamilie te veronderstellen. |
VeldSSE data events | Typestream | BetekenisBewaar elke geretourneerde 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 dialoog, 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, voortzetting en gerichte videobewerkingen.
- Toegestane invoer
- Tekst
- Resultaten
- json · sse
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Invoertypen
text- Uitvoertypen
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 is geselecteerd
- Flexmodus
- Niet opgegeven Wanneer de modus flex is geselecteerd
- Maximale redeneerinspanning
- Niet opgegeven Wanneer bij 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