model

sora-2

Markdown · JSON

sora-2

Sora 2 mencipta video dengan dialog, kesan bunyi dan audio latar yang disegerakkan daripada teks atau imej rujukan. Profil standard menyokong penerokaan visual dan klip konsep, dengan aliran kerja berasingan daripada pengeluar untuk watak bukan manusia yang boleh digunakan semula, penyambungan dan suntingan video yang khusus.

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

Sora 2 ialah model penjanaan video dan audio OpenAI untuk klip dinamik yang dicipta daripada huraian adegan bertulis atau imej rujukan. Ia menjana urutan visual bersama pertuturan, kesan dan bunyi latar yang disegerakkan. Profil Sora 2 standard ditujukan untuk penerokaan visual, pembangunan konsep, prototaip dan suntingan kasar. Sora 2 Pro ialah edisi berasingan yang menyasarkan ketepatan visual lebih tinggi dan kemasan beresolusi lebih tinggi.

Huraikan syot yang boleh dilihat dan didengar

Panduan prompt pengeluar menyusun taklimat yang berguna berdasarkan pembingkaian, subjek, aksi, latar dan pencahayaan. Berikan gaya visual yang koheren kepada adegan, kemudian huraikan pergerakan dalam rentak yang jelas. Konsep produk asal mungkin menunjukkan objek mekanikal kecil berputar sekali di atas meja kerja sementara kamera bergerak perlahan mendekat, dengan cahaya tingkap yang lembut dan bunyi motor yang halus. Nyatakan perkara yang perlu diperhatikan oleh penonton dan cara aksi berakhir.

Pastikan pergerakan kamera dan aksi subjek bagi setiap syot mudah difahami. Urutan yang rumit boleh dibahagikan kepada blok syot yang berbeza, setiap satunya dengan pembingkaian, aksi dan pencahayaan sendiri. Kekalkan butiran subjek dan palet yang sama apabila beberapa klip dimaksudkan untuk membentuk satu urutan. Panduan tersebut menekankan bahawa syot yang lebih pendek biasanya mengikut arahan dengan lebih konsisten dan penjanaan berulang menggunakan prompt yang sama menghasilkan rakaman yang berbeza.

Pengumuman pelancaran model menerangkan tingkah laku fizikal dan kesinambungan antara syot yang ditambah baik, termasuk gaya realistik, sinematik dan anime. Ini ialah keupayaan yang dimaksudkan untuk diarahkan dan diperiksa. Semak gerakan, sentuhan antara objek, perkadaran dan kesinambungan, tanpa menganggap bingkai pertama yang munasabah menjamin urutan yang koheren. Jika sesuatu aksi tidak jelas, ringkaskannya dan berikan permulaan serta pengakhiran yang kelihatan.

Arahkan dialog dan bunyi secara berasingan

Nyatakan baris pertuturan secara berasingan daripada huraian visual dan labelkan penutur secara konsisten. Pastikan dialog cukup pendek untuk muat dengan aksi dan panjang klip yang dimaksudkan. Untuk animasi dua watak, selang-selikan soalan dan jawapan ringkas supaya syot pendek tidak perlu memuatkan ucapan panjang. Panduan tersebut memberi amaran bahawa dialog yang rumit dan panjang boleh mengganggu rentak dan penyegerakan.

Huraikan landskap bunyi yang sesuai dengan adegan: bunyi pergerakan kecil, suasana bilik atau rentak kesan persekitaran. Jelaskan bunyi yang perlu bertepatan dengan aksi. Dengar pertuturan dan kesan yang terhasil bersama gambar, sambil menyemak penetapan penutur, perkataan dan pemasaan. Audio yang disegerakkan ialah sebahagian daripada klip yang dijana, bukannya jawapan teks yang berasingan.

Saiz, tempoh dan pembukaan berpandukan imej

Saiz output model standard yang didokumenkan ialah 720×1280 potret dan 1280×720 landskap. Saiz beresolusi lebih tinggi dalam profil Pro tidak boleh dianggap tersedia pada Sora 2 standard. Saiz dan tempoh ialah tetapan permintaan yang dinyatakan secara jelas; menulis saiz lain atau meminta filem yang lebih panjang dalam prompt tidak mengubah tetapan tersebut. Rujukan penciptaan menyenaraikan tetapan klip 4, 8 dan 12 saat, jadi pilih rentak yang pendek dan ditetapkan semasa menyediakan syot. Aliran kerja lanjutan pengeluar turut mendokumenkan tetapan klip 16 dan 20 saat.

Imej rujukan menambat bingkai pertama, dan teks menerangkan perkara yang berlaku seterusnya. Pengeluar menyokong rujukan JPEG, PNG dan WebP serta mewajibkan imej sepadan dengan saiz video sasaran. Sediakan subjek, persekitaran dan komposisi dalam imej pembukaan itu, kemudian minta pergerakan tertentu. Ini ialah rujukan bingkai pembukaan, bukannya jaminan bahawa setiap butiran akan kekal sepadan sepanjang klip.

Watak bukan manusia yang boleh digunakan semula

Aliran kerja lanjutan pengeluar boleh mencipta aset watak yang boleh digunakan semula daripada video rujukan pendek haiwan, maskot atau objek. Panduan penyediaannya meminta klip MP4 sekitar dua hingga empat saat, 720p hingga 1080p, dalam 16:9 atau 9:16. Memadankan nisbah bidang sumber dan output membantu mengelakkan rupa yang diregangkan. Penjanaan boleh merujuk sehingga dua watak.

Simpan pengecam watak dan sebut namanya dalam prompt; menyerahkan pengecam sahaja tidak melengkapkan penyediaan yang ditetapkan oleh panduan. Aset watak boleh disertakan dalam penjanaan berpandukan imej, tetapi sambungan video tidak menerimanya. Pengeluar menyekat muat naik watak yang menyerupai manusia secara lalai dan menolak imej rujukan yang mengandungi wajah manusia dalam aliran API yang didokumenkan. Ciri watak peribadi aplikasi Sora ialah aliran kerja produk yang berasingan.

Sambung atau sunting klip yang telah siap

Sambungan mengambil video sumber yang telah siap dan prompt penyambungan, menggunakan seluruh klip sumber sebagai konteks bagi gerakan, arah kamera dan kesinambungan adegan. Panduan menerangkan penambahan sehingga 20 saat bagi setiap sambungan. Input sambungan yang didokumenkan ialah video sumber dan teks; rujukan watak atau imej tambahan dikecualikan daripada mod tersebut. Huraikan cara aksi sedia ada diteruskan, bukannya memperkenalkan adegan yang tidak berkaitan tanpa peralihan.

Penyuntingan video menyasarkan perubahan yang jelas pada klip sedia ada. Semakan yang khusus boleh mengubah warna objek atau palet adegan sambil mengekalkan bahagian syot yang lain. Panduan pengeluar mengesyorkan satu perubahan yang ditetapkan dengan jelas pada satu-satu masa dan membezakan penyuntingan video yang dijana daripada muat naik sebarang rakaman, yang mempunyai syarat kelayakan berasingan. Simpan sumber yang telah siap dan kenal pasti semakan tepat yang diperlukan sebelum membuat suntingan lain.

Kerja pemaparan dan video siap

Aliran video pengeluar yang didokumenkan bersifat tak segerak: kerja yang dihantar boleh berada dalam baris gilir atau sedang diproses sebelum selesai atau gagal. Kerja yang selesai menghasilkan video MP4; aset imej kecil dan helaian sprite menyokong pratonton dan penyemakan. Kekalkan identiti kerja yang dikaitkan dengan prompt, rujukan dan aset yang dikembalikan. Respons kerja awal bukan video akhir yang boleh dimainkan.

Aliran muat turun biasa menerangkan tempoh sah URL muat turun selama satu jam. Aliran kerja kelompok lanjutan menyediakan permintaan pemaparan JSON bebas dengan pengecam item yang stabil, rujukan yang dimuat naik dan hasil yang dipadankan semula kepada setiap syot; asetnya yang telah siap mempunyai tempoh muat turun berasingan sehingga 24 jam. Simpan klip siap dengan segera dan periksa gambar serta bunyi sebenar sebelum menganggapnya sebagai rakaman yang dipilih.

Sekatan kandungan API pengeluar yang didokumenkan mewajibkan bahan yang sesuai untuk khalayak bawah 18 tahun serta menolak watak atau muzik berhak cipta dan penjanaan orang sebenar. Sediakan adegan dan rujukan sewajarnya. Hasil langsung model ialah video dengan audio, bukannya imej pegun yang dijana, respons alat perbualan atau filem tanpa had. Kekalkan identiti model standard yang tepat dan klip sumber yang diterima apabila meneruskan konsep visual.

Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2

sora-2

Lain-lain /sora-2

Pengenalan

Sora 2 mencipta video dengan dialog, kesan bunyi dan audio latar yang disegerakkan daripada teks atau imej rujukan. Profil standard menyokong penerokaan visual dan klip konsep, dengan aliran kerja berasingan daripada pengeluar untuk watak bukan manusia yang boleh digunakan semula, penyambungan dan suntingan video yang khusus.

Input yang diterima
Teks
Hasil
json · sse

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · Chat Completions POST /v1/chat/completions
Input
text
Output
json, sse
Format output
Format JSON atau text/event-stream
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
sora-2
Lalai—
MedanmessagesJenismessage[]KeperluanDiperlukanNilai & hadLalai—
Medanmessages[].roleJenisstringKeperluanDiperlukanNilai & hadLalai—
Medanmessages[].contentJenisstringKeperluanDiperlukanNilai & hadLalai—
MedanstreamJenisbooleanKeperluanPilihanNilai & hadLalaifalse
Gabungan bahan input

owned_text_messages

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages
Parametermaterial_typesKontraktext
ParametermessagesKontraktatasusunan mesej dengan role dan kandungan rentetan literal
Parameterfile_materialKontrakBahan UTF-8 sebenar boleh disisipkan sebagai kandungan rentetan literal; tiada rujukan fail disimpulkan.
Parameteroptional_controlsKontrakstream

Kitar hayat: synchronous_json_or_sse

Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas
Tidak dinyatakan Apabila mod pantas dipilih
Mod flex
Tidak dinyatakan Apabila mod flex dipilih
Usaha penaakulan maksimum
Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default

Kadar Ailoot

Harga mengikut konfigurasi

KonfigurasiJadual kadarCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasCaj
Input · Token input $0 / 1K token
Output · Token output $0.2 / 1K token
Input · Bacaan cache $0 / 1K token
Input · Penulisan cache $0 / 1K token
Input · Penulisan cache, 1 jam — / 1K token

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot Ultra · Chat Completions

curl · respons JSON lengkapPython SDK · respons JSON lengkapcurl · kekalkan strim SSE
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

Terima dan simpan hasil

Ailoot Ultra · Chat Completions

Format JSON atau text/event-stream

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Simpan keseluruhan bait JSON atau SSE, pengepala respons, penggunaan yang dikembalikan dan semua medan hasil yang diberikan. Tiada keluarga output khusus model dinyatakan sebagai terjamin.

Jika respons asal perlu disemak

Simpan respons asal dan identiti cubaan; tiada semakan berkala tugas baharu atau penghantaran semula disimpulkan.

Medan respons
MedanJenisMaksud
Medancomplete response JSONJenisobjectMaksudKekalkan setiap medan yang dikembalikan tanpa mengandaikan keluarga hasil khusus model.
MedanSSE data eventsJenisstreamMaksudKekalkan setiap peristiwa dan penanda terminal yang dikembalikan tanpa memilih medan teks sahaja.

Alias

Alias model

Ailoot Ultra sora-2

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

sora-2

Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2

sora-2

Lain-lain /sora-2

Pengenalan

Sora 2 mencipta video dengan dialog, kesan bunyi dan audio latar yang disegerakkan daripada teks atau imej rujukan. Profil standard menyokong penerokaan visual dan klip konsep, dengan aliran kerja berasingan daripada pengeluar untuk watak bukan manusia yang boleh digunakan semula, penyambungan dan suntingan video yang khusus.

Input yang diterima
Teks
Hasil
json · sse

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · Anthropic Messages POST /v1/messages
Input
text
Output
json, sse
Format output
JSON atau SSE
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
sora-2
Lalai—
MedanmessagesJenismessage[]KeperluanDiperlukanNilai & hadLalai—
Medanmessages[].roleJenisstringKeperluanDiperlukanNilai & had
user, assistant
Lalai—
Medanmessages[].contentJenisstringKeperluanDiperlukanNilai & hadLalai—
Medanmax_tokensJenisintegerKeperluanDiperlukanNilai & hadLalai—
MedanstreamJenisbooleanKeperluanPilihanNilai & hadLalaifalse
Gabungan bahan input

Teks · Teks UTF-8

rentetan messages[].content

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages, max_tokens
Parameteroptional_controlsKontrakstream
Parametermaterial_typesKontraktext
Parametertext_file_materialKontrakBaca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan.

Kitar hayat: synchronous_or_streamed

Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas
Tidak dinyatakan Apabila mod pantas dipilih
Mod flex
Tidak dinyatakan Apabila mod flex dipilih
Usaha penaakulan maksimum
Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default

Kadar Ailoot

Harga mengikut konfigurasi

KonfigurasiJadual kadarCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasCaj
Input · Token input $0 / 1K token
Output · Token output $0.2 / 1K token
Input · Bacaan cache $0 / 1K token
Input · Penulisan cache $0 / 1K token
Input · Penulisan cache, 1 jam — / 1K token

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot Ultra · Anthropic Messages

Badan JSON minimum yang lengkapcurl · gunakan dokumen UTF-8 andaPython · simpan hasil lengkap
{
  "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))

Terima dan simpan hasil

Ailoot Ultra · Anthropic Messages

JSON atau SSE

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.

Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons
MedanJenis
MedanidJenisstring
MedanmodelJenisstring
Medancontent[]Jenistext|thinking|tool_use|other content block
Medanstop_reasonJenisstring|null
MedanusageJenisobject
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.

Alias

Alias model

Ailoot Ultra sora-2

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

sora-2

FAQ · sora-2
Apakah input dan hasil yang tersedia?

POST /v1/chat/completions · sora-2: text → json, sse

POST /v1/messages · sora-2: text → json, sse

Apakah medan yang digunakan oleh permintaan?

POST /v1/chat/completions · sora-2: model, messages, stream

POST /v1/messages · sora-2: model, messages, max_tokens, stream

Butiran lanjut

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan
Pilih pelan berdiskaun untuk permintaan berkala anda.
Kod promosi sehingga 50%
Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.
Perbelanjaan dalam sejarah
Model, token dan jumlah disimpan bagi setiap permintaan.

Pilih langganan · Lihat harga model

Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial
Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.
Lesen penjual semula
Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.
Dokumen pada laman
Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

Mohon lesen penjual semula · Tawaran dan perjanjian lesen