model

sora-2

Markdown · JSON

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.

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-2

Lainnya /sora-2

Mulai

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
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
sora-2
Bawaan—
KolommessagesJenismessage[]PersyaratanWajibNilai & batasanBawaan—
Kolommessages[].roleJenisstringPersyaratanWajibNilai & batasanBawaan—
Kolommessages[].contentJenisstringPersyaratanWajibNilai & batasanBawaan—
KolomstreamJenisbooleanPersyaratanOpsionalNilai & batasanBawaanfalse
Kombinasi bahan masukan

owned_text_messages

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages
Parametermaterial_typesKontraktext
ParametermessagesKontrakarray pesan dengan role dan content berupa string literal
Parameterfile_materialKontrakMateri UTF-8 aktual dapat dimasukkan sebagai isi string literal; tidak ada referensi berkas yang disimpulkan.
Parameteroptional_controlsKontrakstream

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

KonfigurasiJadwal tarifBiaya
KonfigurasiTarif dasar tokenJadwal tarifTarif dasarBiaya
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

curl · respons JSON lengkapPython SDK · respons JSON lengkapcurl · pertahankan aliran 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

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
KolomJenisArti
Kolomcomplete response JSONJenisobjectArtiPertahankan setiap bidang yang dikembalikan tanpa mengasumsikan keluarga hasil khusus model.
KolomSSE data eventsJenisstreamArtiPertahankan 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

sora-2

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

sora-2

Lainnya /sora-2

Mulai

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
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
sora-2
Bawaan—
KolommessagesJenismessage[]PersyaratanWajibNilai & batasanBawaan—
Kolommessages[].roleJenisstringPersyaratanWajibNilai & batasan
user, assistant
Bawaan—
Kolommessages[].contentJenisstringPersyaratanWajibNilai & batasanBawaan—
Kolommax_tokensJenisintegerPersyaratanWajibNilai & batasanBawaan—
KolomstreamJenisbooleanPersyaratanOpsionalNilai & batasanBawaanfalse
Kombinasi bahan masukan

Teks · Teks UTF-8

string messages[].content

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages, max_tokens
Parameteroptional_controlsKontrakstream
Parametermaterial_typesKontraktext
Parametertext_file_materialKontrakBaca 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

KonfigurasiJadwal tarifBiaya
KonfigurasiTarif dasar tokenJadwal tarifTarif dasarBiaya
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

Isi permintaan JSON minimal yang lengkapcurl · gunakan dokumen UTF-8 AndaPython · simpan hasil secara 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, 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
KolomJenis
KolomidJenisstring
KolommodelJenisstring
Kolomcontent[]Jenistext|thinking|tool_use|other content block
Kolomstop_reasonJenisstring|null
KolomusageJenisobject
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah 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

sora-2

FAQ · sora-2
Input dan hasil apa yang tersedia?

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

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

Kolom apa yang digunakan permintaan?

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

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

Rincian selengkapnya

Hubungkan Ailoot ke Claude Code, OpenCode, Hermes, atau aplikasi Anda.

Perusahaan dan portofolio proyeknya

Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.

Beli token dengan diskon.

Diskon langganan untuk pekerjaan rutin. Kode promo — hingga 50% untuk pembelian token.

Langganan
Pilih paket dengan diskon untuk permintaan rutin Anda.
Kode promo hingga 50%
Masukkan kode saat membeli. Harga dihitung ulang sesuai promosi aktif.
Biaya dalam riwayat
Model, token, dan jumlah tagihan disimpan untuk setiap permintaan.

Pilih langganan · Lihat harga model

Hubungkan API ke produk yang Anda jual.

SaaS, aplikasi, dan bot — sesuai penawaran dan perjanjian lisensi Ailoot. Untuk penjualan kembali, mintalah lisensi reseller.

Aplikasi komersial
Integrasikan pembuatan teks, gambar, video, dan suara dalam fitur berbayar layanan Anda.
Lisensi reseller
Kirim deskripsi proyek dan skema akses. Mintalah ketentuan penggunaan dan penjualan kembali secara tertulis.
Dokumen di situs
Penawaran, perjanjian lisensi, dan kebijakan pemrosesan data tersedia sebelum koneksi.

Minta lisensi reseller · Penawaran dan perjanjian lisensi