sora-2
Sora 2 lager video med synkronisert dialog, lydeffekter og bakgrunnslyd fra tekst eller en bildereferanse. Standardprofilen støtter visuell utforsking og konseptklipp, med egne arbeidsflyter hos produsenten for gjenbrukbare ikke-menneskelige figurer, videreføring og avgrensede videoredigeringer.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
Sora 2 er OpenAIs modell for video- og lydgenerering, som lager dynamiske klipp fra en skriftlig scenebeskrivelse eller en bildereferanse. Den genererer bildesekvensen sammen med synkronisert tale, effekter og bakgrunnslyd. Standardprofilen Sora 2 er rettet mot visuell utforsking, konseptutvikling, prototyper og grovklipp. Sora 2 Pro er en egen utgave rettet mot høyere visuell kvalitet og ferdigstilling i høyere oppløsning.
Beskriv en innstilling som kan ses og høres
Produsentens promptveiledning bygger en nyttig beskrivelse rundt bildeutsnitt, motiv, handling, omgivelser og lys. Gi scenen en sammenhengende visuell stil, og beskriv deretter bevegelsen i tydelige trinn. Et originalt produktkonsept kan vise en liten mekanisk gjenstand som roterer én gang på en arbeidsbenk mens kameraet beveger seg langsomt nærmere, med mykt vinduslys og en dempet motorlyd. Angi hva seeren skal legge merke til, og hvordan handlingen slutter.
Sørg for at kamerabevegelsen og motivets handling i hver innstilling er forståelige. En komplisert sekvens kan deles inn i egne innstillingsblokker, hver med sitt eget bildeutsnitt, sin handling og sin belysning. Behold de samme motivdetaljene og den samme paletten når flere klipp skal danne én sekvens. Veiledningen understreker at kortere innstillinger vanligvis følger regien mer pålitelig, og at gjentatt generering med samme prompt gir forskjellige opptaksvarianter.
Lanseringen av modellen beskriver forbedret fysisk oppførsel og kontinuitet mellom innstillinger, blant annet i realistisk stil, filmstil og animestil. Dette er tiltenkte egenskaper som må styres og undersøkes. Gjennomgå bevegelse, kontakt mellom objekter, proporsjoner og kontinuitet, fremfor å anta at et troverdig første bilde garanterer en sammenhengende sekvens. Hvis en handling er uklar, forenkler du den og gir den en synlig begynnelse og slutt.
Regisser dialog og lyd hver for seg
Angi replikkene atskilt fra den visuelle beskrivelsen, og bruk konsekvente etiketter for dem som snakker. Hold dialogen kort nok til å passe til handlingen og den tiltenkte klipplengden. For en animasjon med to figurer kan du veksle mellom et kort spørsmål og svar, fremfor å be en kort innstilling romme en lang tale. Veiledningen advarer om at komplisert, lang dialog kan forstyrre tempo og synkronisering.
Beskriv lydbildet som hører til scenen: lyden av en liten bevegelse, rommets bakgrunnslyd eller rytmen i en miljøeffekt. Forklar hvilken lyd som skal falle sammen med handlingen. Lytt til talen og effektene sammen med bildet, og kontroller hvem som snakker, ordlyden og timingen. Synkronisert lyd inngår i det genererte klippet og er ikke et eget tekstsvar.
Størrelse, varighet og en bildestyrt åpning
Standardmodellens dokumenterte utdatastørrelser er 720×1280 i stående format og 1280×720 i liggende format. Størrelser med høyere oppløsning i Pro-profilen skal ikke tilskrives standardmodellen Sora 2. Størrelse og varighet er uttrykkelige forespørselsinnstillinger; å skrive en annen størrelse eller be om en lengre film i prompten endrer ikke disse innstillingene. Opprettelsesreferansen oppgir klippinnstillinger på 4, 8 og 12 sekunder, så velg et kort, definert handlingsforløp når du forbereder en innstilling. Den utvidede produsentarbeidsflyten dokumenterer også klippinnstillinger på 16 og 20 sekunder.
En bildereferanse forankrer det første bildet, og teksten beskriver hva som skjer videre. Produsenten støtter referanser i JPEG, PNG og WebP og krever at bildet samsvarer med målstørrelsen for videoen. Forbered motiv, miljø og komposisjon i dette åpningsbildet, og be deretter om en bestemt bevegelse. Dette er en referanse for åpningsbildet, ikke en garanti for at hver detalj samsvarer gjennom hele klippet.
Gjenbrukbare ikke-menneskelige figurer
Den utvidede produsentarbeidsflyten kan lage en gjenbrukbar figurressurs fra en kort referansevideo av et dyr, en maskot eller en gjenstand. Forberedelsesveiledningen ber om et MP4-klipp på omtrent to til fire sekunder, i 720p til 1080p og formatet 16:9 eller 9:16. Samsvar mellom kilde- og utdataformat bidrar til å unngå et strukket utseende. Genereringen kan vise til opptil to figurer.
Behold figuridentifikatoren og nevn navnet i prompten; å sende identifikatoren alene utgjør ikke hele forberedelsen som veiledningen beskriver. Figurressurser kan følge en bildestyrt generering, men videoforlengelser godtar dem ikke. Produsenten blokkerer som standard opplasting av figurer som ligner mennesker og avviser referansebilder som inneholder menneskeansikter i den dokumenterte API-flyten. Sora-appens funksjoner for personlige figurer er en egen produktarbeidsflyt.
Viderefør eller rediger et ferdig klipp
En forlengelse tar en ferdig kildevideo og en prompt for videreføringen, og bruker hele kildeklippet som kontekst for bevegelse, kameraretning og scenekontinuitet. Veiledningen beskriver tillegg på opptil 20 sekunder per forlengelse. Den dokumenterte inndataen for forlengelse er kildevideoen og tekst; ekstra figur- eller bildereferanser er utelatt i denne modusen. Beskriv hvordan den eksisterende handlingen fortsetter, fremfor å introdusere en uvedkommende scene uten overgang.
Videoredigering retter seg mot en tydelig endring i et eksisterende klipp. En avgrenset revisjon kan endre fargen på et objekt eller scenens palett og samtidig beholde resten av innstillingen. Produsentveiledningen anbefaler én veldefinert endring om gangen og skiller redigering av en generert video fra opplasting av vilkårlige opptak, som har en egen betingelse for å være kvalifisert. Behold den ferdige kilden og angi nøyaktig hvilken revisjon som trengs, før du gjør en ny redigering.
Renderjobber og den ferdige videoen
Produsentens dokumenterte videoflyt er asynkron: en innsendt jobb kan stå i kø eller være under behandling før den fullføres eller mislykkes. En fullført jobb gir en MP4-video; miniatyrbilder og sprite-sheet-ressurser støtter forhåndsvisning og gjennomgang. Hold jobbidentiteten knyttet til prompten, referansene og de returnerte ressursene. Et første jobbsvar er ikke den ferdige, avspillbare videoen.
Den vanlige nedlastingsarbeidsflyten beskriver en levetid på én time for nedlastings-URL-en. Den utvidede batcharbeidsflyten klargjør uavhengige JSON-renderforespørsler med stabile elementidentifikatorer, opplastede referanser og et resultat koblet tilbake til hver innstilling; de ferdige ressursene har en egen nedlastingsperiode på opptil 24 timer. Ta vare på det ferdige klippet raskt, og undersøk selve bildet og lyden før du behandler det som et valgt opptak.
Produsentens dokumenterte innholdsbegrensninger for API-et krever materiale som passer for publikum under 18 år, og avviser opphavsrettsbeskyttede figurer eller musikk og generering av virkelige personer. Forbered scenen og referansene deretter. Modellens direkte resultat er video med lyd, ikke genererte stillbilder, et samtalebasert verktøysvar eller en film uten lengdegrense. Behold den nøyaktige standardmodellidentiteten og det godkjente kildeklippet når du viderefører et visuelt konsept.
Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2
sora-2Start
Sora 2 lager video med synkronisert dialog, lydeffekter og bakgrunnslyd fra tekst eller en bildereferanse. Standardprofilen støtter visuell utforsking og konseptklipp, med egne arbeidsflyter hos produsenten for gjenbrukbare ikke-menneskelige figurer, videreføring og avgrensede videoredigeringer.
- Godkjente inndata
- Tekst
- Resultater
- json · sse
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Chat Completions POST /v1/chat/completions
- Inndatatyper
text- Utdatatyper
json,sse- Utdataformat
- JSON eller text/event-stream
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser sora-2 | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltmessages[].role | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltmessages[].content | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Kombinasjoner av inngående materialer
owned_text_messages
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages |
Parametermaterial_types | Avtaletext |
Parametermessages | AvtaleMeldingsmatrise med role og bokstavelig streng som content |
Parameterfile_material | AvtaleFaktisk UTF-8-materiale kan settes inn som bokstavelig strenginnhold; ingen filreferanse utledes. |
Parameteroptional_controls | Avtalestream |
Livssyklus: synchronous_json_or_sse
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
Ailoot-satser
Priser etter konfigurasjon
| Konfigurasjon | Prisplan | Kostnad |
|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener $0 / 1K tokener Utdata · Utgående tokener $0.2 / 1K tokener Inndata · Lesing fra hurtigbuffer $0 / 1K tokener Inndata · Skriving til hurtigbuffer $0 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
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
Motta og lagre resultater
Ailoot Ultra · Chat Completions
JSON eller text/event-stream
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Behold alle JSON- eller SSE-byte i sin helhet, svarhodene, returnert forbruk og alle oppgitte resultatfelt. Det forutsettes ingen modellspesifikk utdatafamilie.
Hvis det opprinnelige svaret må kontrolleres
Behold det opprinnelige svaret og forsøksidentiteten; ingen ny statusavlesning av jobber eller ny innsending utledes.
Svarfelter
| Felt | Type | Betydning |
|---|---|---|
Feltcomplete response JSON | Typeobject | BetydningBevar hvert returnert felt uten å forutsette en modellspesifikk resultatfamilie. |
FeltSSE data events | Typestream | BetydningBevar alle returnerte hendelser og sluttmarkører uten å velge bare tekstfeltene. |
Aliaser
Modellaliaser
Ailoot Ultra sora-2
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2Start
Sora 2 lager video med synkronisert dialog, lydeffekter og bakgrunnslyd fra tekst eller en bildereferanse. Standardprofilen støtter visuell utforsking og konseptklipp, med egne arbeidsflyter hos produsenten for gjenbrukbare ikke-menneskelige figurer, videreføring og avgrensede videoredigeringer.
- Godkjente inndata
- Tekst
- Resultater
- json · sse
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Inndatatyper
text- Utdatatyper
json,sse- Utdataformat
- JSON eller SSE
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser sora-2 | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltmessages[].role | Typestring | KravPåkrevd | Verdier & grenser user, assistant | Standard— |
Feltmessages[].content | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltmax_tokens | Typeinteger | KravPåkrevd | Verdier & grenser | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Kombinasjoner av inngående materialer
Tekst · UTF-8-tekst
messages[].content-streng
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages, max_tokens |
Parameteroptional_controls | Avtalestream |
Parametermaterial_types | Avtaletext |
Parametertext_file_material | AvtaleLes det faktiske UTF-8-dokumentet og legg teksten i den angitte input- eller meldingsinnholdsstrengen. |
Livssyklus: synchronous_or_streamed
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
Ailoot-satser
Priser etter konfigurasjon
| Konfigurasjon | Prisplan | Kostnad |
|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener $0 / 1K tokener Utdata · Utgående tokener $0.2 / 1K tokener Inndata · Lesing fra hurtigbuffer $0 / 1K tokener Inndata · Skriving til hurtigbuffer $0 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
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))
Motta og lagre resultater
Ailoot Ultra · Anthropic Messages
JSON eller SSE
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Behold alle innholdsblokker, resonneringssignaturer og faktiske ID-er for verktøybruk. Sett sammen alle SSE-blokkendringer; den første tekstblokken er ikke hele resultatet.
Hvis det opprinnelige svaret må kontrolleres
Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltmodel | Typestring |
Feltcontent[] | Typetext|thinking|tool_use|other content block |
Feltstop_reason | Typestring|null |
Feltusage | Typeobject |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Aliaser
Modellaliaser
Ailoot Ultra sora-2
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · sora-2
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- Hvilke felt bruker forespørselen?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream