sora-2
Sora 2 iz besedila ali referenčne slike ustvarja video s sinhroniziranim dialogom, zvočnimi učinki in zvokom v ozadju. Standardni profil podpira vizualno raziskovanje in konceptne posnetke, ponudnik pa ima ločene delovne poteke za ponovno uporabne nečloveške like, nadaljevanje in usmerjene popravke videa.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
O modelu
Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.
Sora 2 je OpenAI-jev model za ustvarjanje videa in zvoka, namenjen dinamičnim posnetkom iz pisnega opisa prizora ali referenčne slike. Vizualno zaporedje ustvari skupaj s sinhroniziranim govorom, učinki in zvokom v ozadju. Standardni profil Sora 2 je namenjen vizualnemu raziskovanju, razvoju konceptov, prototipom in grobim montažam. Sora 2 Pro je ločena izdaja, usmerjena v večjo vizualno zvestobo in končno obdelavo pri višji ločljivosti.
Opišite kader, ki ga je mogoče videti in slišati
Proizvajalčev vodnik za pozive uporaben opis organizira okoli kadriranja, subjekta, dogajanja, okolja in svetlobe. Prizoru določite skladen vizualni slog, nato pa gibanje opišite v jasnih korakih. Izvirni koncept izdelka lahko na primer prikaže majhen mehanski predmet, ki se enkrat obrne na delovni mizi, medtem ko se kamera počasi približuje, ob mehki svetlobi skozi okno in tihem zvoku motorja. Navedite, kaj naj gledalec opazi in kako se dogajanje konča.
Gibanje kamere in dogajanje subjekta v vsakem kadru naj bosta razumljiva. Zapleteno zaporedje lahko razdelite na ločene bloke kadrov, vsak s svojim kadriranjem, dogajanjem in osvetlitvijo. Kadar naj več posnetkov tvori eno zaporedje, ohranite iste podrobnosti subjekta in barvno paleto. Vodnik poudarja, da krajši kadri praviloma zanesljiveje sledijo navodilom in da ponovljeno ustvarjanje z istim pozivom ustvari različne izvedbe.
Ob predstavitvi modela sta bila opisana izboljšano fizikalno obnašanje in kontinuiteta med kadri, vključno z realističnim, filmskim in anime slogom. To so predvidene zmožnosti, ki jih je treba usmerjati in preverjati. Preglejte gibanje, stike med predmeti, razmerja in kontinuiteto, namesto da bi predpostavili, da verjeten prvi kader zagotavlja skladno zaporedje. Če je dogajanje nejasno, ga poenostavite ter mu določite viden začetek in konec.
Dialog in zvok usmerjajte ločeno
Izgovorjene replike navedite ločeno od vizualnega opisa in govorce dosledno označujte. Dialog naj bo dovolj kratek, da se prilega dogajanju in predvideni dolžini posnetka. Pri animaciji z dvema likoma izmenjajte kratko vprašanje in odgovor, namesto da v kratek kader vključite dolg govor. Vodnik opozarja, da lahko zapleten in dolg dialog zmoti tempo in sinhronizacijo.
Opišite zvočno okolje, ki sodi v prizor: zvok majhnega premika, ambient prostora ali ritem okoljskega učinka. Pojasnite, kateri zvok naj sovpade z dogajanjem. Nastali govor in učinke poslušajte skupaj s sliko ter preverite dodelitev govorcev, besedilo in časovno usklajenost. Sinhronizirani zvok je del ustvarjenega posnetka in ne ločen besedilni odgovor.
Velikost, trajanje in začetek na podlagi slike
Dokumentirani izhodni velikosti standardnega modela sta 720×1280 v pokončni in 1280×720 v ležeči usmerjenosti. Velikosti z višjo ločljivostjo iz profila Pro se ne smejo pripisovati standardnemu modelu Sora 2. Velikost in trajanje sta izrecni nastavitvi zahteve; drugačna velikost ali zahteva za daljši film v pozivu teh nastavitev ne spremeni. Referenca za ustvarjanje navaja nastavitve posnetkov dolžine 4, 8 in 12 sekund, zato pri pripravi kadra izberite kratek in jasno določen trenutek dogajanja. Razširjeni delovni potek ponudnika dokumentira tudi nastavitve posnetkov dolžine 16 in 20 sekund.
Referenčna slika zasidra prvi kader, besedilo pa opiše nadaljnje dogajanje. Ponudnik podpira reference JPEG, PNG in WebP ter zahteva, da se velikost slike ujema s ciljno velikostjo videa. V tej začetni sliki pripravite subjekt, okolje in kompozicijo, nato zahtevajte določeno gibanje. To je referenca začetnega kadra, ne jamstvo, da se bo vsaka podrobnost ujemala skozi ves posnetek.
Ponovno uporabni nečloveški liki
Razširjeni delovni potek ponudnika lahko iz kratkega referenčnega videa živali, maskote ali predmeta ustvari ponovno uporaben element lika. Navodila za pripravo zahtevajo posnetek MP4, dolg približno dve do štiri sekunde, v ločljivosti od 720p do 1080p ter razmerju 16:9 ali 9:16. Ujemanje razmerja stranic vira in izhoda pomaga preprečiti raztegnjen videz. Ustvarjanje se lahko sklicuje na največ dva lika.
Ohranite identifikator lika in v pozivu omenite njegovo ime; samo posredovanje identifikatorja po vodniku ni popolna priprava. Elemente likov lahko vključite v ustvarjanje na podlagi slike, razširitve videa pa jih ne sprejemajo. Ponudnik privzeto blokira nalaganje likov s človeško podobo in v dokumentiranem toku API zavrača referenčne slike s človeškimi obrazi. Funkcije osebnih likov v aplikaciji Sora sodijo v ločen delovni potek izdelka.
Nadaljujte ali uredite dokončan posnetek
Razširitev sprejme dokončan izvorni video in poziv za nadaljevanje ter celoten izvorni posnetek uporabi kot kontekst za gibanje, smer kamere in kontinuiteto prizora. Vodnik opisuje dodajanje do 20 sekund na razširitev. Dokumentirana vhoda za razširitev sta izvorni video in besedilo; dodatne reference likov ali slik so iz tega načina izključene. Opišite, kako se obstoječe dogajanje nadaljuje, namesto da brez prehoda uvedete nepovezan prizor.
Urejanje videa je namenjeno jasni spremembi obstoječega posnetka. Usmerjen popravek lahko spremeni barvo predmeta ali paleto prizora, preostali kader pa ohrani. Vodnik ponudnika priporoča po eno jasno določeno spremembo in ločuje urejanje ustvarjenega videa od nalaganja poljubnih posnetkov, za katero velja ločen pogoj upravičenosti. Pred naslednjim urejanjem ohranite dokončan vir in določite natančen želeni popravek.
Opravila izrisa in končni video
Dokumentirani tok ponudnika za video je asinhron: oddano opravilo je lahko v čakalni vrsti ali v obdelavi, preden se dokonča ali spodleti. Dokončano opravilo vrne video MP4; sličice in listi sličic podpirajo predogled in brskanje. Identiteto opravila hranite povezano s pozivom, referencami in vrnjenimi datotekami. Začetni odgovor o opravilu še ni končni video za predvajanje.
Običajni delovni potek prenosa opisuje enourno veljavnost URL-ja za prenos. Razširjeni paketni delovni potek pripravi neodvisne zahteve za izris v obliki JSON s stabilnimi identifikatorji elementov, naloženimi referencami in rezultatom, preslikanim nazaj na vsak kader; njegove dokončane datoteke imajo ločeno obdobje prenosa do 24 ur. Končni posnetek pravočasno shranite in preglejte dejansko sliko in zvok, preden ga obravnavate kot izbrano izvedbo.
Dokumentirane vsebinske omejitve ponudnikovega API zahtevajo gradivo, primerno za občinstvo, mlajše od 18 let, ter zavračajo avtorsko zaščitene like ali glasbo in ustvarjanje resničnih ljudi. Prizor in reference pripravite temu primerno. Neposredni rezultat modela je video z zvokom, ne ustvarjene fotografije, pogovorni odgovor orodja ali neomejen film. Pri nadaljevanju vizualnega koncepta ohranite natančno identiteto standardnega modela in sprejeti izvorni posnetek.
Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2
sora-2Začetek
Sora 2 iz besedila ali referenčne slike ustvarja video s sinhroniziranim dialogom, zvočnimi učinki in zvokom v ozadju. Standardni profil podpira vizualno raziskovanje in konceptne posnetke, ponudnik pa ima ločene delovne poteke za ponovno uporabne nečloveške like, nadaljevanje in usmerjene popravke videa.
- Dovoljeni vhodi
- Besedilo
- Rezultati
- json · sse
Na voljo v Ailoot · vhodi in metode
Ailoot Ultra · Chat Completions POST /v1/chat/completions
- Vhod
text- Izhod
json,sse- Izhodni format
- JSON ali text/event-stream
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve sora-2 | Privzeto— |
Poljemessages | Vrstamessage[] | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljemessages[].role | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljemessages[].content | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljestream | Vrstaboolean | ZahtevaIzbirno | Vrednosti in omejitve | Privzetofalse |
Kombinacije vhodnih gradiv
owned_text_messages
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, messages |
Parametermaterial_types | Specifikacijatext |
Parametermessages | Specifikacijapolje sporočil z role in dobesednim nizom content |
Parameterfile_material | SpecifikacijaDejansko gradivo UTF-8 je mogoče vstaviti kot dobesedni niz content; sklic na datoteko se ne predpostavlja. |
Parameteroptional_controls | Specifikacijastream |
Življenjski cikel: synchronous_json_or_sse
Cenik
Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.
- Hitri način
- Ni navedeno Ko je izbran hitri način
- Način flex
- Ni navedeno Ko je izbran način flex
- Najvišja raven razmišljanja
- Ni navedeno Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Cene Ailoot
Cene po nastavitvah
| Nastavitev | Cenovna lestvica | Strošek |
|---|---|---|
| NastavitevOsnovne cene za žetone | Cenovna lestvicaOsnovna cena | Strošek Vhod · Vhodni žetoni $0 / 1K žetonov Izhod · Izhodni žetoni $0.2 / 1K žetonov Vhod · Branje predpomnilnika $0 / 1K žetonov Vhod · Zapis v predpomnilnik $0 / 1K žetonov Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov |
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Primeri zahtev
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
Prejmi in shrani rezultate
Ailoot Ultra · Chat Completions
JSON ali text/event-stream
Ohrani vse dokončane rezultate
Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.
Ohranite celoten JSON ali bajte SSE, glave odgovora, vrnjeno porabo in vsa podana polja rezultatov. Nobena družina izhodov za določen model ni zagotovljena.
Če je treba preveriti izvirni odgovor
Ohranite prvotni odgovor in identiteto poskusa; novo preverjanje opravila ali ponovna oddaja se ne predpostavljata.
Polja odgovora
| Polje | Vrsta | Pomen |
|---|---|---|
Poljecomplete response JSON | Vrstaobject | PomenOhranite vsako vrnjeno polje brez predpostavke o družini rezultatov za določen model. |
PoljeSSE data events | Vrstastream | PomenOhranite vsak vrnjeni dogodek in končno oznako, ne da bi izbirali samo besedilna polja. |
Druga imena
Druga imena modelov
Ailoot Ultra sora-2
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2Začetek
Sora 2 iz besedila ali referenčne slike ustvarja video s sinhroniziranim dialogom, zvočnimi učinki in zvokom v ozadju. Standardni profil podpira vizualno raziskovanje in konceptne posnetke, ponudnik pa ima ločene delovne poteke za ponovno uporabne nečloveške like, nadaljevanje in usmerjene popravke videa.
- Dovoljeni vhodi
- Besedilo
- Rezultati
- json · sse
Na voljo v Ailoot · vhodi in metode
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Vhod
text- Izhod
json,sse- Izhodni format
- JSON ali SSE
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve sora-2 | Privzeto— |
Poljemessages | Vrstamessage[] | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljemessages[].role | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve user, assistant | Privzeto— |
Poljemessages[].content | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljemax_tokens | Vrstainteger | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljestream | Vrstaboolean | ZahtevaIzbirno | Vrednosti in omejitve | Privzetofalse |
Kombinacije vhodnih gradiv
Besedilo · Besedilo UTF-8
niz messages[].content
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, messages, max_tokens |
Parameteroptional_controls | Specifikacijastream |
Parametermaterial_types | Specifikacijatext |
Parametertext_file_material | SpecifikacijaPreberite dejanski dokument UTF-8 in njegovo besedilo vstavite v navedeni vhodni niz ali niz vsebine sporočila. |
Življenjski cikel: synchronous_or_streamed
Cenik
Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.
- Hitri način
- Ni navedeno Ko je izbran hitri način
- Način flex
- Ni navedeno Ko je izbran način flex
- Najvišja raven razmišljanja
- Ni navedeno Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Cene Ailoot
Cene po nastavitvah
| Nastavitev | Cenovna lestvica | Strošek |
|---|---|---|
| NastavitevOsnovne cene za žetone | Cenovna lestvicaOsnovna cena | Strošek Vhod · Vhodni žetoni $0 / 1K žetonov Izhod · Izhodni žetoni $0.2 / 1K žetonov Vhod · Branje predpomnilnika $0 / 1K žetonov Vhod · Zapis v predpomnilnik $0 / 1K žetonov Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov |
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Primeri zahtev
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))
Prejmi in shrani rezultate
Ailoot Ultra · Anthropic Messages
JSON ali SSE
Ohrani vse dokončane rezultate
Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.
Ohranite vse vsebinske bloke, podpise sklepanja in dejanske ID uporabe orodij. Sestavite vse delne spremembe blokov SSE; prvi besedilni blok ni celoten izhod.
Če je treba preveriti izvirni odgovor
Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.
Polja odgovora
| Polje | Vrsta |
|---|---|
Poljeid | Vrstastring |
Poljemodel | Vrstastring |
Poljecontent[] | Vrstatext|thinking|tool_use|other content block |
Poljestop_reason | Vrstastring|null |
Poljeusage | Vrstaobject |
Napake in naslednji koraki
| Odgovor | Pogoj | Naslednji korak |
|---|---|---|
Odgovor400 · invalid_request_error | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
Druga imena
Druga imena modelov
Ailoot Ultra sora-2
Druga imena poti metod
Uporabite zgoraj navedene poti metod.
Povezani ID-ji za klic
FAQ · sora-2
- Kateri vhodi in rezultati so na voljo?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- Katera polja uporablja zahteva?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream