sora-2
Sora 2 skaber video med synkroniseret dialog, lydeffekter og baggrundslyd ud fra tekst eller et referencebillede. Standardprofilen understøtter visuel udforskning og konceptklip med særskilte producentarbejdsgange til genbrugelige ikke-menneskelige figurer, fortsættelse og fokuserede videoredigeringer.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
Om modellen
Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.
Sora 2 er OpenAI's model til generering af video og lyd i dynamiske klip ud fra en skriftlig scenebeskrivelse eller et referencebillede. Den genererer billedsekvensen sammen med synkroniseret tale, effekter og baggrundslyd. Standardprofilen Sora 2 er rettet mod visuel udforskning, konceptudvikling, prototyper og grovklip. Sora 2 Pro er en særskilt udgave, der sigter mod større visuel præcision og færdiggørelse i højere opløsning.
Beskriv en indstilling, der kan ses og høres
Producentens promptvejledning opbygger en nyttig opgavebeskrivelse omkring billedudsnit, motiv, handling, omgivelser og lys. Giv scenen en sammenhængende visuel stil, og beskriv derefter bevægelsen i tydelige handlingsled. Et originalt produktkoncept kan eksempelvis vise en lille mekanisk genstand, der drejer én omgang på et arbejdsbord, mens kameraet langsomt nærmer sig, med blødt vindueslys og en diskret motorlyd. Angiv, hvad seeren skal bemærke, og hvordan handlingen slutter.
Gør kamerabevægelsen og motivets handling i hver indstilling forståelige. En kompliceret sekvens kan opdeles i særskilte indstillingsblokke med hvert sit billedudsnit, sin handling og sin belysning. Bevar de samme motivdetaljer og den samme farvepalet, når flere klip skal danne én sekvens. Vejledningen fremhæver, at kortere indstillinger generelt følger instruktionerne mere pålideligt, og at gentagen generering med samme prompt giver forskellige optagelser.
Modellens lancering beskriver forbedret fysisk adfærd og kontinuitet mellem indstillinger, herunder realistiske, filmiske og animeprægede stilarter. Det er tilsigtede egenskaber, som skal instrueres og vurderes. Gennemgå bevægelse, kontakt mellem objekter, proportioner og kontinuitet frem for at antage, at et plausibelt første billede garanterer en sammenhængende sekvens. Hvis en handling er uklar, skal du forenkle den og give den en synlig begyndelse og afslutning.
Instruér dialog og lyd hver for sig
Angiv replikker adskilt fra den visuelle beskrivelse, og mærk talerne konsekvent. Hold dialogen kort nok til at passe til handlingen og den ønskede kliplængde. I en animation med to figurer kan du lade et kort spørgsmål og svar skifte frem for at forsøge at rumme en lang tale i en kort indstilling. Vejledningen advarer om, at kompleks og lang dialog kan forstyrre tempo og synkronisering.
Beskriv scenens lydmiljø: lyden af en lille bevægelse, rummets atmosfære eller rytmen i en effekt fra omgivelserne. Forklar, hvilken lyd der skal falde sammen med handlingen. Lyt til den resulterende tale og effekterne sammen med billedet, og kontrollér, hvem der taler, ordlyden og timingen. Synkroniseret lyd er en del af det genererede klip frem for et særskilt tekstsvar.
Størrelse, varighed og en billedstyret begyndelse
Standardmodellens dokumenterede outputstørrelser er 720×1280 i højformat og 1280×720 i bredformat. Pro-profilens størrelser i højere opløsning må ikke tilskrives standardudgaven Sora 2. Størrelse og varighed er udtrykkelige indstillinger i anmodningen; det ændrer ikke disse indstillinger at skrive en anden størrelse eller bede om en længere film i prompten. Oprettelsesreferencen angiver klipindstillinger på 4, 8 og 12 sekunder, så vælg et kort, defineret handlingsled, når en indstilling forberedes. Den udvidede producentarbejdsgang dokumenterer også klipindstillinger på 16 og 20 sekunder.
Et referencebillede forankrer det første billede i videoen, og teksten beskriver, hvad der sker derefter. Producenten understøtter JPEG-, PNG- og WebP-referencer og kræver, at billedet svarer til målvideoens størrelse. Forbered motiv, omgivelser og komposition i dette åbningsbillede, og bed derefter om en bestemt bevægelse. Dette er en reference for åbningsbilledet frem for en garanti for, at alle detaljer bevares gennem hele klippet.
Genbrugelige ikke-menneskelige figurer
Den udvidede producentarbejdsgang kan oprette et genbrugeligt figuraktiv ud fra en kort referencevideo af et dyr, en maskot eller en genstand. Forberedelsesvejledningen foreskriver et MP4-klip på cirka to til fire sekunder, i 720p til 1080p og i 16:9 eller 9:16. Samme billedformat i kilde og output hjælper med at undgå et strakt udseende. Genereringen kan referere til op til to figurer.
Bevar figurens id, og nævn dens navn i prompten; alene at sende id'et opfylder ikke vejledningens fulde forberedelse. Figuraktiver kan ledsage en billedstyret generering, men videoforlængelser accepterer dem ikke. Producenten blokerer som standard figuruploads med menneskelig lighed og afviser referencebilleder med menneskeansigter i det dokumenterede API-forløb. Sora-appens funktioner til personlige figurer er en særskilt produktarbejdsgang.
Fortsæt eller redigér et færdigt klip
En forlængelse modtager en færdig kildevideo og en fortsættelsesprompt og bruger hele kildeklippet som kontekst for bevægelse, kameraretning og scenekontinuitet. Vejledningen beskriver tilføjelser på op til 20 sekunder pr. forlængelse. Det dokumenterede input til forlængelse er kildevideoen og tekst; yderligere figur- eller billedreferencer er udelukket i denne tilstand. Beskriv, hvordan den eksisterende handling fortsætter, frem for at indføre en uvedkommende scene uden overgang.
Videoredigering retter sig mod en tydelig ændring i et eksisterende klip. En fokuseret revision kan ændre et objekts farve eller scenens farvepalet, mens resten af indstillingen bevares. Producentvejledningen anbefaler én veldefineret ændring ad gangen og skelner mellem redigering af en genereret video og upload af vilkårlige optagelser, som har en særskilt betingelse for berettigelse. Behold den færdige kilde, og identificér den præcise revision, der er nødvendig, før du foretager endnu en redigering.
Renderingsjob og den færdige video
Producentens dokumenterede videoforløb er asynkront: et indsendt job kan stå i kø eller være i gang, før det fuldføres eller fejler. Et fuldført job giver en MP4-video; miniaturebilleder og spriteark understøtter forhåndsvisning og gennemsyn. Bevar forbindelsen mellem jobbets identitet, prompten, referencerne og de returnerede aktiver. Det første jobsvar er ikke den endelige video, der kan afspilles.
Den almindelige downloadarbejdsgang beskriver en gyldighed på én time for download-URL'en. Den udvidede batcharbejdsgang forbereder uafhængige JSON-renderingsanmodninger med stabile element-id'er, uploadede referencer og et resultat, der føres tilbage til hver indstilling; dens færdige aktiver har en særskilt downloadperiode på op til 24 timer. Gem det færdige klip hurtigt, og undersøg det faktiske billede og den faktiske lyd, før du behandler det som en valgt optagelse.
Producentens dokumenterede indholdsbegrænsninger for API'et kræver materiale, der egner sig til seere under 18 år, og afviser ophavsretligt beskyttede figurer eller musik samt generering af virkelige personer. Forbered scene og referencer derefter. Modellens direkte resultat er video med lyd, ikke genererede stillbilleder, et værktøjssvar i en samtale eller en film af ubegrænset længde. Bevar standardmodellens præcise identitet og det accepterede kildeklip, når et visuelt koncept videreføres.
Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2
sora-2Start
Sora 2 skaber video med synkroniseret dialog, lydeffekter og baggrundslyd ud fra tekst eller et referencebillede. Standardprofilen understøtter visuel udforskning og konceptklip med særskilte producentarbejdsgange til genbrugelige ikke-menneskelige figurer, fortsættelse og fokuserede videoredigeringer.
- Accepterede input
- Tekst
- Resultater
- json · sse
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Chat Completions POST /v1/chat/completions
- Inputtyper
text- Outputtyper
json,sse- Outputformat
- JSON eller text/event-stream
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser sora-2 | Standard— |
Feltmessages | Typemessage[] | KravPåkrævet | Værdier og grænser | Standard— |
Feltmessages[].role | Typestring | KravPåkrævet | Værdier og grænser | Standard— |
Feltmessages[].content | Typestring | KravPåkrævet | Værdier og grænser | Standard— |
Feltstream | Typeboolean | KravValgfrit | Værdier og grænser | Standardfalse |
Kombinationer af inputmaterialer
owned_text_messages
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktmodel, messages |
Parametermaterial_types | Kontrakttext |
Parametermessages | Kontraktbeskedarray med role og bogstaveligt strengindhold |
Parameterfile_material | KontraktFaktisk UTF-8-materiale kan indsættes som bogstaveligt strengindhold; der udledes ingen filreference. |
Parameteroptional_controls | Kontraktstream |
Livscyklus: synchronous_json_or_sse
Priser
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ailoot-takster
Priser efter konfiguration
| Konfiguration | Takstplan | Beløb |
|---|---|---|
| KonfigurationGrundtakster for tokens | TakstplanGrundtakst | Beløb Input · Inputtokens $0 / 1K tokens Output · Outputtokens $0.2 / 1K tokens Input · Cachelæsning $0 / 1K tokens Input · Cacheskrivning $0 / 1K tokens Input · Cacheskrivning, 1 time — / 1K tokens |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
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
Hent og gem resultater
Ailoot Ultra · Chat Completions
JSON eller text/event-stream
Behold alle færdige resultater
Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.
Behold samtlige JSON- eller SSE-bytes, svarheadere, det returnerede forbrug og alle angivne resultatfelter. Der angives ingen modelspecifik outputfamilie.
Hvis det oprindelige svar skal kontrolleres
Behold det oprindelige svar og forsøgsidentiteten; der udledes ingen nye statusforespørgsler for job eller genindsendelse.
Svarfelter
| Felt | Type | Betydning |
|---|---|---|
Feltcomplete response JSON | Typeobject | BetydningBevar hvert returneret felt uden at antage en modelspecifik resultatfamilie. |
FeltSSE data events | Typestream | BetydningBevar hver returneret hændelse og afslutningsmarkør uden kun at vælge tekstfelter. |
Aliaser
Modelaliaser
Ailoot Ultra sora-2
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2Start
Sora 2 skaber video med synkroniseret dialog, lydeffekter og baggrundslyd ud fra tekst eller et referencebillede. Standardprofilen understøtter visuel udforskning og konceptklip med særskilte producentarbejdsgange til genbrugelige ikke-menneskelige figurer, fortsættelse og fokuserede videoredigeringer.
- Accepterede input
- Tekst
- Resultater
- json · sse
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Inputtyper
text- Outputtyper
json,sse- Outputformat
- JSON eller SSE
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser sora-2 | Standard— |
Feltmessages | Typemessage[] | KravPåkrævet | Værdier og grænser | Standard— |
Feltmessages[].role | Typestring | KravPåkrævet | Værdier og grænser user, assistant | Standard— |
Feltmessages[].content | Typestring | KravPåkrævet | Værdier og grænser | Standard— |
Feltmax_tokens | Typeinteger | KravPåkrævet | Værdier og grænser | Standard— |
Feltstream | Typeboolean | KravValgfrit | Værdier og grænser | Standardfalse |
Kombinationer af inputmaterialer
Tekst · UTF-8-tekst
messages[].content som streng
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktmodel, messages, max_tokens |
Parameteroptional_controls | Kontraktstream |
Parametermaterial_types | Kontrakttext |
Parametertext_file_material | KontraktLæs det faktiske UTF-8-dokument, og indsæt teksten i det angivne input eller beskedens indholdsstreng. |
Livscyklus: synchronous_or_streamed
Priser
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ailoot-takster
Priser efter konfiguration
| Konfiguration | Takstplan | Beløb |
|---|---|---|
| KonfigurationGrundtakster for tokens | TakstplanGrundtakst | Beløb Input · Inputtokens $0 / 1K tokens Output · Outputtokens $0.2 / 1K tokens Input · Cachelæsning $0 / 1K tokens Input · Cacheskrivning $0 / 1K tokens Input · Cacheskrivning, 1 time — / 1K tokens |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
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))
Hent og gem resultater
Ailoot Ultra · Anthropic Messages
JSON eller SSE
Behold alle færdige resultater
Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.
Bevar alle indholdsblokke, ræsonnementssignaturer og faktiske værktøjsbrugs-ID’er. Saml alle SSE-blokdeltaer; den første tekstblok er ikke hele outputtet.
Hvis det oprindelige svar skal kontrolleres
Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltmodel | Typestring |
Feltcontent[] | Typetext|thinking|tool_use|other content block |
Feltstop_reason | Typestring|null |
Feltusage | Typeobject |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
Aliaser
Modelaliaser
Ailoot Ultra sora-2
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
FAQ · sora-2
- Hvilke input og resultater er tilgængelige?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- Hvilke felter bruger anmodningen?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream