sora-2
Sora 2 vytváří z textu nebo referenčního obrázku video se synchronizovaným dialogem, zvukovými efekty a zvukovým pozadím. Standardní profil podporuje hledání vizuálního pojetí a tvorbu koncepčních klipů; výrobce nabízí samostatné postupy pro opakovaně použitelné postavy, které nejsou lidmi, pokračování a cílené úpravy videa.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
O modelu
Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.
Sora 2 je model společnosti OpenAI pro generování videa a zvuku, který vytváří dynamické klipy z písemného popisu scény nebo referenčního obrázku. Obrazovou sekvenci generuje společně se synchronizovanou řečí, efekty a zvukovým pozadím. Standardní profil Sora 2 je určen pro hledání vizuálního pojetí, rozvíjení konceptů, prototypy a hrubé střihy. Sora 2 Pro je samostatná edice zaměřená na vyšší obrazovou věrnost a dokončování ve vyšším rozlišení.
Popište záběr, který lze vidět i slyšet
Průvodce výrobce pro zadávání promptů staví užitečné zadání na kompozici záběru, hlavním objektu, ději, prostředí a světle. Dejte scéně jednotný vizuální styl a pohyb popište v jasných krocích. Originální produktový koncept může ukazovat malý mechanický předmět, který se jednou otočí na pracovním stole, zatímco se kamera pomalu přibližuje, za měkkého světla z okna a jemného zvuku motoru. Uveďte, čeho si má divák všimnout a jak děj končí.
Pohyb kamery a děj hlavního objektu v každém záběru musí být srozumitelné. Složitou sekvenci lze rozdělit do samostatných bloků záběrů, každý s vlastní kompozicí, dějem a osvětlením. Má-li několik klipů tvořit jednu sekvenci, zachovejte stejné detaily hlavního objektu a barevnou paletu. Průvodce zdůrazňuje, že kratší záběry se obecně spolehlivěji drží pokynů a že opakované generování ze stejného promptu vytváří různé varianty.
Při uvedení modelu výrobce popisuje zlepšené fyzikální chování a návaznost mezi záběry, včetně realistického, filmového a anime stylu. Jde o zamýšlené schopnosti, které je potřeba řídit a kontrolovat. Posuzujte pohyb, kontakt mezi předměty, proporce a návaznost; nepředpokládejte, že věrohodný první snímek zaručuje soudržnou sekvenci. Pokud je děj nejasný, zjednodušte jej a dejte mu viditelný začátek a konec.
Řiďte dialog a zvuk samostatně
Mluvené repliky uvádějte odděleně od obrazového popisu a mluvčí označujte jednotně. Dialog ponechte dostatečně krátký, aby se vešel do děje a zamýšlené délky klipu. U animace se dvěma postavami střídejte stručnou otázku a odpověď místo požadavku na dlouhý proslov v krátkém záběru. Průvodce upozorňuje, že složitý a dlouhý dialog může narušit tempo i synchronizaci.
Popište zvukové prostředí odpovídající scéně: zvuk drobného pohybu, atmosféru místnosti nebo rytmus zvuku okolního prostředí. Vysvětlete, který zvuk má nastat současně s dějem. Výslednou řeč a efekty poslouchejte spolu s obrazem a kontrolujte přiřazení mluvčích, znění i načasování. Synchronizovaný zvuk je součástí vygenerovaného klipu, nikoli samostatnou textovou odpovědí.
Rozměry, délka a začátek vedený obrázkem
Dokumentované výstupní rozměry standardního modelu jsou 720×1280 na výšku a 1280×720 na šířku. Vyšší rozlišení profilu Pro se nemají připisovat standardnímu modelu Sora 2. Rozměry a délka jsou výslovná nastavení požadavku; uvedení jiných rozměrů nebo žádost o delší film v promptu tato nastavení nemění. Referenční dokumentace pro vytváření uvádí nastavení délky klipu na 4, 8 a 12 sekund, proto při přípravě záběru zvolte krátký, jasně vymezený dějový úsek. Rozšířený postup výrobce dokumentuje také délky klipů 16 a 20 sekund.
Referenční obrázek určuje první snímek a text popisuje, co následuje. Výrobce podporuje reference JPEG, PNG a WebP a vyžaduje shodu rozměrů obrázku s cílovým videem. V úvodním obrázku připravte hlavní objekt, prostředí a kompozici, poté požádejte o konkrétní pohyb. Jde o referenci pro úvodní snímek, nikoli o záruku zachování každého detailu po celý klip.
Opakovaně použitelné postavy, které nejsou lidmi
Rozšířený postup výrobce umožňuje vytvořit opakovaně použitelný podklad představující postavu z krátkého referenčního videa zvířete, maskota nebo předmětu. Pokyny pro přípravu požadují klip MP4 dlouhý přibližně dvě až čtyři sekundy, v rozlišení 720p až 1080p a s poměrem stran 16:9 nebo 9:16. Shodný poměr stran zdroje a výstupu pomáhá zabránit roztaženému vzhledu. Generování může odkazovat až na dvě postavy.
Uchovejte identifikátor postavy a v promptu zmiňte její jméno; samotné předání identifikátoru nepředstavuje úplnou přípravu podle průvodce. Podklady postav mohou doprovázet generování vedené obrázkem, prodlužování videa je však nepřijímá. Výrobce ve výchozím nastavení blokuje nahrávání postav podobných lidem a v dokumentovaném postupu API odmítá referenční obrázky obsahující lidské tváře. Funkce osobních postav v aplikaci Sora představují samostatný produktový postup.
Pokračujte v hotovém klipu nebo jej upravte
Prodloužení pracuje s hotovým zdrojovým videem a promptem pro pokračování; celý zdrojový klip používá jako kontext pro pohyb, směr kamery a návaznost scény. Průvodce popisuje přidání až 20 sekund při jednom prodloužení. Dokumentovaným vstupem prodloužení je zdrojové video a text; další reference postav nebo obrázků jsou z tohoto režimu vyloučeny. Popište, jak pokračuje stávající děj, místo zavádění nesouvisející scény bez přechodu.
Úprava videa míří na jasnou změnu existujícího klipu. Cílená úprava může změnit barvu předmětu nebo paletu scény a zachovat zbytek záběru. Průvodce výrobce doporučuje vždy jednu přesně vymezenou změnu a odlišuje úpravu vygenerovaného videa od nahrávání libovolného záznamu, pro které platí samostatná podmínka způsobilosti. Před další úpravou uchovejte hotový zdroj a určete přesnou požadovanou změnu.
Renderovací úlohy a hotové video
Dokumentovaný postup výrobce pro video je asynchronní: odeslaná úloha může být zařazena do fronty nebo probíhat, než se dokončí či selže. Dokončená úloha poskytne video MP4; náhledové obrázky a sprite sheety slouží pro náhledy a procházení. Identitu úlohy uchovávejte ve vazbě na prompt, reference a vrácené soubory. Počáteční odpověď na úlohu není finální přehratelné video.
Běžný postup stahování uvádí hodinovou platnost adresy URL pro stažení. Rozšířený dávkový postup připravuje nezávislé renderovací požadavky JSON se stabilními identifikátory položek, nahranými referencemi a výsledkem přiřazeným zpět ke každému záběru; jeho hotové soubory mají samostatnou lhůtu pro stažení až 24 hodin. Hotový klip včas uložte a před výběrem konkrétní varianty zkontrolujte skutečný obraz i zvuk.
Dokumentovaná omezení obsahu API výrobce vyžadují materiál vhodný pro publikum mladší 18 let a odmítají autorsky chráněné postavy či hudbu a generování skutečných lidí. Připravte podle toho scénu i reference. Přímým výsledkem modelu je video se zvukem, nikoli generované statické obrázky, konverzační odpověď nástroje nebo film neomezené délky. Při pokračování vizuálního konceptu zachovejte přesnou identitu standardního modelu a přijatý zdrojový klip.
Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2
sora-2Úvod
Sora 2 vytváří z textu nebo referenčního obrázku video se synchronizovaným dialogem, zvukovými efekty a zvukovým pozadím. Standardní profil podporuje hledání vizuálního pojetí a tvorbu koncepčních klipů; výrobce nabízí samostatné postupy pro opakovaně použitelné postavy, které nejsou lidmi, pokračování a cílené úpravy videa.
- Přijímané vstupy
- Text
- Výsledky
- json · sse
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · Chat Completions POST /v1/chat/completions
- Vstup
text- Výstup
json,sse- Výstupní formát
- JSON nebo text/event-stream
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity sora-2 | Výchozí— |
Polemessages | Typmessage[] | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemessages[].role | Typstring | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemessages[].content | Typstring | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polestream | Typboolean | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |
Kombinace vstupních materiálů
owned_text_messages
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages |
Parametrmaterial_types | Kontrakttext |
Parametrmessages | Kontraktpole zpráv s role a doslovným řetězcem content |
Parametrfile_material | KontraktSkutečný materiál v UTF-8 lze vložit jako doslovný řetězec content; žádný odkaz na soubor se neodvozuje. |
Parametroptional_controls | Kontraktstream |
Životní cyklus: synchronous_json_or_sse
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Neuvedeno Při výběru rychlého režimu
- Režim flex
- Neuvedeno Při výběru režimu flex
- Maximální intenzita uvažování
- Neuvedeno Když se při maximální intenzitě uvažování použije výchozí úprava (default)
Sazby Ailoot
Ceny podle konfigurace
| Konfigurace | Tabulka sazeb | Poplatek |
|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Poplatek Vstup · Vstupní tokeny $0 / 1K tokenů Výstup · Výstupní tokeny $0.2 / 1K tokenů Vstup · Čtení z mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
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
Přijímání a ukládání výsledků
Ailoot Ultra · Chat Completions
JSON nebo text/event-stream
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Uchovejte úplné bajty JSON nebo SSE, hlavičky odpovědi, vrácené údaje o využití a všechna poskytnutá pole výsledku. Žádný typ výstupu specifický pro model se neuvádí.
Pokud je nutné ověřit původní odpověď
Zachovejte původní odpověď a identitu pokusu; neodvozuje se žádné dotazování na novou úlohu ani opětovné odeslání.
Pole odpovědi
| Pole | Typ | Význam |
|---|---|---|
Polecomplete response JSON | Typobject | VýznamZachovejte každé vrácené pole, aniž byste předpokládali typ výsledku specifický pro model. |
PoleSSE data events | Typstream | VýznamZachovejte každou vrácenou událost a ukončovací značku, nevybírejte pouze textová pole. |
Aliasy
Aliasy modelu
Ailoot Ultra sora-2
Aliasy cest metod
Použijte cesty metod uvedené výše.
Související ID modelů
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2Úvod
Sora 2 vytváří z textu nebo referenčního obrázku video se synchronizovaným dialogem, zvukovými efekty a zvukovým pozadím. Standardní profil podporuje hledání vizuálního pojetí a tvorbu koncepčních klipů; výrobce nabízí samostatné postupy pro opakovaně použitelné postavy, které nejsou lidmi, pokračování a cílené úpravy videa.
- Přijímané vstupy
- Text
- Výsledky
- json · sse
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Vstup
text- Výstup
json,sse- Výstupní formát
- JSON nebo SSE
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity sora-2 | Výchozí— |
Polemessages | Typmessage[] | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemessages[].role | Typstring | PožadavekPovinné | Hodnoty a limity user, assistant | Výchozí— |
Polemessages[].content | Typstring | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemax_tokens | Typinteger | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polestream | Typboolean | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |
Kombinace vstupních materiálů
Text · text UTF-8
řetězec messages[].content
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages, max_tokens |
Parametroptional_controls | Kontraktstream |
Parametrmaterial_types | Kontrakttext |
Parametrtext_file_material | KontraktPřečtěte skutečný dokument UTF-8 a vložte jeho text do uvedeného pole input nebo do řetězce obsahu zprávy. |
Životní cyklus: synchronous_or_streamed
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Neuvedeno Při výběru rychlého režimu
- Režim flex
- Neuvedeno Při výběru režimu flex
- Maximální intenzita uvažování
- Neuvedeno Když se při maximální intenzitě uvažování použije výchozí úprava (default)
Sazby Ailoot
Ceny podle konfigurace
| Konfigurace | Tabulka sazeb | Poplatek |
|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Poplatek Vstup · Vstupní tokeny $0 / 1K tokenů Výstup · Výstupní tokeny $0.2 / 1K tokenů Vstup · Čtení z mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
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))
Přijímání a ukládání výsledků
Ailoot Ultra · Anthropic Messages
JSON nebo SSE
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Zachovejte všechny bloky obsahu, podpisy uvažování a skutečná ID použití nástrojů. Sestavte všechny přírůstky bloků SSE; první textový blok není úplný výstup.
Pokud je nutné ověřit původní odpověď
Zachovejte ID požadavků/odpovědí a hlavičky. Není dodána obecná URL pro načtení textové úlohy.
Pole odpovědi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polemodel | Typstring |
Polecontent[] | Typtext|thinking|tool_use|other content block |
Polestop_reason | Typstring|null |
Poleusage | Typobject |
Chyby a další kroky
| Odpověď | Podmínka | Další krok |
|---|---|---|
Odpověď400 · invalid_request_error | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
Aliasy
Aliasy modelu
Ailoot Ultra sora-2
Aliasy cest metod
Použijte cesty metod uvedené výše.
Související ID modelů
FAQ · sora-2
- Jaké vstupy a výsledky jsou dostupné?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- Jaká pole požadavek používá?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream