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.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
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-2Pengenalan
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
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had sora-2 | Lalai— |
Medanmessages | Jenismessage[] | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanmessages[].role | Jenisstring | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanmessages[].content | Jenisstring | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanstream | Jenisboolean | KeperluanPilihan | Nilai & had | Lalaifalse |
Gabungan bahan input
owned_text_messages
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, messages |
Parametermaterial_types | Kontraktext |
Parametermessages | Kontraktatasusunan mesej dengan role dan kandungan rentetan literal |
Parameterfile_material | KontrakBahan UTF-8 sebenar boleh disisipkan sebagai kandungan rentetan literal; tiada rujukan fail disimpulkan. |
Parameteroptional_controls | Kontrakstream |
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
| Konfigurasi | Jadual kadar | Caj |
|---|---|---|
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Caj 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
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
| Medan | Jenis | Maksud |
|---|---|---|
Medancomplete response JSON | Jenisobject | MaksudKekalkan setiap medan yang dikembalikan tanpa mengandaikan keluarga hasil khusus model. |
MedanSSE data events | Jenisstream | MaksudKekalkan 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
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2Pengenalan
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
| Medan | Jenis | Keperluan | Nilai & had | Lalai |
|---|---|---|---|---|
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had sora-2 | Lalai— |
Medanmessages | Jenismessage[] | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanmessages[].role | Jenisstring | KeperluanDiperlukan | Nilai & had user, assistant | Lalai— |
Medanmessages[].content | Jenisstring | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanmax_tokens | Jenisinteger | KeperluanDiperlukan | Nilai & had | Lalai— |
Medanstream | Jenisboolean | KeperluanPilihan | Nilai & had | Lalaifalse |
Gabungan bahan input
Teks · Teks UTF-8
rentetan messages[].content
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, messages, max_tokens |
Parameteroptional_controls | Kontrakstream |
Parametermaterial_types | Kontraktext |
Parametertext_file_material | KontrakBaca 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
| Konfigurasi | Jadual kadar | Caj |
|---|---|---|
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Caj 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
{
"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
| Medan | Jenis |
|---|---|
Medanid | Jenisstring |
Medanmodel | Jenisstring |
Medancontent[] | Jenistext|thinking|tool_use|other content block |
Medanstop_reason | Jenisstring|null |
Medanusage | Jenisobject |
Ralat dan langkah seterusnya
| Respons | Syarat | Langkah seterusnya |
|---|---|---|
Respons400 · invalid_request_error | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah 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
FAQ · sora-2
- Apakah input dan hasil yang tersedia?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- Apakah medan yang digunakan oleh permintaan?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream