Kirim tugas pembuatan video
Membuat tugas pembuatan video asinkron dan langsung mengembalikan task_id (HTTP 202). Lakukan polling GET /api/v1/videos/generations/{task_id} hingga berhasil. Body permintaan dapat diberikan dalam bentuk datar ({model, prompt, ...}) atau bertingkat ({model, input: {prompt, ...}}); objek input diutamakan jika ada. Field callback (callBackUrl / callback_url / callbackUrl) diabaikan.
Tiga mode input yang saling eksklusif:
- text-to-video: hanya prompt;
- image-to-video (frame pertama/terakhir): first_frame_url (+ last_frame_url opsional);
- omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. Mencampur frame pertama/terakhir dengan input referensi multimodal apa pun akan mengembalikan 400 invalid_request_error.
- Tipe: stringX
- Request - Id ID permintaan pemanggil opsional yang dikembalikan untuk diagnostik.
- Tipe: stringX
- Felo - Channel Kode kanal publik yang dipisahkan koma dan berurutan. Hilangkan header ini untuk menggunakan default; default harus digunakan sendiri. Dalam mode wallet, default memindai urutan kanal publik efektif model secara terbalik, melewati kanal yang tidak dipublikasikan atau tidak tersedia, dan memilih penyedia kanal pertama yang tersedia. Ini mencakup endpoint yang tersedia dari penyedia tersebut dengan ID model upstream dan tingkat layanan yang sama. Kanal eksplisit divalidasi dalam urutan yang ditentukan klien; hanya grup penyedia kanal pertama yang dikirimkan. Tidak ada fallback otomatis ke penyedia lain. Header penyedia lama tidak dapat menimpa perutean kanal.
Input pembuatan video. Berupa datar ({model, prompt, ...}) atau bertingkat ({model, input: {...}}). input diutamakan. Tepat satu mode input harus digunakan; mencampur frame pertama/terakhir dengan input referensi multimodal akan ditolak.
- Tipe: stringmodelwajib
Nama model yang digunakan di Felo, misalnya seedance-2.0-mini.
- Tipe: string enumaspect
_ratio nilai- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- Tipe: integerdurationmin:4maks:15
Integer numbers.
- Tipe: string Format: urifirst
_frame _url - Tipe: booleangenerate
_audio - Tipe: objectinput
Objek input bertingkat opsional; jika ada, field-nya diutamakan di atas field sejajar.
- aspectTipe: string enum
_ratio Rasio aspek keluaran; adaptive mengikuti rasio gambar input.
nilai- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- durationTipe: integermin:4maks:15
Durasi keluaran dalam detik.
- firstTipe: string Format: uri
_frame _url URL gambar frame pertama (mode image-to-video).
- generateTipe: boolean
_audio Apakah akan menghasilkan trek audio yang tersinkronisasi.
- lastTipe: string Format: uri
_frame _url URL gambar frame terakhir; harus digunakan bersama first_frame_url.
- promptTipe: stringpanjang maks:2000
Prompt. Wajib untuk mode text-to-video dan omni-reference.
- referenceTipe: array string[] …3Format: uri
_audio _urls Klip audio referensi omni.
- referenceTipe: array string[] …9Format: uri
_image _urls Gambar referensi omni. Saling eksklusif dengan frame pertama/terakhir.
- referenceTipe: array string[] …3Format: uri
_video _urls Video referensi omni. Saling eksklusif dengan frame pertama/terakhir. Menyertakan video mengubah harga satuan tagihan dan menambahkan durasi input ke jumlah token.
- resolutionTipe: string enum
Resolusi keluaran. Resolusi lebih tinggi menghabiskan lebih banyak token dan lebih mahal.
nilai- 480p
- 720p
- 1080p
- 4k
- serviceTipe: string | null
_tier Saat ini hanya default (standard) yang didukung. Nilai yang dihilangkan, null, alias, dan string yang tidak didukung akan kembali ke default; tipe lain mengembalikan HTTP 400. Kanal dan harga yang dikonfigurasi tetap tidak berubah. API teks mengirim nilai standar penyedia; API Decisions dan pembuatan menghilangkan field upstream.
- Tipe: string Format: urilast
_frame _url - Tipe: stringpromptpanjang maks:2000
- Tipe: array string[] …3Format: urireference
_audio _urls - Tipe: array string[] …9Format: urireference
_image _urls - Tipe: array string[] …3Format: urireference
_video _urls - Tipe: string enumresolutionnilai
- 480p
- 720p
- 1080p
- 4k
- Tipe: string | nullservice
_tier Saat ini hanya default (standard) yang didukung. Nilai yang dihilangkan, null, alias, dan string yang tidak didukung akan kembali ke default; tipe lain mengembalikan HTTP 400. Kanal dan harga yang dikonfigurasi tetap tidak berubah. API teks mengirim nilai standar penyedia; API Decisions dan pembuatan menghilangkan field upstream.
- Tipe: object · VideoGenerationAccepted202
Tugas diterima
- enumkindconst:videowajibnilai
- video
- Tipe: array string[]outputswajib
Kosong hingga tugas berhasil.
- enumstatusconst:queuedwajibnilai
- queued
- Tipe: stringtask
_id wajibID tugas yang digunakan untuk polling.
application/json - Tipe: object · GenerationError400
Permintaan tidak valid (model tidak dikenal, mode input tercampur, field tidak valid)
Envelope error yang kompatibel dengan OpenAI.
- Tipe: objecterror
- messageTipe: stringwajib
- typeTipe: string enumwajibnilai
- invalid
_request _error - server
_error
- codeTipe: string
- paramTipe: string boleh null
application/json - Tipe: object · GenerationError401
Kunci API Felo tidak valid atau tidak ada
Envelope error yang kompatibel dengan OpenAI.
- Tipe: objecterror
- messageTipe: stringwajib
- typeTipe: string enumwajibnilai
- invalid
_request _error - server
_error
- codeTipe: string
- paramTipe: string boleh null
application/json - Tipe: object · GenerationError402
Saldo tidak cukup / persyaratan tagihan tidak terpenuhi
Envelope error yang kompatibel dengan OpenAI.
- Tipe: objecterror
- messageTipe: stringwajib
- typeTipe: string enumwajibnilai
- invalid
_request _error - server
_error
- codeTipe: string
- paramTipe: string boleh null
application/json - Tipe: object · GenerationError403
Akun tidak diizinkan (diperlukan langganan atau pengguna diblokir). Model yang dinonaktifkan juga ditolak sebelum panggilan upstream. Permintaan dan tugas yang sudah diterima tetap berlanjut.
Envelope error yang kompatibel dengan OpenAI.
- Tipe: objecterror
- messageTipe: stringwajib
- typeTipe: string enumwajibnilai
- invalid
_request _error - server
_error
- codeTipe: string
- paramTipe: string boleh null
application/json - Tipe: object · GenerationError429
Batas permintaan atau pengeluaran tercapai
Envelope error yang kompatibel dengan OpenAI.
- Tipe: objecterror
- messageTipe: stringwajib
- typeTipe: string enumwajibnilai
- invalid
_request _error - server
_error
- codeTipe: string
- paramTipe: string boleh null
application/json - Tipe: object · GenerationError502
Penyedia upstream gagal
Envelope error yang kompatibel dengan OpenAI.
- Tipe: objecterror
- messageTipe: stringwajib
- typeTipe: string enumwajibnilai
- invalid
_request _error - server
_error
- codeTipe: string
- paramTipe: string boleh null
application/json - Tipe: object · GenerationError503
Layanan pembuatan atau layanan tagihan sementara tidak tersedia
Envelope error yang kompatibel dengan OpenAI.
- Tipe: objecterror
- messageTipe: stringwajib
- typeTipe: string enumwajibnilai
- invalid
_request _error - server
_error
- codeTipe: string
- paramTipe: string boleh null
application/json
curl https://openapi.felo.ai/api/v1/videos/generations \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"model": "seedance-2.0-mini",
"prompt": "a cinematic trailer shot, 720p",
"resolution": "720p",
"duration": 5,
"generate_audio": true
}'
{
"task_id": "string",
"status": "queued",
"kind": "video",
"outputs": [
"string"
]
}