sora-2
Sora 2 membuat video dengan dialog, efek suara, dan audio latar yang tersinkron dari teks atau gambar referensi. Profil standar mendukung eksplorasi visual dan klip konsep, dengan alur kerja terpisah dari pembuatnya untuk karakter nonmanusia yang dapat digunakan kembali, kelanjutan, dan penyuntingan video yang terarah.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
Sora 2 adalah model pembuat video dan audio OpenAI untuk klip dinamis yang dibuat dari deskripsi adegan tertulis atau gambar referensi. Model ini menghasilkan rangkaian visual bersama ucapan, efek, dan suara latar yang tersinkron. Profil Sora 2 standar ditujukan untuk eksplorasi visual, pengembangan konsep, prototipe, dan potongan kasar. Sora 2 Pro adalah edisi terpisah yang ditujukan untuk kesetiaan visual lebih tinggi dan penyelesaian beresolusi lebih tinggi.
Deskripsikan shot yang dapat dilihat dan didengar
Panduan prompting pembuatnya menyusun brief yang berguna berdasarkan pembingkaian, subjek, aksi, latar, dan cahaya. Berikan gaya visual yang selaras pada adegan, lalu deskripsikan gerakan dalam tahapan yang jelas. Konsep produk orisinal dapat menampilkan objek mekanis kecil yang berputar sekali di meja kerja saat kamera perlahan mendekat, dengan cahaya jendela yang lembut dan suara motor yang halus. Nyatakan hal yang perlu diperhatikan penonton dan bagaimana aksi berakhir.
Pastikan gerakan kamera dan aksi subjek pada setiap shot mudah dipahami. Rangkaian yang rumit dapat dibagi menjadi blok shot terpisah, masing-masing dengan pembingkaian, aksi, dan pencahayaan sendiri. Pertahankan detail subjek dan palet yang sama jika beberapa klip dimaksudkan untuk membentuk satu rangkaian. Panduan tersebut menekankan bahwa shot yang lebih pendek umumnya mengikuti arahan dengan lebih andal dan pembuatan berulang dengan prompt yang sama menghasilkan take yang berbeda.
Peluncuran model ini menjelaskan peningkatan perilaku fisik dan kesinambungan antarshot, termasuk gaya realistis, sinematik, dan anime. Ini adalah kemampuan yang dimaksudkan untuk diarahkan dan diperiksa. Tinjau gerakan, kontak antarobjek, proporsi, dan kesinambungan, alih-alih menganggap bingkai pertama yang meyakinkan menjamin rangkaian yang koheren. Jika suatu aksi kurang jelas, sederhanakan dan berikan awal serta akhir yang terlihat.
Arahkan dialog dan suara secara terpisah
Tentukan kalimat yang diucapkan secara terpisah dari deskripsi visual dan beri label pembicara secara konsisten. Buat dialog cukup pendek agar sesuai dengan aksi dan durasi klip yang dituju. Untuk animasi dua karakter, gunakan pertanyaan dan jawaban singkat secara bergantian, alih-alih meminta shot pendek menampung ucapan panjang. Panduan tersebut memperingatkan bahwa dialog yang rumit dan panjang dapat mengganggu tempo dan sinkronisasi.
Deskripsikan suasana suara yang sesuai dengan adegan: suara gerakan kecil, suasana ruangan, atau irama efek lingkungan. Jelaskan suara mana yang harus bertepatan dengan aksi. Dengarkan ucapan dan efek yang dihasilkan bersama gambarnya, sambil memeriksa penetapan pembicara, kata-kata, dan waktu kemunculannya. Audio tersinkron merupakan bagian dari klip yang dihasilkan, bukan jawaban teks terpisah.
Ukuran, durasi, dan pembukaan berpanduan gambar
Ukuran keluaran model standar yang didokumentasikan adalah 720×1280 potret dan 1280×720 lanskap. Ukuran beresolusi lebih tinggi pada profil Pro tidak boleh dilekatkan pada Sora 2 standar. Ukuran dan durasi merupakan pengaturan permintaan yang eksplisit; menuliskan ukuran berbeda atau meminta film lebih panjang dalam prompt tidak mengubah pengaturan tersebut. Referensi pembuatan mencantumkan pengaturan klip 4, 8, dan 12 detik, jadi pilih tahapan aksi singkat dan terdefinisi saat menyiapkan shot. Alur kerja pembuat yang diperluas juga mendokumentasikan pengaturan klip 16 dan 20 detik.
Gambar referensi menjadi acuan bingkai pertama, sementara teks menjelaskan kejadian selanjutnya. Pembuatnya mendukung referensi JPEG, PNG, dan WebP serta mewajibkan gambar sesuai dengan ukuran video target. Siapkan subjek, lingkungan, dan komposisi pada gambar pembuka tersebut, lalu mintalah gerakan tertentu. Ini adalah referensi bingkai pembuka, bukan jaminan bahwa setiap detail akan tetap sama sepanjang klip.
Karakter nonmanusia yang dapat digunakan kembali
Alur kerja pembuat yang diperluas dapat membuat aset karakter yang dapat digunakan kembali dari video referensi pendek tentang hewan, maskot, atau objek. Panduan persiapannya meminta klip MP4 sekitar dua hingga empat detik, 720p hingga 1080p, dengan rasio 16:9 atau 9:16. Menyamakan rasio aspek sumber dan keluaran membantu menghindari tampilan yang meregang. Pembuatan dapat merujuk pada hingga dua karakter.
Simpan pengidentifikasi karakter dan sebutkan namanya dalam prompt; hanya meneruskan pengidentifikasi belum memenuhi seluruh persiapan dalam panduan. Aset karakter dapat menyertai pembuatan berpanduan gambar, tetapi ekstensi video tidak menerimanya. Pembuatnya secara default memblokir unggahan karakter yang menyerupai manusia dan menolak gambar referensi yang memuat wajah manusia dalam alur API yang didokumentasikan. Fitur karakter pribadi di aplikasi Sora merupakan alur produk terpisah.
Lanjutkan atau sunting klip yang selesai
Ekstensi menerima video sumber yang telah selesai dan prompt kelanjutan, dengan menggunakan seluruh klip sumber sebagai konteks untuk gerakan, arah kamera, dan kesinambungan adegan. Panduan tersebut menjelaskan penambahan hingga 20 detik per ekstensi. Masukan ekstensi yang didokumentasikan adalah video sumber dan teks; referensi karakter atau gambar tambahan tidak termasuk dalam mode tersebut. Deskripsikan bagaimana aksi yang ada berlanjut, alih-alih memperkenalkan adegan yang tidak berkaitan tanpa transisi.
Penyuntingan video menargetkan perubahan yang jelas pada klip yang ada. Revisi terarah dapat mengubah warna objek atau palet adegan sambil mempertahankan bagian shot lainnya. Panduan pembuat merekomendasikan satu perubahan yang terdefinisi jelas setiap kali dan membedakan penyuntingan video yang dihasilkan dari pengunggahan rekaman sembarang, yang memiliki syarat kelayakan tersendiri. Simpan sumber yang sudah selesai dan identifikasi revisi tepat yang dibutuhkan sebelum melakukan penyuntingan berikutnya.
Job render dan video yang selesai
Alur video pembuat yang didokumentasikan bersifat asinkron: job yang dikirim dapat berada dalam antrean atau sedang diproses sebelum selesai atau gagal. Job yang selesai menghasilkan video MP4; aset thumbnail dan sprite-sheet mendukung pratinjau dan penelusuran. Jaga keterkaitan identitas job dengan prompt, referensi, dan aset yang dikembalikan. Respons awal job bukanlah video akhir yang dapat diputar.
Alur pengunduhan biasa menjelaskan masa berlaku URL unduhan selama satu jam. Alur batch yang diperluas menyiapkan permintaan render JSON independen dengan pengidentifikasi item yang stabil, referensi yang diunggah, dan hasil yang dipetakan kembali ke setiap shot; aset yang selesai memiliki periode unduhan terpisah hingga 24 jam. Segera simpan klip yang selesai dan periksa gambar serta suara sebenarnya sebelum menganggapnya sebagai take yang dipilih.
Batasan konten API yang didokumentasikan pembuatnya mewajibkan materi yang sesuai untuk audiens di bawah 18 tahun serta menolak karakter atau musik berhak cipta dan pembuatan orang nyata. Siapkan adegan dan referensi sesuai ketentuan tersebut. Hasil langsung model adalah video dengan audio, bukan gambar diam yang dihasilkan, respons alat percakapan, atau film tanpa batas durasi. Pertahankan identitas model standar yang tepat dan klip sumber yang diterima saat melanjutkan konsep visual.
Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2
sora-2Mulai
Sora 2 membuat video dengan dialog, efek suara, dan audio latar yang tersinkron dari teks atau gambar referensi. Profil standar mendukung eksplorasi visual dan klip konsep, dengan alur kerja terpisah dari pembuatnya untuk karakter nonmanusia yang dapat digunakan kembali, kelanjutan, dan penyuntingan video yang terarah.
- Masukan yang diterima
- Teks
- Hasil
- json · sse
Tersedia di Ailoot · masukan & metode
Ailoot Ultra · Chat Completions POST /v1/chat/completions
- Masukan
text- Keluaran
json,sse- Format keluaran
- JSON atau text/event-stream
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan sora-2 | Bawaan— |
Kolommessages | Jenismessage[] | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolommessages[].role | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolommessages[].content | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomstream | Jenisboolean | PersyaratanOpsional | Nilai & batasan | Bawaanfalse |
Kombinasi bahan masukan
owned_text_messages
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, messages |
Parametermaterial_types | Kontraktext |
Parametermessages | Kontrakarray pesan dengan role dan content berupa string literal |
Parameterfile_material | KontrakMateri UTF-8 aktual dapat dimasukkan sebagai isi string literal; tidak ada referensi berkas yang disimpulkan. |
Parameteroptional_controls | Kontrakstream |
Siklus hidup: synchronous_json_or_sse
Paket
Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.
- Mode Fast
- Tidak ditentukan Saat mode fast dipilih
- Mode Flex
- Tidak ditentukan Saat mode flex dipilih
- Upaya penalaran maksimum
- Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default
Tarif Ailoot
Harga menurut konfigurasi
| Konfigurasi | Jadwal tarif | Biaya |
|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Biaya Masukan · Token masukan $0 / 1K token Keluaran · Token keluaran $0.2 / 1K token Masukan · Pembacaan cache $0 / 1K token Masukan · Penulisan cache $0 / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →
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
JSON atau text/event-stream
Simpan semua hasil yang selesai
Simpan setiap respons lengkap, berkas, dan bagian konten yang dikembalikan.
Simpan seluruh byte JSON atau SSE, header respons, penggunaan yang dikembalikan, dan semua bidang hasil yang diberikan. Tidak ada keluarga keluaran khusus model yang dinyatakan.
Jika respons asli perlu diperiksa
Simpan respons asli dan identitas percobaan; tidak disimpulkan adanya pemeriksaan berkala tugas baru atau pengiriman ulang.
Kolom respons
| Kolom | Jenis | Arti |
|---|---|---|
Kolomcomplete response JSON | Jenisobject | ArtiPertahankan setiap bidang yang dikembalikan tanpa mengasumsikan keluarga hasil khusus model. |
KolomSSE data events | Jenisstream | ArtiPertahankan setiap peristiwa dan penanda terminal yang dikembalikan tanpa hanya memilih bidang teks. |
Alias
Alias model
Ailoot Ultra sora-2
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2Mulai
Sora 2 membuat video dengan dialog, efek suara, dan audio latar yang tersinkron dari teks atau gambar referensi. Profil standar mendukung eksplorasi visual dan klip konsep, dengan alur kerja terpisah dari pembuatnya untuk karakter nonmanusia yang dapat digunakan kembali, kelanjutan, dan penyuntingan video yang terarah.
- Masukan yang diterima
- Teks
- Hasil
- json · sse
Tersedia di Ailoot · masukan & metode
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Masukan
text- Keluaran
json,sse- Format keluaran
- JSON atau SSE
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan sora-2 | Bawaan— |
Kolommessages | Jenismessage[] | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolommessages[].role | Jenisstring | PersyaratanWajib | Nilai & batasan user, assistant | Bawaan— |
Kolommessages[].content | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolommax_tokens | Jenisinteger | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomstream | Jenisboolean | PersyaratanOpsional | Nilai & batasan | Bawaanfalse |
Kombinasi bahan masukan
Teks · Teks UTF-8
string messages[].content
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, messages, max_tokens |
Parameteroptional_controls | Kontrakstream |
Parametermaterial_types | Kontraktext |
Parametertext_file_material | KontrakBaca dokumen UTF-8 yang sebenarnya dan masukkan teksnya ke string masukan atau konten pesan yang ditunjukkan. |
Siklus hidup: synchronous_or_streamed
Paket
Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.
- Mode Fast
- Tidak ditentukan Saat mode fast dipilih
- Mode Flex
- Tidak ditentukan Saat mode flex dipilih
- Upaya penalaran maksimum
- Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default
Tarif Ailoot
Harga menurut konfigurasi
| Konfigurasi | Jadwal tarif | Biaya |
|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Biaya Masukan · Token masukan $0 / 1K token Keluaran · Token keluaran $0.2 / 1K token Masukan · Pembacaan cache $0 / 1K token Masukan · Penulisan cache $0 / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →
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, berkas, dan bagian konten yang dikembalikan.
Simpan semua blok konten, tanda tangan penalaran, dan ID penggunaan alat yang sebenarnya. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan keluaran.
Jika respons asli perlu diperiksa
Simpan ID permintaan/respons dan header. URL umum untuk pengambilan tugas teks tidak disediakan.
Kolom respons
| Kolom | Jenis |
|---|---|
Kolomid | Jenisstring |
Kolommodel | Jenisstring |
Kolomcontent[] | Jenistext|thinking|tool_use|other content block |
Kolomstop_reason | Jenisstring|null |
Kolomusage | Jenisobject |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiBidang wajib, representasi materi, atau nilai parameter tidak valid | Langkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru. |
Alias
Alias model
Ailoot Ultra sora-2
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · sora-2
- Input dan hasil apa yang tersedia?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- Kolom apa yang digunakan permintaan?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream