Source: https://ailoot.ai/models/id/viduq2/
Canonical: https://ailoot.ai/models/id/viduq2/
Language: id

# Vidu: Q2 Text-to-Video

[Markdown](https://ailoot.ai/models/id/viduq2/index.md) · [JSON](https://ailoot.ai/models/id/viduq2/facts.json)

## [Vidu: Q2 Text-to-Video](https://ailoot.ai/models/id/viduq2/)

Vidu Q2 membuat video dari arahan adegan tertulis, dengan durasi 1–10 detik, keluaran 540p, 720p, atau 1080p, serta lima rasio aspek. Profil viduq2 ini menggunakan prompt untuk gaya dan gerakan serta mengembalikan hasil melalui tugas asinkron.

- [**Ailoot Ultra · Pemrosesan video** `POST /v1/videos` `viduq2`](https://ailoot.ai/models/id/viduq2/#method-0)

Tentang model

Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.

Vidu Q2 membuat video dari adegan tertulis melalui profil teks-ke-video yang dipilih dengan viduq2. Masukan wajibnya adalah pengenal model yang tepat dan prompt yang mendeskripsikan adegan. Gunakan untuk konsep produk singkat, tampilan pembuka, atau aksi karakter yang penampilan dan gerakannya dapat ditentukan dengan kata-kata. Metode yang dikonfigurasi ini adalah teks-ke-video; deskripsinya tidak menetapkan mode gambar rujukan atau penyuntingan video yang terpisah pada selektor.

Susun arahan berdasarkan urutan yang terlihat. Tentukan subjek, lokasi, aksi, ukuran pengambilan gambar, gerakan kamera, dan komposisi akhir. Untuk konsep produk, jelaskan objek di atas meja, cahaya yang bergerak melintasi bahannya, dan kamera yang perlahan mendekat lalu berakhir pada detail yang dapat dikenali. Untuk adegan lokasi, perkenalkan lingkungan sebelum bergerak menuju titik fokus. Sesuaikan aksi dengan panjang klip yang dipilih agar adegan memiliki ruang untuk akhir yang dituju.

Batas prompt adalah 2000 karakter. Letakkan subjek dan aksi utama terlebih dahulu, lalu tambahkan detail pencahayaan, bahan, lingkungan, dan kamera yang mengubah hasil yang diinginkan. Tentukan gaya visual dalam prompt. Panduan khusus Q2 menyatakan bahwa parameter style dan movement\_amplitude yang terpisah tidak berpengaruh pada model ini, sehingga preset general atau anime serta pilihan amplitudo gerakan tidak menggantikan deskripsi adegan yang jelas.

Pengaturan durasi khusus model menerima detik bulat dari satu hingga sepuluh. Pilihan resolusi khusus Q2 adalah 540p, 720p, dan 1080p, dengan 720p sebagai bawaan yang didokumentasikan. Pilih durasi dan resolusi bersama berdasarkan aksi serta tujuan penggunaannya. Pengungkapan singkat dan gerakan yang lebih panjang memerlukan pemasaan berbeda; peningkatan durasi yang diminta perlu mendukung urutan yang terlihat, bukan sekadar memanjangkan arahan yang tidak berubah. Periksa dimensi dan panjang klip yang benar-benar dikembalikan ketika menyiapkan penempatan akhirnya.

Pilihan aspect\_ratio yang didokumentasikan adalah 16:9, 9:16, 3:4, 4:3, dan 1:1, dengan 16:9 sebagai bawaan. Panduan secara eksplisit menyertakan 3:4 dan 4:3 untuk keluarga Q2. Pilih bingkai sebelum generasi dan jelaskan komposisi yang sesuai: pastikan subjek utama terbaca dalam tampilan potret, atau gunakan lebar bingkai lanskap untuk lingkungan sekitar. Pastikan tampilan penutup cukup jelas untuk halaman yang dituju, presentasi, atau pengolahan teks keterangan berikutnya.

Bidang seed mengendalikan variasi. Menghilangkannya atau memberikan 0 memilih nilai acak; nilai bukan nol memilih opsi seed tetap yang didokumentasikan untuk generasi yang dapat direproduksi. Simpan seed yang dikembalikan bersama prompt dan pengaturan ketika membandingkan versi. Operasi bersama juga mendokumentasikan kontrol audio dan off\_peak khusus untuk model Q3. Opsi Q3 itu bukan kemampuan yang ditetapkan pada profil Q2 ini; rencanakan permintaan berdasarkan masukan teks dan keluaran video yang didokumentasikan.

Generasi berlangsung secara asinkron. Pengiriman mengembalikan task\_id dan keadaan awal, dengan created digunakan untuk tugas yang baru dibuat. Pertahankan identitas tugas itu selama mengikuti pemrosesan. Kueri hasil yang didokumentasikan menggunakan state=success untuk hasil yang berhasil dan mengembalikan array creations. Setiap entri memiliki URL video dalam creations\[\].url; simpan setiap video yang dikembalikan, alih-alih menganggap tugas selalu berisi tepat satu hasil generasi.

Dokumentasi hasil juga melaporkan durasi video yang sebenarnya, fps, serta lebar dan tinggi resolusi. Simpan nilai yang dilaporkan tersebut bersama klip jadi, alih-alih memperlakukan laju bingkai atau dimensi dalam contoh sebagai spesifikasi Q2 yang tetap. Respons pembuatan tugas mencakup nilai credits bersama konfigurasi permintaan. Simpan metadata tugas yang dilaporkan dan identitas tugas yang selesai bersama hasil agar setiap video tetap terhubung dengan pengaturan generasinya.

Tinjau seluruh urutan terhadap arahan awal: penampilan subjek, bentuk objek, arah gerak, kesinambungan kamera, dan tampilan akhir yang dituju. Untuk revisi, tentukan detail konkret yang tidak sesuai arahan dan pertahankan bagian adegan yang berhasil. Simpan prompt, selektor yang tepat, pengaturan, identitas tugas, dan video jadi bersama agar perbandingan berikutnya didasarkan pada artefak yang sebenarnya.

**Ailoot Ultra · Pemrosesan video** `POST /v1/videos` `viduq2`

[`viduq2`](https://ailoot.ai/models/id/#m=viduq2&route=Ultra&caller=viduq2&fmt=videos)

Vidu /`viduq2`

### Mulai

Vidu Q2 membuat video dari arahan adegan tertulis, dengan durasi 1–10 detik, keluaran 540p, 720p, atau 1080p, serta lima rasio aspek. Profil viduq2 ini menggunakan prompt untuk gaya dan gerakan serta mengembalikan hasil melalui tugas asinkron.

Masukan yang diterima

Teks

Hasil

Video

### Tersedia di Ailoot · masukan & metode

**Ailoot Ultra · Pemrosesan video** `POST /v1/videos`

Masukan

`text`

Keluaran

`video`

| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
| --- | --- | --- | --- | --- |
| Kolom`model` | Jenis`string` | PersyaratanWajib | Nilai & batasan viduq2 | Bawaan— |
| Kolom`prompt` | Jenis`string` | PersyaratanWajib | Nilai & batasan Kondisi: Jelaskan adegan yang akan dibuat. Batas yang didokumentasikan adalah 2000 karakter; Ailoot memeriksa bahwa string tidak kosong dan mempertahankan teksnya. | Bawaan— |
| Kolom`duration` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Minimum: 1 Maksimum: 10 Kondisi: Uraian khusus model viduq2 menetapkan 1–10 detik bulat. Tidak ada durasi bawaan khusus model yang didokumentasikan. Satuan: detik | Bawaan— |
| Kolom`seed` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Kondisi: Hilangkan atau kirim string "0" untuk keacakan. seed bukan nol yang diberikan memilih perilaku seed tetap yang didokumentasikan; tidak ada rentang angka yang ditentukan. | Bawaan— |
| Kolom`aspect_ratio` | Jenis`string` | PersyaratanOpsional | Nilai & batasan 16:9, 9:16, 3:4, 4:3, 1:1 | Bawaan16:9 |
| Kolom`resolution` | Jenis`string` | PersyaratanOpsional | Nilai & batasan 540p, 720p, 1080p Kondisi: Daftar khusus model viduq2 mendokumentasikan tingkat-tingkat ini untuk 1–10 detik. Enum dan tabel bersama juga menyebut 360p; keberlakuannya bertentangan dengan daftar tersebut dan tidak dinyatakan di sini. | Bawaan720p |
| Kolom`style` | Jenis`string` | PersyaratanOpsional | Nilai & batasan general, anime Kondisi: Permintaan bersama menerima bidang ini, tetapi dokumentasi secara tegas menyatakan bahwa bidang ini tidak berpengaruh untuk viduq2. | Bawaangeneral |
| Kolom`movement_amplitude` | Jenis`string` | PersyaratanOpsional | Nilai & batasan auto, small, medium, large Kondisi: Permintaan bersama menerima bidang ini, tetapi dokumentasi secara tegas menyatakan bahwa bidang ini tidak berpengaruh untuk model q2. | Bawaanauto |

Kombinasi bahan masukan

Parameter metode dan siklus hidup

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, prompt |
| Parameter`optional` | Kontrakduration, seed, aspect\_ratio, resolution, style, movement\_amplitude |
| Parameter`material_types` | Kontraktext |
| Parameter`additional_properties` | Kontraktrue |
| Parameter`validation_scope` | KontrakAiloot memvalidasi string model/prompt yang tidak kosong. Tipe dan batas opsional di bawah ini merupakan kontrak permintaan yang didokumentasikan; bidang permintaan lainnya dipertahankan untuk model yang dipilih. |

Alias metode: `/v1/videos/generations`

Siklus hidup: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

Buat sekali dan simpan id publik serta polling\_url yang dikembalikan.

Periksa operasi awal secara berkala dan baca state; keberhasilan serta hasil creations\[\].url milik Ailoot menjadi batas penyelesaian.

Unduh setiap URL video milik Ailoot yang dikembalikan; jangan menyimpulkan jumlah keluaran, durasi, atau laju bingkai yang tetap dari contoh.

### Paket

##### Cara menghitung biaya akhir

Tarif yang ditampilkan memperkirakan biaya sebelum pembuatan. Biaya akhir dihitung dari biaya yang tercatat untuk proses pembuatan awal. Durasi keluaran yang terukur dan kuantitas perkiraan bukanlah kuantitas akhir yang ditagihkan.

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

#### Perkiraan tarif untuk perbandingan

#### Harga menurut konfigurasi

Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.

| Konfigurasi | Jadwal tarif | Jumlah perkiraan | Biaya |
| --- | --- | --- | --- |
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Jumlah perkiraan— | Biaya Masukan · Token masukan · Perkiraan hanya untuk perbandingan **—** / 1K token Keluaran · Token keluaran · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Pembacaan cache · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Penulisan cache · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Penulisan cache, 1 jam · Perkiraan hanya untuk perbandingan **—** / 1K token |
| KonfigurasiPerkiraan biaya pembuatan | Jadwal tarif— | Jumlah perkiraanestimasi satu kali pembuatan | Biaya Keluaran · Perkiraan biaya pembuatan · Perkiraan hanya untuk perbandingan **$5.12** estimasi sebelum pembuatan Perkiraan ini bukan biaya tambahan maupun tarif tetap untuk proses pembuatan yang telah selesai. |

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 →](https://ailoot.ai/docs/id/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · Pemrosesan video

curl · buat videocurl · baca tugas aslicurl · unduh setiap video milik Anda

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"viduq2","prompt":"In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene."}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i:raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use the actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
```

```bash
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("state")!="success":raise SystemExit("Poll the same original job until its owned result is returned.")
creations=r.get("creations")
if not isinstance(creations,list) or not creations:raise SystemExit("No completed video creations.")
urls=[]
for item in creations:
    value=item.get("url") if isinstance(item,dict) else None
    values=[value] if isinstance(value,str) else value
    if not isinstance(values,list) or not values:raise SystemExit("No completed video URL.")
    for u in values:
        if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
        p=urlsplit(u)
        if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for the actual Ailoot-owned signed result.")
        urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
  index=$((index + 1))
done < asset-urls.txt
```

### Terima dan simpan hasil

#### Ailoot Ultra · Pemrosesan video

JSON mempertahankan state native dan array creations, dengan penambahan id/provider\_task\_id/polling\_url publik. URL video yang dipilih kosong sebelum publikasi dan menjadi URL bertanda tangan milik Ailoot setelah penyelesaian.

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### Simpan semua hasil yang selesai

Simpan setiap video yang selesai atau berkas yang dikembalikan; ambil setiap URL aset yang benar-benar dikembalikan.

Unduh setiap URL aktual yang dikembalikan dalam creations\[\].url; indeks konten mengidentifikasi satu keluaran nyata yang dikembalikan.

##### Jika respons asli perlu diperiksa

Deklarasi yang dipatok tidak mencantumkan status kegagalan terminal. Simpan respons/header/id asli dan periksa operasi yang sama untuk setiap status yang tidak dikenali atau kesalahan result\_pending\_check; jangan pernah kirim ulang pembuatan yang statusnya tidak diketahui.

Kolom respons

| Kolom | Jenis | Arti |
| --- | --- | --- |
| Kolom`id` | Jenisstring | ArtiPengenal tugas atau operasi publik Ailoot yang dikembalikan. |
| Kolom`provider_task_id` | Jenisstring | ArtiPengenal tugas awal, terpisah dari id publik. |
| Kolom`polling_url` | Jenisstring | ArtiJalur pencarian Ailoot yang dikembalikan untuk tugas awal. |
| Kolom`task_id` | Jenisstring when supplied | ArtiPengenal asli yang ada dalam respons pembuatan. |
| Kolom`state` | Jenisstring when supplied | ArtiStatus tugas native: created untuk status tertunda yang dipatok dan success untuk penyelesaian. |
| Kolom`err_code` | Jenisstring when supplied | ArtiDiagnostik tugas; spesifikasi yang disimpan tidak mendeklarasikan daftar kode kesalahan yang dienumerasi. |
| Kolom`creations[].url` | Jenisstring\|string\[\] | ArtiSetiap URL video selesai yang dipilih diganti dengan URL bertanda tangan milik Ailoot. |
| Kolom`creations[].video.duration` | Jenisnumber when supplied | ArtiDurasi video yang dikembalikan; periksa hasil aktual yang telah selesai. |
| Kolom`creations[].video.fps` | Jenisinteger when supplied | ArtiLaju bingkai yang dikembalikan; tidak dijanjikan laju bingkai yang tetap. |
| Kolom`creations[].video.resolution.width` | Jenisinteger when supplied | ArtiLebar keluaran yang dikembalikan dalam piksel. |
| Kolom`creations[].video.resolution.height` | Jenisinteger when supplied | ArtiTinggi keluaran yang dikembalikan dalam piksel. |

Kesalahan dan langkah berikutnya

| Respons | Kondisi | Langkah berikutnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | KondisiJSON/model tidak valid, string wajib tidak ada atau kosong, atau indeks content tidak valid. | Langkah berikutnya |
| Respons401 · `authentication_error` | KondisiKunci API Ailoot tidak valid. | Langkah berikutnya |
| Respons403 · `permission_error` | KondisiGrup kunci API tidak diizinkan mengakses rute media ini. | Langkah berikutnya |
| Respons404 · `not_found_error` | KondisiTugas awal atau keluaran yang diminta tidak ada atau tidak dimiliki oleh pengguna/kunci API/grup yang sama. | Langkah berikutnya |
| Respons502 · `result_pending_check` | KondisiPengiriman awal atau statusnya tidak lengkap atau tidak dapat direkonsiliasi; simpan ID asli dan jangan kirim ulang. | Langkah berikutnya |
| Respons503 · `result_pending_check` | KondisiPengikatan awal, rute, atau media milik Ailoot masih diperiksa; lanjutkan pemeriksaan operasi awal tersebut. | Langkah berikutnya |
| Respons503 · `server_error` | KondisiLayanan media atau penyimpanan tugas awal tidak tersedia. | Langkah berikutnya |

### Alias

#### Alias model

**Ailoot Ultra** [`viduq2`](https://ailoot.ai/models/id/#m=viduq2&route=Ultra&caller=viduq2&fmt=videos)

#### Alias jalur metode

`/v1/videos/generations`

#### ID pemanggil terkait

[`viduq2`](https://ailoot.ai/models/id/#m=viduq2&route=Ultra&caller=viduq2&fmt=videos)

FAQ · Vidu: Q2 Text-to-Video

Input dan hasil apa yang tersedia?

`POST /v1/videos` · `viduq2`: `text` → `video`

Kolom apa yang digunakan permintaan?

`POST /v1/videos` · `viduq2`: `model`, `prompt`, `duration`, `seed`, `aspect_ratio`, `resolution`, `style`, `movement_amplitude`

Batasan apa yang berlaku?

`POST /v1/videos` · `viduq2`: `duration.minimum`: `1`; `duration.maximum`: `10`

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](https://ailoot.ai/docs/id/billing/subscriptions/) · [Lihat harga model](https://ailoot.ai/models/id/)

## 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](mailto:support@ailoot.ai) · [Penawaran dan perjanjian lisensi](https://ailoot.ai/legal/offer?lang=id)

## Ailoot · Perusahaan dan portofolio proyeknya





Ailoot bertumpu pada pengalaman operasional yang teruji, basis pelanggan yang besar, layanan yang stabil, dan pemantauan KPI berkelanjutan.





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





Ailoot memanfaatkan pengalaman operasional ini untuk akses API ke fitur AI dalam produk pelanggan, agen, aplikasi, dan otomatisasi.
