All Products
Search
Document Center

Alibaba Cloud Model Studio:Wan - image-to-video - referensi API frame pertama (2.1-2.6)

Last Updated:Sep 02, 2026

Model image-to-video Wan menghasilkan video yang mulus dari gambar frame pertama dan prompt teks .

Dokumen terkait: Panduan pengguna

CatatanWan 2.7 - image-to-video mendukung first-frame-to-video, first-and-last-frame-to-video, dan kelanjutan video. Kami merekomendasikan versi ini.

Fitur image-to-video (berbasis frame pertama) untuk model Wan 2.6 dan sebelumnya hanya mendukung first-frame-to-video.

Ketersediaan

Model, URL endpoint, dan Kunci API Anda harus berada di wilayah yang sama. Pemanggilan lintas wilayah akan gagal.

  • Pilih model: Konfirmasi wilayah tempat model tersedia.
  • Pilih URL: Pilih URL endpoint untuk wilayah yang sesuai. URL HTTP dan SDK DashScope didukung.
  • Konfigurasikan Kunci API: Dapatkan Kunci API untuk wilayah tersebut, lalu konfigurasikan Kunci API dalam variabel lingkungan Anda.
  • Instal SDK: Untuk melakukan pemanggilan dengan SDK, instal SDK DashScope.

CatatanKode contoh dalam topik ini ditujukan untuk wilayah Singapura.

PentingAlibaba Cloud Model Studio telah merilis domain khusus ruang kerja untuk wilayah China (Beijing) dan Singapura. Domain khusus baru ini memberikan performa lebih unggul dan stabilitas lebih tinggi untuk permintaan inferensi. Kami merekomendasikan migrasi ke domain baru:

  • China (Beijing): dari https://dashscope.aliyuncs.com ke https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapura: dari https://dashscope-intl.aliyuncs.com ke https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

{WorkspaceId} adalah ID ruang kerja Anda, yang dapat ditemukan pada halaman Detail Ruang Kerja di Konsol Alibaba Cloud Model Studio. Domain lama tetap berfungsi penuh.

Pemanggilan HTTP

Tugas image-to-video menggunakan pemanggilan asinkron (biasanya 1–5 menit): buat tugas → polling hasil.

Langkah 1: Buat tugas

Singapura

POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

Virginia

POST https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

Beijing

POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

Frankfurt

POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.

Catatan

  • Setelah tugas dibuat, gunakan task_id yang dikembalikan untuk menanyakan hasilnya. task_id berlaku selama 24 jam. Jangan membuat tugas duplikat. Sebagai gantinya, gunakan polling untuk mengambil hasilnya.
  • Untuk panduan pemula, lihat Panggil API dengan Postman atau cURL.

Parameter permintaan

Header

Content-Type string (Wajib)

Tipe konten permintaan. Harus berupa application/json.

Authorization string (Wajib)

Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx.

X-DashScope-Async string (Wajib)

Mengaktifkan pemrosesan asinkron. Permintaan HTTP hanya mendukung pemanggilan asinkron. Harus diatur ke enable.

PentingJika header permintaan ini tidak ada, kesalahan "current user api does not support synchronous calls" akan dikembalikan.

Isi permintaan

model string (Wajib)

Nama model. Model yang tersedia dan harga: harga model.

Contoh: wan2.6-i2v-flash.

input object (Wajib)

Bidang masukan termasuk prompt.

Properti

prompt string (Opsional)

Menjelaskan elemen visual dan karakteristik yang diinginkan dari video yang dihasilkan.

Mendukung bahasa Tionghoa dan Inggris. Setiap karakter dihitung sebagai satu. Teks yang melebihi batas akan dipotong. Batas panjang berdasarkan model:

  • Model seri Wan2.6 dan Wan2.5: Maksimal 1.500 karakter.
  • Model seri wan2.2 dan wan2.1: Maksimal 800 karakter.

Contoh: Seekor anak kucing berlari di atas rumput.

Kiat penulisan prompt: Panduan Prompt Text-to-Video/Image-to-Video.

negative_prompt string (Opsional)

Menjelaskan apa yang harus dikecualikan dari video, membatasi keluaran.

Mendukung bahasa Tionghoa dan Inggris. Maksimal 500 karakter; teks yang lebih panjang akan dipotong.

Contoh: resolusi rendah, kesalahan, kualitas terburuk, kualitas rendah, cacat bentuk, jari ekstra, proporsi buruk, dll.

img_url string (Wajib)

URL atau data terenkripsi Base64 dari gambar awal.

Batasan gambar:

  • Format gambar: JPEG, JPG, PNG (saluran alfa tidak didukung), BMP, atau WEBP.

  • Resolusi gambar: Lebar dan tinggi harus berada dalam rentang [240, 8000] piksel.

  • Ukuran file:

    • Model seri Wan2.6 dan Wan2.5: Maksimal 20 MB.
    • Model seri wan2.2 dan wan2.1: Maksimal 10 MB.

Format masukan yang didukung:

  1. URL publik:

  2. String gambar terenkripsi Base64:

    • Format data: data:{MIME_type};base64,{base64_data}.
    • Contoh: data:image/png;base64,GDU7MtCZzEbTbmRZ...... (disingkat untuk kejelasan).
    • Untuk detail selengkapnya, lihat Gambar Masukan.

audio_url string (Opsional)

Model yang didukung: Model seri Wan2.6 dan Wan2.5.

URL file audio. Model menghasilkan video menggunakan audio ini.

Format masukan yang didukung:

  1. URL publik:

Batasan audio:

  • Format: WAV, MP3.
  • Durasi: 3–30 detik.
  • Ukuran file: Maksimal 15 MB.
  • Penanganan di luar rentang: Jika durasi audio melebihi duration yang ditentukan (5 atau 10 detik), sistem secara otomatis memotong audio menjadi 5 atau 10 detik pertama, dan sisanya dibuang. Jika audio lebih pendek dari durasi video, video akan senyap setelah audio berakhir. Misalnya, jika audio berdurasi 3 detik dan durasi video 5 detik, 3 detik pertama video keluaran akan memiliki suara, dan 2 detik terakhir akan senyap.

Contoh: https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3.

parameters object (Opsional)

Kontrol untuk resolusi, durasi, penulisan ulang prompt cerdas, dan watermark.

Properti

resolution string (Opsional)

PentingResolusi secara langsung memengaruhi biaya. Sebelum memanggil API, konfirmasi harga model.

Menentukan tingkat resolusi video keluaran. Model menskalakan keluaran ke jumlah total piksel yang serupa berdasarkan tingkat yang dipilih. Model mempertahankan rasio aspek keluaran sedekat mungkin dengan rasio aspek gambar masukan diimg_url. Untuk detail selengkapnya, lihat FAQ.

Nilai default dan nilai enum yang tersedia untuk parameter ini bergantung pada parameter model, sebagai berikut:

  • wan2.6-i2v-flash: Nilai valid: 720P, 1080P. Nilai default: 1080P.
  • wan2.6-i2v: Nilai valid: 720P, 1080P. Nilai default: 1080P.
  • wan2.6-i2v-us: Nilai valid: 720P, 1080P. Nilai default: 1080P.
  • wan2.5-i2v-preview: Nilai valid: 480P, 720P, 1080P. Nilai default: 1080P.
  • wan2.2-i2v-flash: Nilai valid: 480P, 720P. Nilai default: 720P.
  • wan2.2-i2v-plus: Nilai valid: 480P, 1080P. Nilai default: 1080P.
  • wan2.1-i2v-turbo: Nilai valid: 480P, 720P. Nilai default: 720P.
  • wan2.1-i2v-plus: Nilai valid: 720P. Nilai default: 720P.

Contoh: 1080P.

duration integer (Opsional)

PentingDurasi secara langsung memengaruhi biaya. Sebelum memanggil API, konfirmasi harga model.

Durasi video keluaran, dalam detik. Nilai valid bergantung pada parameter model:

  • wan2.6-i2v-flash: Bilangan bulat dalam [2, 15]. Default: 5.
  • wan2.6-i2v: Bilangan bulat dalam [2, 15]. Default: 5.
  • wan2.6-i2v-us: Nilai valid: 5, 10, 15. Default: 5.
  • wan2.5-i2v-preview: Nilai valid: 5, 10. Default: 5.
  • wan2.2-i2v-plus: Tetap 5 detik dan tidak dapat diubah.
  • wan2.2-i2v-flash: Tetap 5 detik dan tidak dapat diubah.
  • wan2.1-i2v-plus: Tetap 5 detik dan tidak dapat diubah.
  • wan2.1-i2v-turbo: Nilai valid: 3, 4, atau 5. Default: 5.

Contoh: 5.

prompt_extend boolean (Opsional)

Apakah akan mengaktifkan penulisan ulang prompt. Saat diaktifkan, LLM menulis ulang prompt masukan. Ini meningkatkan kualitas generasi untuk prompt yang lebih pendek tetapi meningkatkan waktu pemrosesan.

  • true (default)
  • false

Contoh: true.

shot_type string (Opsional)

Model yang didukung: Model seri Wan2.6.

Menentukan jenis shot video yang dihasilkan: satu shot berkelanjutan atau rangkaian beberapa shot.

Parameter ini hanya berlaku saat "prompt_extend": true.

Prioritas parameter: shot_type > prompt. Misalnya, jika shot_type diatur ke "single", meskipun prompt berisi "generate a multi-shot video", model tetap akan menghasilkan video single-shot.

Nilai valid:

  • single: Nilai default. Menghasilkan video single-shot.
  • multi: Menghasilkan video multi-shot.

Contoh: single.

CatatanGunakan parameter ini saat Anda memerlukan kontrol ketat atas struktur narasi, seperti single shot untuk demo produk atau multiple shot untuk film pendek.

audio boolean (Opsional)

PentingIni memengaruhi biaya. Video dengan suara dan video tanpa suara memiliki harga berbeda. Periksa harga di Konsol Model Studio.

Model yang didukung: wan2.6-i2v-flash.

Menentukan apakah akan menghasilkan video dengan suara.

Prioritas parameter: audio > audio_url. Saat audio=false, keluaran tetap berupa video tanpa suara meskipun audio_url disediakan, dan penagihan didasarkan pada video tanpa suara.

Nilai valid:

  • true: Nilai default. Menghasilkan video dengan suara.
  • false: Menghasilkan video tanpa suara.

Contoh: true.

watermark boolean (Opsional)

Menentukan apakah akan menambahkan watermark "AI Generated" di pojok kanan bawah video.

  • false: Nilai default. Tidak menambahkan watermark.
  • true: Menambahkan watermark.

Contoh: false.

seedinteger(Opsional)

Bilangan acak seed. Rentang nilai: [0, 2147483647].

Jika tidak ditentukan, sistem menghasilkan satu. Untuk reproduktibilitas yang lebih baik, gunakan seed tetap.

Generasi bersifat probabilistik. Bahkan dengan seed yang sama, hasilnya mungkin berbeda.

Contoh: 12345.

Narasi multi-shot

Fitur ini hanya didukung oleh model seri Wan2.6.

Anda dapat mengaktifkannya dengan mengatur "prompt_extend": true dan "shot_type":"multi".

# URL berikut ditujukan untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda berdasarkan wilayah.

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.6-i2v-flash",
    "input": {
        "prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "img_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png",
        "audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"
    },
    "parameters": {
        "resolution": "720P",
        "prompt_extend": true,
        "duration": 10,
        "shot_type":"multi"
    }
}'

Dubbing otomatis

Fitur ini hanya didukung oleh model seri Wan2.6 dan Wan2.5.

Jika Anda tidak menyediakan input.audio_url, model secara otomatis menghasilkan musik latar atau efek suara yang sesuai berdasarkan konten video.

# URL berikut ditujukan untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda berdasarkan wilayah.

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.5-i2v-preview",
    "input": {
        "prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "img_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png"
    },
    "parameters": {
        "resolution": "480P",
        "prompt_extend": true,
        "duration": 10
    }
}'

Audio kustom

Fitur ini hanya didukung oleh model seri Wan2.6 dan Wan2.5.

Untuk menentukan musik latar atau narasi suara untuk video, masukkan URL file audio kustom Anda dalam parameter input.audio_url.

# URL berikut ditujukan untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda berdasarkan wilayah.

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.5-i2v-preview",
    "input": {
        "prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "img_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png",
        "audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"
    },
    "parameters": {
        "resolution": "480P",
        "prompt_extend": true,
        "duration": 10
    }
}'

Video tanpa suara

Hanya model-model berikut yang mendukung pembuatan video tanpa suara:

  • wan2.6-i2v-flash: Untuk menghasilkan video tanpa suara, Anda harus secara eksplisit mengatur parameters.audio = false.
  • model seri wan2.2 dan wan2.1: Menghasilkan video tanpa suara secara default; tidak diperlukan parameter tambahan.
# URL berikut ditujukan untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda berdasarkan wilayah.

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.2-i2v-plus",
    "input": {
        "prompt": "A cat running on the grass",
        "img_url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
    },
    "parameters": {
        "resolution": "480P",
        "prompt_extend": true
    }
}'

Prompt negatif

Gunakan parameter negative_prompt untuk mencegah kemunculan "flowers" dalam video yang dihasilkan.

# URL berikut ditujukan untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda berdasarkan wilayah.

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.2-i2v-plus",
    "input": {
        "prompt": "A cat running on the grass",
        "negative_prompt": "flowers",
        "img_url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
    },
    "parameters": {
        "resolution": "480P",
        "prompt_extend": true
    }
}'

Parameter respons

output object

Informasi tentang keluaran tugas.

Properti

task_id string

ID tugas. Berlaku untuk penanyakan selama 24 jam.

task_status string

Status tugas.

Nilai enumerasi

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: Tugas tidak ada atau statusnya tidak diketahui.

request_id string

Pengidentifikasi permintaan unik untuk pelacakan dan troubleshooting.

code string

Kode kesalahan. Hanya dikembalikan untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

Pesan kesalahan detail. Hanya dikembalikan untuk permintaan yang gagal. Lihat Kode kesalahan.

Respons berhasil

Simpan task_id untuk menanyakan status dan hasil tugas.

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

Respons kesalahan

Pembuatan tugas gagal. Lihat Kode kesalahan.

{
    "code": "InvalidApiKey",
    "message": "Invalid API-key provided.",
    "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
}

Langkah 2: Tanyakan hasil tugas

Singapura

GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

Virginia

GET https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

China (Beijing)

GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}

Frankfurt

GET https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.

Catatan

  • Rekomendasi polling: Pembuatan video memerlukan beberapa menit. Gunakan mekanisme polling dengan interval yang wajar, misalnya 15 detik.
  • Transisi status tugas: PENDING → RUNNING → SUCCEEDED atau FAILED.
  • Tautan hasil: Setelah tugas berhasil, URL video yang berlaku selama 24 jam dikembalikan. Unduh dan simpan video ke penyimpanan permanen, seperti OSS.
  • task_idmasa berlaku: 24 jam. Setelah periode ini, penanyakan akan mengembalikan status tugas sebagai UNKNOWN.

Parameter permintaan

Header

Authorization string (Wajib)

Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx.

Parameter jalur

task_id string (Wajib)

ID tugas.

Tanyakan hasil tugas

Ganti {task_id} dengan nilai task_id yang dikembalikan oleh pemanggilan API sebelumnya. task_id berlaku untuk penanyakan selama 24 jam, Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

Parameter respons

outputobject

Detail keluaran tugas.

Properti

task_id string

ID tugas. Berlaku untuk penanyakan selama 24 jam.

task_status string

Status tugas.

Nilai enumerasi

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: Tugas tidak ada atau statusnya tidak diketahui.
Transisi status selama polling:
  • PENDING → RUNNING → SUCCEEDED atau FAILED.
  • Status penanyakan awal biasanya PENDING atau RUNNING.
  • Saat status berubah menjadi SUCCEEDED, respons berisi URL video yang dihasilkan.
  • Jika status FAILED, periksa pesan kesalahan dan coba ulang tugas.

submit_time string

Waktu saat tugas diajukan. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

scheduled_time string

Waktu saat tugas dieksekusi. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

end_time string

Waktu saat tugas selesai. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

video_url string

URL video yang dihasilkan. Hanya dikembalikan saat task_status bernilai SUCCEEDED.

Berlaku selama 24 jam. Video dalam format MP4 dengan encoding H.264.

orig_prompt string

Prompt masukan asli, sesuai dengan parameter permintaan prompt.

actual_prompt string

Jika prompt_extend bernilai true, sistem menulis ulang prompt, dan bidang ini berisi versi yang dioptimalkan.

  • Jika prompt_extend=false, bidang ini tidak dikembalikan.
  • Catatan: Model wan2.6 tidak mengembalikan bidang ini, terlepas dari nilai prompt_extend.

code string

Kode kesalahan. Hanya dikembalikan untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

Pesan kesalahan detail. Hanya dikembalikan untuk permintaan yang gagal. Lihat Kode kesalahan.

usage object

Statistik penggunaan tugas, yang hanya dihitung untuk tugas yang berhasil.

Properti

Parameter yang dikembalikan oleh model seri wan2.6

input_video_duration integer

Durasi video masukan dalam detik. Nilai ini selalu 0, karena masukan video saat ini tidak didukung.

output_video_duration integer

Hanya dikembalikan saat menggunakan model wan2.6.

Durasi video keluaran dalam detik. Nilai ini sesuai dengan input.duration.

duration integer

Total durasi video, digunakan untuk penagihan.

Rumus penagihan: duration=input_video_duration+output_video_duration.

SR integer

Hanya dikembalikan saat menggunakan model wan2.6. Tingkat resolusi video yang dihasilkan. Contoh: 720.

video_count integer

Jumlah video yang dihasilkan. Nilai ini tetap 1.

audioboolean

Hanya dikembalikan saat menggunakan model wan2.6-i2v-flash. Menunjukkan apakah keluaran berupa video dengan audio.

Parameter yang dikembalikan oleh model seri wan2.2 dan wan2.5

duration integer

Durasi video yang dihasilkan dalam detik. Nilai yang mungkin: 5, 10.

Rumus penagihan: Biaya = Durasi video dalam detik × Harga satuan.

SR integer

Resolusi video yang dihasilkan. Nilai yang mungkin: 480, 720, 1080.

video_count integer

Jumlah video yang dihasilkan. Nilai ini tetap 1.

Parameter yang dikembalikan oleh model seri wan2.1

video_duration integer

Durasi video yang dihasilkan dalam detik. Nilai yang mungkin: 3, 4, 5.

Rumus penagihan: Biaya = Durasi video dalam detik × Harga satuan.

video_ratio string

Rasio aspek video yang dihasilkan. Nilai ini selalu "standard".

video_count integer

Jumlah video yang dihasilkan. Nilai ini tetap 1.

request_id string

Pengidentifikasi permintaan unik untuk pelacakan dan troubleshooting.

Tugas berhasil

URL video hanya berlaku selama 24 jam lalu secara otomatis dihapus. Segera simpan video yang dihasilkan.

{
    "request_id": "2ca1c497-f9e0-449d-9a3f-xxxxxx",
    "output": {
        "task_id": "af6efbc0-4bef-4194-8246-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-09-25 11:07:28.590",
        "scheduled_time": "2025-09-25 11:07:35.349",
        "end_time": "2025-09-25 11:17:11.650",
        "orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "video_url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4?Expires=xxx"
    },
    "usage": {
        "duration": 10,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "video_count": 1,
        "SR": 720
    }
}

Tugas gagal

Saat tugas gagal, task_status bernilai FAILED dengan kode dan pesan kesalahan. Lihat Kode kesalahan.

{
    "request_id": "e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
    "output": {
        "task_id": "86ecf553-d340-4e21-af6e-a0c6a421c010",
        "task_status": "FAILED",
        "code": "InvalidParameter",
        "message": "The size is not match xxxxxx"
    }
}

Penanyakan tugas kedaluwarsa

task_id berlaku selama 24 jam. Setelah periode ini, penanyakan akan mengembalikan kesalahan berikut.

{
    "request_id": "a4de7c32-7057-9f82-8581-xxxxxx",
    "output": {
        "task_id": "502a00b1-19d9-4839-a82f-xxxxxx",
        "task_status": "UNKNOWN"
    }
}

Pemanggilan SDK DashScope

Nama parameter SDK sebagian besar konsisten dengan API HTTP, mengikuti konvensi masing-masing bahasa.

Tugas image-to-video biasanya memerlukan waktu 1–5 menit. SDK membungkus proses pemanggilan HTTP asinkron dan mendukung pemanggilan sinkron maupun asinkron.

Waktu pemrosesan bergantung pada antrian tugas dan status layanan.

SDK Python

PentingPastikan versi SDK Python DashScope Anda minimal1.25.8 sebelum menjalankan kode berikut.

Versi lama mungkin memicu kesalahan seperti "url error, please check url!". Untuk memperbarui, lihat Instal SDK.

Atur base_http_api_url sesuai wilayah model:

Singapura

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

Virginia

dashscope.base_http_api_url = 'https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1'

Beijing

dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'

Frankfurt

dashscope.base_http_api_url = 'https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1'

Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.

Kode contoh

Pemanggilan sinkron

Pemanggilan sinkron memblokir hingga pembuatan video selesai. Contoh ini menunjukkan tiga metode masukan gambar: URL publik, enkode Base64, dan jalur file lokal.

Contoh permintaan
import base64
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import mimetypes
import dashscope

# URL berikut ditujukan untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda berdasarkan wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# Jika variabel lingkungan tidak diatur, ganti baris berikut dengan Kunci API Anda dari Model Studio: api_key="sk-xxx"
# Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")

# --- Fungsi bantu untuk enkode Base64 ---
# Format: data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
    mime_type, _ = mimetypes.guess_type(file_path)
    if not mime_type or not mime_type.startswith("image/"):
        raise ValueError("Unsupported or unrecognized image format")
    with open(file_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
    return f"data:{mime_type};base64,{encoded_string}"

"""
Metode masukan gambar:
Berikut adalah tiga cara untuk menyediakan gambar. Pilih salah satu.

1. URL publik: Ideal untuk gambar yang sudah dapat diakses publik.
2. File lokal: Cocok untuk pengembangan dan pengujian lokal.
3. Enkode Base64: Terbaik untuk gambar privat atau saat data harus ditransmisikan secara aman.
"""

# [Metode 1] Gunakan URL gambar yang dapat diakses publik
# Contoh: Gunakan URL gambar publik
img_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png"

# [Metode 2] Gunakan file lokal (mendukung jalur absolut dan relatif)
# Format: file:// + jalur file
# Contoh (jalur absolut):
# img_url = "file://" + "/path/to/your/img.png"    # Linux/macOS
# img_url = "file://" + "C:/path/to/your/img.png"  # Windows
# Contoh (jalur relatif):
# img_url = "file://" + "./img.png"                # Relatif terhadap direktori skrip saat ini

# [Metode 3] Gunakan gambar terenkripsi Base64
# img_url = encode_file("./img.png")

# Atur URL audio
audio_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"

def sample_call_i2v():
    # Pemanggilan sinkron mengembalikan hasil secara langsung.
    print('please wait...')
    rsp = VideoSynthesis.call(api_key=api_key,
                              model='wan2.6-i2v-flash',
                              prompt='A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.',
                              img_url=img_url,
                              audio_url=audio_url,
                              resolution="720P",
                              duration=10,
                              prompt_extend=True,
                              watermark=False,
                              negative_prompt="",
                              seed=12345)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print("video_url:", rsp.output.video_url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_call_i2v()
Contoh respons

video_url berlaku selama 24 jam. Unduh video sebelum kedaluwarsa.

{
    "status_code": 200,
    "request_id": "2794c7a3-fe8c-4dd4-a1b7-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "c15d5b14-07c4-4af5-b862-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
        "submit_time": "2026-01-22 23:24:46.527",
        "scheduled_time": "2026-01-22 23:24:46.565",
        "end_time": "2026-01-22 23:25:59.978",
        "orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise."
    },
    "usage": {
        "video_count": 1,
        "video_duration": 0,
        "video_ratio": "",
        "duration": 10,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "audio": true,
        "SR": 720
    }
}

Pemanggilan asinkron

Pemanggilan asinkron segera mengembalikan ID tugas. Anda kemudian melakukan polling untuk hasil atau menunggu hingga selesai.

Contoh permintaan
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope

# URL berikut ditujukan untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda berdasarkan wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# Jika variabel lingkungan tidak diatur, ganti baris berikut dengan Kunci API Anda dari Model Studio: api_key="sk-xxx"
# Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")

# Gunakan URL gambar yang dapat diakses publik
img_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png"

# Atur URL audio
audio_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"

def sample_async_call_i2v():
    # Pemanggilan asinkron, mengembalikan ID tugas
    rsp = VideoSynthesis.async_call(api_key=api_key,
                                    model='wan2.6-i2v-flash',
                                    prompt='A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.',
                                    img_url=img_url,
                                    audio_url=audio_url,
                                    resolution="720P",
                                    duration=10,
                                    prompt_extend=True,
                                    watermark=False,
                                    negative_prompt="",
                                    seed=12345)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print("task_id: %s" % rsp.output.task_id)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

    # Dapatkan status tugas asinkron
    status = VideoSynthesis.fetch(task=rsp, api_key=api_key)
    if status.status_code == HTTPStatus.OK:
        print(status.output.task_status)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (status.status_code, status.code, status.message))

    # Tunggu hingga tugas asinkron selesai
    rsp = VideoSynthesis.wait(task=rsp, api_key=api_key)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.video_url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_async_call_i2v()
Contoh respons
  1. Respons pembuatan tugas
{
    "status_code": 200,
    "request_id": "6dc3bf6c-be18-9268-9c27-xxxxxx",
    "code": "",
    "message": "",
    "output": {
        "task_id": "686391d9-7ecf-4290-a8e9-xxxxxx",
        "task_status": "PENDING",
        "video_url": ""
    },
    "usage": null
}
  1. Respons penanyakan tugas

video_url berlaku selama 24 jam. Unduh video sebelum kedaluwarsa.

{
    "status_code": 200,
    "request_id": "2794c7a3-fe8c-4dd4-a1b7-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "c15d5b14-07c4-4af5-b862-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
        "submit_time": "2026-01-22 23:24:46.527",
        "scheduled_time": "2026-01-22 23:24:46.565",
        "end_time": "2026-01-22 23:25:59.978",
        "orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise."
    },
    "usage": {
        "video_count": 1,
        "video_duration": 0,
        "video_ratio": "",
        "duration": 10,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "audio": true,
        "SR": 720
    }
}

SDK Java

PentingPastikan versi SDK Java DashScope Anda minimal2.22.6 sebelum menjalankan kode berikut.

Versi lama mungkin memicu kesalahan seperti "url error, please check url!". Untuk memperbarui, lihat Instal SDK.

Atur baseHttpApiUrl sesuai wilayah model:

Singapura

Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

Virginia

Constants.baseHttpApiUrl = "https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1";

Beijing

Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";

Frankfurt

Constants.baseHttpApiUrl = "https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1";

Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.

Kode contoh

Pemanggilan sinkron

Pemanggilan sinkron memblokir hingga pembuatan video selesai. Contoh ini menunjukkan tiga metode masukan gambar: URL publik, enkode Base64, dan jalur file lokal.

Contoh permintaan
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

public class Image2Video {

    static {
        // Atur endpoint. Contoh ini menggunakan wilayah Singapura. Untuk wilayah lain, lihat: https://www.alibabacloud.com/help/en/model-studio/image-to-video-api-reference
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // Jika variabel lingkungan tidak diatur, ganti baris berikut dengan Kunci API Anda dari Model Studio: apiKey="sk-xxx"
    // Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    /**
     * Metode masukan gambar: Pilih salah satu dari tiga berikut.
     *
     * 1. URL publik: Ideal untuk gambar yang sudah dapat diakses publik.
     * 2. File lokal: Cocok untuk pengembangan dan pengujian lokal.
     * 3. Enkode Base64: Terbaik untuk gambar privat atau saat data harus ditransmisikan secara aman.
     */

    // [Metode 1] URL publik
    static String imgUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png";

    // [Metode 2] Jalur file lokal (file:// + jalur absolut)
    // static String imgUrl = "file://" + "/your/path/to/img.png";    // Linux/macOS
    // static String imgUrl = "file://" + "C:/your/path/to/img.png";  // Windows

    // [Metode 3] Enkode Base64
    // static String imgUrl = Image2Video.encodeFile("/your/path/to/img.png");

    // Atur URL audio
    static String audioUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3";

    public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
        // Atur parameter
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);
        parameters.put("watermark", false);
        parameters.put("seed", 12345);

        VideoSynthesis vs = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.6-i2v-flash")
                        .prompt("A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.")
                        .imgUrl(imgUrl)
                        .audioUrl(audioUrl)
                        .duration(10)
                        .parameters(parameters)
                        .resolution("720P")
                        .negativePrompt("")
                        .build();
        System.out.println("please wait...");
        VideoSynthesisResult result = vs.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

     /**
     * Mengenkod file menjadi string Base64.
     * @param filePath Jalur file.
     * @return String Base64 dalam format data:{MIME_type};base64,{base64_data}.
     */
    public static String encodeFile(String filePath) {
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            throw new IllegalArgumentException("File does not exist: " + filePath);
        }
        // Deteksi tipe MIME
        String mimeType = null;
        try {
            mimeType = Files.probeContentType(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot detect file type: " + filePath);
        }
        if (mimeType == null || !mimeType.startsWith("image/")) {
            throw new IllegalArgumentException("Unsupported or unrecognized image format");
        }
        // Baca konten file dan enkode
        byte[] fileBytes = null;
        try{
            fileBytes = Files.readAllBytes(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot read file content: " + filePath);
        }

        String encodedString = Base64.getEncoder().encodeToString(fileBytes);
        return "data:" + mimeType + ";base64," + encodedString;
    }

    public static void main(String[] args) {
        try {
            image2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
Contoh respons

video_url berlaku selama 24 jam. Unduh video sebelum kedaluwarsa.

{
    "request_id": "87c091bb-7a3c-4904-8501-xxxxxx",
    "output": {
        "task_id": "413ed6e4-5f3a-4f57-8d58-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
        "orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "submit_time": "2026-01-22 23:25:45.729",
        "scheduled_time": "2026-01-22 23:25:45.771",
        "end_time": "2026-01-22 23:26:44.942"
    },
    "usage": {
        "video_count": 1,
        "duration": 10.0,
        "input_video_duration": 0.0,
        "output_video_duration": 10.0,
        "SR": "720"
    },
    "status_code": 200,
    "code": "",
    "message": ""
}

Pemanggilan asinkron

Pemanggilan asinkron segera mengembalikan ID tugas. Anda kemudian melakukan polling untuk hasil atau menunggu hingga selesai.

Contoh permintaan
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisListResult;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;

import java.util.HashMap;
import java.util.Map;

public class Image2Video {

    static {
        // Atur endpoint. Contoh ini menggunakan wilayah Singapura. Untuk wilayah lain, lihat: https://www.alibabacloud.com/help/en/model-studio/image-to-video-api-reference
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // Jika variabel lingkungan tidak diatur, ganti baris berikut dengan Kunci API Anda dari Model Studio: apiKey="sk-xxx"
    // Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");
    // Atur URL gambar masukan
    static String imgUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png";

    // Atur URL audio
    static String audioUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3";

    public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
        // Atur parameter
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);
        parameters.put("watermark", false);
        parameters.put("seed", 12345);

        VideoSynthesis vs = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.6-i2v-flash")
                        .prompt("A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.")
                        .imgUrl(imgUrl)
                        .audioUrl(audioUrl)
                        .duration(10)
                        .parameters(parameters)
                        .resolution("720P")
                        .negativePrompt("")
                        .build();
        // Pemanggilan asinkron
        VideoSynthesisResult task = vs.asyncCall(param);
        System.out.println(JsonUtils.toJson(task));
        System.out.println("please wait...");

        // Dapatkan hasil
        VideoSynthesisResult result = vs.wait(task, apiKey);
        System.out.println(JsonUtils.toJson(result));
    }

    // Dapatkan daftar tugas
    public static void listTask() throws ApiException, NoApiKeyException {
        VideoSynthesis is = new VideoSynthesis();
        AsyncTaskListParam param = AsyncTaskListParam.builder().build();
        param.setApiKey(apiKey);
        VideoSynthesisListResult result = is.list(param);
        System.out.println(result);
    }

    // Dapatkan hasil satu tugas
    public static void fetchTask(String taskId) throws ApiException, NoApiKeyException {
        VideoSynthesis is = new VideoSynthesis();
        // Jika DASHSCOPE_API_KEY diatur sebagai variabel lingkungan, apiKey dapat bernilai null.
        VideoSynthesisResult result = is.fetch(taskId, apiKey);
        System.out.println(result.getOutput());
        System.out.println(result.getUsage());
    }

    public static void main(String[] args) {
        try {
            image2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
Contoh respons
  1. Respons pembuatan tugas
{
    "request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
    "output": {
        "task_id": "7277e20e-aa01-4709-xxxxxxxx",
        "task_status": "PENDING"
    }
}
  1. Respons penanyakan tugas

video_url berlaku selama 24 jam. Unduh video sebelum kedaluwarsa.

{
    "request_id": "87c091bb-7a3c-4904-8501-xxxxxx",
    "output": {
        "task_id": "413ed6e4-5f3a-4f57-8d58-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
        "orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "submit_time": "2026-01-22 23:25:45.729",
        "scheduled_time": "2026-01-22 23:25:45.771",
        "end_time": "2026-01-22 23:26:44.942"
    },
    "usage": {
        "video_count": 1,
        "duration": 10.0,
        "input_video_duration": 0.0,
        "output_video_duration": 10.0,
        "SR": "720"
    },
    "status_code": 200,
    "code": "",
    "message": ""
}

Batasan

  • Retensi data: task_id dan URL video disimpan selama 24 jam. Setelah periode ini, Anda tidak dapat menanyakan atau mengunduhnya.
  • Moderasi konten: Semua masukan (prompt, gambar) dan video keluaran dikenai moderasi konten. Pelanggaran menghasilkan kesalahan IPInfringementSuspect atau DataInspectionFailed. Kode kesalahan.

Batasan yang diketahui

Saat wan2.6-i2v-flash menghasilkan rotasi berkelanjutan objek melingkar (seperti cincin, roda gigi, atau jarum jam), video mungkin berhenti sekitar 1 detik pada sekitar tanda 3 detik. Untuk menghindari masalah ini, gunakan model Wan 2.7 - image-to-video sebagai gantinya.

Kode kesalahan

Jika pemanggilan model mengembalikan pesan kesalahan, lihat Kode kesalahan.

FAQ

T: Bagaimana cara menghasilkan video dengan rasio aspek tertentu?

J: Gambar frame pertama masukan (img_url) menentukan rasio aspek video keluaran. Namun, rasio tepat seperti 3:4 tidak dijamin, karena kemungkinan terjadi penyimpangan kecil.

  • Mengapa terjadi penyimpangan?

    Model menggunakan rasio aspek gambar masukan sebagai garis dasar dan menggabungkannya dengan jumlah total piksel dari tingkat resolusi yang dipilih (resolution) untuk menghitung resolusi valid terdekat. Karena lebar dan tinggi video harus merupakan kelipatan 16, model menyesuaikan resolusi akhir sesuai kebutuhan. Akibatnya, rasio aspek keluaran tidak dijamin tepat 3:4, tetapi akan sangat mendekati.

    • Sebagai contoh, gambar masukan berukuran 750×1000 (rasio aspek 3:4 = 0,75) dengan resolution diatur ke "720P" (target sekitar 920.000 piksel total) menghasilkan keluaran 816×1104 (rasio aspek ≈ 0,739, sekitar 900.000 piksel total).
  • Rekomendasi:

    • Kontrol masukan: Untuk hasil terbaik, gunakan gambar frame pertama yang sudah memiliki rasio aspek target Anda.
    • Pasca-pemrosesan: Jika Anda memerlukan rasio aspek ketat, potong video atau tambahkan bilah hitam menggunakan alat pengeditan setelah pembuatan.

T: Bagaimana cara mendapatkan daftar izin domain penyimpanan video?

J: Video yang dihasilkan model disimpan di OSS. API mengembalikan URL publik sementara. Untuk mengonfigurasi daftar izin firewall untuk URL unduhan ini, perhatikan hal berikut: Penyimpanan dasar dapat berubah secara dinamis. Topik ini tidak menyediakan daftar nama domain OSS tetap untuk mencegah masalah akses akibat informasi yang kedaluwarsa. Jika Anda memiliki persyaratan kontrol keamanan, hubungi manajer akun Anda untuk mendapatkan daftar nama domain OSS terbaru.