Model image-to-video Wan 2.7 menggunakan multimodal input (teks, gambar, audio, dan video) untuk menjalankan tiga tugas utama: generasi video dari frame pertama, generasi video dari frame pertama dan terakhir, serta kelanjutan video (melanjutkan dari segmen video awal, dengan atau tanpa frame akhir) .
Pengaturan dasar: Mendukung durasi video 2 hingga 15 detik, resolusi yang dapat dikonfigurasi (720p atau 1080p), penulisan ulang prompt cerdas, dan watermarking.
Kemampuan audio: Mendukung dubbing otomatis atau unggah audio kustom, memastikan sinkronisasi audio-video.
Narasi multi-shot: Memungkinkan Anda menghasilkan video dengan beberapa shot sambil menjaga konsistensi subjek antar shot.
Seorang pria menunduk melihat kotak kayu di tanah. Ia membungkuk dan membuka tutupnya dengan hati-hati. Ia menatap isi kotak tersebut, bibirnya gemetar dan sedikit terbuka. Alisnya berkerut dan matanya melebar dengan ekspresi ngeri.
Pastikan SDK Python DashScope Anda versi 1.25.16 atau lebih baru sebelum menjalankan kode berikut.Jika Anda menggunakan versi yang lebih lama, mungkin terjadi error seperti "url error, please check url!". Lihat Instal SDK untuk memperbarui versi Anda.
Copy
# -*- coding: utf-8 -*-from http import HTTPStatusfrom dashscope import VideoSynthesisimport dashscopeimport os# URL ini untuk wilayah Singapura. URL berbeda-beda per wilayah. Untuk informasi selengkapnya, lihat https://www.alibabacloud.com/help/en/model-studio/image-to-video-general-api-referencedashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx"# Kunci API berbeda-beda per wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-keyapi_key = os.getenv("DASHSCOPE_API_KEY")media = [ { "type": "first_clip", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/cqcbkw/wan2.7-i2v-video-continuation.mp4" }, { "type": "last_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/mrwahg/wan2.7-i2v-video-continuation.webp" }]def sample_sync_call(): print('----sync call, please wait a moment----') rsp = VideoSynthesis.call( api_key=api_key, model="wan2.7-i2v-2026-04-25", media=media, resolution="720P", duration=12, watermark=True, prompt="Seorang pria menunduk melihat kotak kayu di tanah. Ia membungkuk dan membuka tutupnya dengan hati-hati. Ia menatap isi kotak tersebut, bibirnya gemetar dan sedikit terbuka. Alisnya berkerut dan matanya melebar dengan ekspresi ngeri.", ) if rsp.status_code == HTTPStatus.OK: print(rsp.output.video_url) else: print('Gagal, status_code: %s, code: %s, message: %s' % (rsp.status_code, rsp.code, rsp.message))if __name__ == '__main__': sample_sync_call()
Pastikan SDK Java DashScope Anda versi 2.22.14 atau lebih baru sebelum menjalankan kode berikut.Jika Anda menggunakan versi yang lebih lama, mungkin terjadi error seperti "url error, please check url!". Lihat Instal SDK untuk memperbarui versi Anda.
Copy
// 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.Constants;import com.alibaba.dashscope.utils.JsonUtils;import java.util.ArrayList;import java.util.List;public class Image2Video { static { // URL wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda per wilayah. Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; } // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey="sk-xxx" // Kunci API berbeda-beda per wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key static String apiKey = System.getenv("DASHSCOPE_API_KEY"); public static void syncCall() { VideoSynthesis videoSynthesis = new VideoSynthesis(); final String prompt = "Seorang pria menunduk melihat kotak kayu di tanah. Ia membungkuk dan membuka tutupnya dengan hati-hati. Ia menatap isi kotak tersebut, bibirnya gemetar dan sedikit terbuka. Alisnya berkerut dan matanya melebar dengan ekspresi ngeri."; List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{ add(VideoSynthesisParam.Media.builder() .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/cqcbkw/wan2.7-i2v-video-continuation.mp4") .type("first_clip") .build()); add(VideoSynthesisParam.Media.builder() .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/mrwahg/wan2.7-i2v-video-continuation.webp") .type("last_frame") .build()); }}; VideoSynthesisParam param = VideoSynthesisParam.builder() .apiKey(apiKey) .model("wan2.7-i2v-2026-04-25") .prompt(prompt) .media(media) .watermark(true) .duration(12) .resolution("720P") .build(); VideoSynthesisResult result = null; try { System.out.println("---sync call, please wait a moment----"); result = videoSynthesis.call(param); } catch (ApiException | NoApiKeyException e){ throw new RuntimeException(e.getMessage()); } catch (InputRequiredException e) { throw new RuntimeException(e); } System.out.println(JsonUtils.toJson(result)); } public static void main(String[] args) { syncCall(); }}
Langkah 1: Buat tugas dan dapatkan ID tugas
Copy
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.7-i2v-2026-04-25", "input": { "prompt": "Seorang pria menunduk melihat kotak kayu di tanah. Ia membungkuk dan membuka tutupnya dengan hati-hati. Ia menatap isi kotak tersebut, bibirnya gemetar dan sedikit terbuka. Alisnya berkerut dan matanya melebar dengan ekspresi ngeri.", "media": [ { "type": "first_clip", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/cqcbkw/wan2.7-i2v-video-continuation.mp4" }, { "type": "last_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/mrwahg/wan2.7-i2v-video-continuation.webp" } ] }, "parameters": { "resolution": "720P", "duration": 12, "prompt_extend": true, "watermark": true }}'
Langkah 2: Ambil hasil menggunakan ID tugasGanti {task_id} dengan nilai task_id yang dikembalikan oleh panggilan API sebelumnya. task_id berlaku untuk kueri selama 24 jam. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Copy
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Contoh output
video_url berlaku selama 24 jam. Unduh video segera.
Model yang didukung berbeda-beda per wilayah. Sumber daya terisolasi antar wilayah. Untuk model yang didukung di setiap wilayah, lihat Konsol Studio Model.
Saat melakukan panggilan, pastikan model, URL endpoint, dan Kunci API Anda semuanya berasal dari wilayah yang sama. Panggilan lintas wilayah akan gagal.
Kode contoh dalam topik ini ditujukan untuk wilayah Singapura.
Model yang didukung: model seri wan2.7.Pengaturan parameter: Bidang type dalam array media mendukung dua kombinasi berikut. Lihat Aset media input untuk detail kombinasi aset media.
Frame pertama: Atur type ke first_frame. Model secara otomatis menambahkan audio ke video.
Frame pertama + audio: Atur type ke first_frame dan driving_audio. Model menggunakan audio tersebut untuk menggerakkan generasi video, misalnya untuk sinkronisasi gerakan bibir dan waktu aksi.
Prompt
Gambar frame pertama
Video output
Sebuah adegan seni fantasi urban. Karakter seni grafiti dinamis. Seorang anak laki-laki yang terbuat dari cat semprot hidup dari dinding beton. Ia menyanyikan lagu rap berbahasa Inggris dengan kecepatan tinggi sambil mengambil pose rapper klasik yang energetik. Adegan ini berlatar malam hari di bawah jembatan rel kereta perkotaan. Cahaya berasal dari satu lampu jalan, menciptakan suasana sinematik penuh energi tinggi dan detail luar biasa. Audio video hanya terdiri dari rap tersebut, tanpa dialog atau kebisingan lainnya.
Audio input:
SDK Python
Java SDK
Curl
Pastikan versi SDK Python DashScope Anda adalah 1.25.16 atau lebih baru. Untuk memperbarui, lihat Instal SDK.
Copy
# -*- coding: utf-8 -*-from http import HTTPStatusfrom dashscope import VideoSynthesisimport dashscopeimport os# Ini adalah URL untuk wilayah Singapura. URL berbeda-beda per wilayah. Untuk daftar URL, lihat https://www.alibabacloud.com/help/en/model-studio/image-to-video-general-api-reference.dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx"# Kunci API berbeda-beda per wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key.api_key = os.getenv("DASHSCOPE_API_KEY")media = [ { "type": "first_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png" }, { "type": "driving_audio", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3" }]def sample_sync_call(): print('----sync call, please wait a moment----') rsp = VideoSynthesis.call( api_key=api_key, model="wan2.7-i2v-2026-04-25", media=media, resolution="720P", duration=10, watermark=True, prompt="Sebuah adegan seni fantasi urban. Karakter seni grafiti dinamis. Seorang anak laki-laki yang terbuat dari cat semprot hidup dari dinding beton. Ia menyanyikan lagu rap berbahasa Inggris dengan kecepatan tinggi sambil mengambil pose rapper klasik yang energetik. Adegan ini berlatar malam hari di bawah jembatan rel kereta perkotaan. Cahaya berasal dari satu lampu jalan, menciptakan suasana sinematik penuh energi tinggi dan detail luar biasa. Audio video hanya terdiri dari rap tersebut, tanpa dialog atau kebisingan lainnya.", ) if rsp.status_code == HTTPStatus.OK: print(rsp.output.video_url) else: print('Gagal, status_code: %s, code: %s, message: %s' % (rsp.status_code, rsp.code, rsp.message))if __name__ == '__main__': sample_sync_call()
Pastikan versi SDK Java DashScope Anda adalah 2.22.14 atau lebih baru. Untuk memperbarui, lihat Instal SDK.
Copy
// 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.Constants;import com.alibaba.dashscope.utils.JsonUtils;import java.util.ArrayList;import java.util.List;public class Image2Video { static { // Ini adalah Titik akhir untuk wilayah Singapura. Untuk wilayah Tiongkok (Beijing), gunakan https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1 Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; } // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey="sk-xxx" // Kunci API berbeda-beda per wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key. static String apiKey = System.getenv("DASHSCOPE_API_KEY"); public static void syncCall() { VideoSynthesis videoSynthesis = new VideoSynthesis(); final String prompt = "Sebuah adegan seni fantasi urban. Karakter seni grafiti dinamis. Seorang anak laki-laki yang terbuat dari cat semprot hidup dari dinding beton. Ia menyanyikan lagu rap berbahasa Inggris dengan kecepatan tinggi sambil mengambil pose rapper klasik yang energetik. Adegan ini berlatar malam hari di bawah jembatan rel kereta perkotaan. Cahaya berasal dari satu lampu jalan, menciptakan suasana sinematik penuh energi tinggi dan detail luar biasa. Audio video hanya terdiri dari rap tersebut, tanpa dialog atau kebisingan lainnya."; List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{ add(VideoSynthesisParam.Media.builder() .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png") .type("first_frame") .build()); add(VideoSynthesisParam.Media.builder() .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3") .type("driving_audio") .build()); }}; VideoSynthesisParam param = VideoSynthesisParam.builder() .apiKey(apiKey) .model("wan2.7-i2v-2026-04-25") .prompt(prompt) .media(media) .watermark(true) .duration(10) .resolution("720P") .build(); VideoSynthesisResult result = null; try { System.out.println("---sync call, please wait a moment----"); result = videoSynthesis.call(param); } catch (ApiException | NoApiKeyException e){ throw new RuntimeException(e.getMessage()); } catch (InputRequiredException e) { throw new RuntimeException(e); } System.out.println(JsonUtils.toJson(result)); } public static void main(String[] args) { syncCall(); }}
Langkah 1: Buat tugas dan dapatkan ID tugas
Copy
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.7-i2v-2026-04-25", "input": { "prompt": "Sebuah adegan seni fantasi urban. Karakter seni grafiti dinamis. Seorang anak laki-laki yang terbuat dari cat semprot hidup dari dinding beton. Ia menyanyikan lagu rap berbahasa Inggris dengan kecepatan tinggi sambil mengambil pose rapper klasik yang energetik. Adegan ini berlatar malam hari di bawah jembatan rel kereta perkotaan. Cahaya berasal dari satu lampu jalan, menciptakan suasana sinematik penuh energi tinggi dan detail luar biasa. Audio video hanya terdiri dari rap tersebut, tanpa dialog atau kebisingan lainnya.", "media": [ { "type": "first_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png" }, { "type": "driving_audio", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3" } ] }, "parameters": { "resolution": "720P", "duration": 10, "prompt_extend": true, "watermark": true }}'
Langkah 2: Ambil hasil menggunakan ID tugasGanti {task_id} dengan nilai task_id yang dikembalikan oleh panggilan API sebelumnya. task_id berlaku untuk kueri selama 24 jam. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Copy
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Contoh output
video_url berlaku selama 24 jam. Unduh video segera.
Model yang didukung: model seri wan2.7.Pengaturan parameter: Bidang type dalam array media mendukung dua kombinasi berikut. Lihat Aset media input untuk detail kombinasi aset media.
Frame pertama + frame terakhir: Atur type ke first_frame dan last_frame. Model secara otomatis menambahkan audio ke video.
Frame pertama + frame terakhir + audio: Atur type ke first_frame, last_frame, dan driving_audio. Model menggunakan audio tersebut untuk menggerakkan generasi video.
Prompt
Gambar frame pertama
Gambar frame terakhir
Video output
Di pagi hari saat matahari terbit, sebuah labu kecil berembun duduk di kebun labu. Tiba-tiba, labu tersebut retak dengan suara "KRACK". Cahaya keemasan memancar dari celah saat labu terbelah, melepaskan hembusan kabut putih. Seekor kelinci kecil muncul di tengah labu yang terbuka.
SDK Python
SDK Java
Curl
Pastikan versi SDK Python DashScope Anda adalah 1.25.16 atau lebih baru. Untuk memperbarui, lihat Instal SDK.
Copy
# -*- coding: utf-8 -*-from http import HTTPStatusfrom dashscope import VideoSynthesisimport dashscopeimport os# Ini adalah URL untuk wilayah Singapura. URL berbeda-beda per wilayah. Untuk daftar URL, lihat https://www.alibabacloud.com/help/en/model-studio/image-to-video-general-api-reference.dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx"# Kunci API berbeda-beda per wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key.api_key = os.getenv("DASHSCOPE_API_KEY")media = [ { "type": "first_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/welyei/wan2.7-i2v-first-frame.webp" }, { "type": "last_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/zongha/wan2.7-i2v-last-frame.webp" }]def sample_sync_call(): print('----sync call, please wait a moment----') rsp = VideoSynthesis.call( api_key=api_key, model="wan2.7-i2v-2026-04-25", media=media, resolution="720P", duration=15, watermark=True, prompt="Di pagi hari saat matahari terbit, sebuah labu kecil berembun duduk di kebun labu. Tiba-tiba, labu tersebut retak dengan suara \"KRACK\". Cahaya keemasan memancar dari celah saat labu terbelah, melepaskan hembusan kabut putih. Seekor kelinci kecil muncul di tengah labu yang terbuka.", ) if rsp.status_code == HTTPStatus.OK: print(rsp.output.video_url) else: print('Gagal, status_code: %s, code: %s, message: %s' % (rsp.status_code, rsp.code, rsp.message))if __name__ == '__main__': sample_sync_call()
Pastikan versi SDK Java DashScope Anda adalah 2.22.14 atau lebih baru. Untuk memperbarui, lihat Instal SDK.
Copy
// 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.Constants;import com.alibaba.dashscope.utils.JsonUtils;import java.util.ArrayList;import java.util.List;public class Image2Video { static { // Ini adalah Titik akhir untuk wilayah Singapura. Untuk wilayah Tiongkok (Beijing), gunakan https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1 Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; } // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey="sk-xxx" // Kunci API berbeda-beda per wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key. static String apiKey = System.getenv("DASHSCOPE_API_KEY"); public static void syncCall() { VideoSynthesis videoSynthesis = new VideoSynthesis(); final String prompt = "Di pagi hari saat matahari terbit, sebuah labu kecil berembun duduk di kebun labu. Tiba-tiba, labu tersebut retak dengan suara \"KRACK\". Cahaya keemasan memancar dari celah saat labu terbelah, melepaskan hembusan kabut putih. Seekor kelinci kecil muncul di tengah labu yang terbuka."; List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{ add(VideoSynthesisParam.Media.builder() .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/welyei/wan2.7-i2v-first-frame.webp") .type("first_frame") .build()); add(VideoSynthesisParam.Media.builder() .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/zongha/wan2.7-i2v-last-frame.webp") .type("last_frame") .build()); }}; VideoSynthesisParam param = VideoSynthesisParam.builder() .apiKey(apiKey) .model("wan2.7-i2v-2026-04-25") .prompt(prompt) .media(media) .watermark(true) .duration(15) .resolution("720P") .build(); VideoSynthesisResult result = null; try { System.out.println("---sync call, please wait a moment----"); result = videoSynthesis.call(param); } catch (ApiException | NoApiKeyException e){ throw new RuntimeException(e.getMessage()); } catch (InputRequiredException e) { throw new RuntimeException(e); } System.out.println(JsonUtils.toJson(result)); } public static void main(String[] args) { syncCall(); }}
Langkah 1: Buat tugas dan dapatkan ID tugas
Copy
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.7-i2v-2026-04-25", "input": { "prompt": "Di pagi hari saat matahari terbit, sebuah labu kecil berembun duduk di kebun labu. Tiba-tiba, labu tersebut retak dengan suara \"KRACK\". Cahaya keemasan memancar dari celah saat labu terbelah, melepaskan hembusan kabut putih. Seekor kelinci kecil muncul di tengah labu yang terbuka.", "media": [ { "type": "first_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/welyei/wan2.7-i2v-first-frame.webp" }, { "type": "last_frame", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/zongha/wan2.7-i2v-last-frame.webp" } ] }, "parameters": { "resolution": "720P", "duration": 15, "prompt_extend": false, "watermark": true }}'
Langkah 2: Ambil hasil menggunakan ID tugasGanti {task_id} dengan nilai task_id yang dikembalikan oleh panggilan API sebelumnya. task_id berlaku untuk kueri selama 24 jam. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Copy
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Model yang didukung: model seri wan2.7.Fitur ini melanjutkan konten dari segmen video input. Output mencakup klip asli, dan durasinya dihitung dalam total waktu generasi. Misalnya, jika Anda menginput video 2 detik dan mengatur durasi output total menjadi 12 detik, video akhir akan berdurasi 12 detik (klip asli 2 detik ditambah kelanjutan 10 detik).Pengaturan parameter: Bidang type dalam array media mendukung dua kombinasi berikut. Lihat Aset media input untuk detail kombinasi aset media.
Segmen video awal: Atur type ke first_clip untuk melanjutkan video.
Segmen video awal + kelanjutan frame terakhir: Atur type ke first_clip dan last_frame. Ini melanjutkan segmen video awal dan memastikan frame akhirnya sesuai dengan frame terakhir yang diberikan.
Kelanjutan dari klip awal
Klip awal dan frame terakhir
Prompt
Segmen video awal
Video output
Tukang roti membawa roti berlapis gula, meletakkan kuasnya, dan kamera mengikutinya ke oven di belakang untuk memanggangnya. Tukang roti menutup pintu oven, berdiri di sampingnya sambil mengawasi roti, mencium aromanya, dan berkata, "enak sekali".
Prompt
Segmen video awal
Gambar frame terakhir
Video keluaran
Pria tersebut menunduk melihat kotak kayu di tanah. Ia membungkuk, membuka tutupnya dengan hati-hati, dan menatap isinya. Bibirnya gemetar dan sedikit terbuka, alisnya berkerut, dan matanya melebar dengan ekspresi ngeri.
SDK Python
SDK Java
Curl
Pastikan versi SDK Python DashScope Anda adalah 1.25.16 atau lebih baru. Untuk memperbarui, lihat Instal SDK.
Copy
# -*- coding: utf-8 -*-from http import HTTPStatusfrom dashscope import VideoSynthesisimport dashscopeimport os# Ini adalah URL untuk wilayah Singapura. URL berbeda-beda per wilayah. Untuk daftar URL, lihat https://www.alibabacloud.com/help/en/model-studio/image-to-video-general-api-reference.dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx"# Kunci API berbeda-beda per wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key.api_key = os.getenv("DASHSCOPE_API_KEY")media = [ { "type": "first_clip", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/rptnhd/wan2.7-i2v-video-continuation-2.mp4" }]def sample_sync_call(): print('----sync call, please wait a moment----') rsp = VideoSynthesis.call( api_key=api_key, model="wan2.7-i2v-2026-04-25", media=media, resolution="720P", duration=12, watermark=True, prompt="Tukang roti membawa roti berlapis gula, meletakkan kuasnya, dan kamera mengikutinya ke oven di belakang untuk memanggangnya. Tukang roti menutup pintu oven, berdiri di sampingnya sambil mengawasi roti, mencium aromanya, dan berkata, \"enak sekali\".", ) if rsp.status_code == HTTPStatus.OK: print(rsp.output.video_url) else: print('Gagal, status_code: %s, code: %s, message: %s' % (rsp.status_code, rsp.code, rsp.message))if __name__ == '__main__': sample_sync_call()
Pastikan versi SDK Java DashScope Anda adalah 2.22.14 atau lebih baru. Untuk memperbarui, lihat Instal SDK.
Copy
// 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.Constants;import com.alibaba.dashscope.utils.JsonUtils;import java.util.ArrayList;import java.util.List;public class Image2Video { static { Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"; } static String apiKey = System.getenv("DASHSCOPE_API_KEY"); public static void syncCall() { VideoSynthesis videoSynthesis = new VideoSynthesis(); final String prompt = "Tukang roti membawa roti berlapis gula, meletakkan kuasnya, dan kamera mengikutinya ke oven di belakang untuk memanggangnya. Tukang roti menutup pintu oven, berdiri di sampingnya sambil mengawasi roti, mencium aromanya, dan berkata, \"enak sekali\"."; List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{ add(VideoSynthesisParam.Media.builder() .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/rptnhd/wan2.7-i2v-video-continuation-2.mp4") .type("first_clip") .build()); }}; VideoSynthesisParam param = VideoSynthesisParam.builder() .apiKey(apiKey) .model("wan2.7-i2v-2026-04-25") .prompt(prompt) .media(media) .watermark(true) .duration(12) .resolution("720P") .build(); VideoSynthesisResult result = null; try { System.out.println("---sync call, please wait a moment----"); result = videoSynthesis.call(param); } catch (ApiException | NoApiKeyException e){ throw new RuntimeException(e.getMessage()); } catch (InputRequiredException e) { throw new RuntimeException(e); } System.out.println(JsonUtils.toJson(result)); } public static void main(String[] args) { syncCall(); }}
Langkah 1: Buat tugas dan dapatkan ID tugas
Copy
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.7-i2v-2026-04-25", "input": { "prompt": "Tukang roti membawa roti berlapis gula, meletakkan kuasnya, dan kamera mengikutinya ke oven di belakang untuk memanggangnya. Tukang roti menutup pintu oven, berdiri di sampingnya sambil mengawasi roti, mencium aromanya, dan berkata, \"enak sekali\".", "media": [ { "type": "first_clip", "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260414/rptnhd/wan2.7-i2v-video-continuation-2.mp4" } ] }, "parameters": { "resolution": "720P", "duration": 12, "prompt_extend": false, "watermark": true }}'
Langkah 2: Ambil hasil menggunakan ID tugasGanti {task_id} dengan nilai task_id yang dikembalikan oleh panggilan API sebelumnya. task_id berlaku untuk kueri selama 24 jam. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Copy
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Teruskan aset media dalam array media, di mana setiap elemen harus menentukan type dan url, dan setiap type hanya boleh muncul paling banyak satu kali dalam array media.
Hanya kombinasi media spesifik yang tercantum di bawah ini yang didukung. Kombinasi lain akan mengembalikan error.
Jumlah gambar: Anda dapat mengirimkan maksimal satu gambar untuk frame pertama (type=first_frame) dan satu gambar untuk frame terakhir (type=last_frame).
Spesifikasi video output: Spesifikasi yang didukung berbeda-beda per model. Untuk detailnya, lihat Ketersediaan.
Kadaluarsa URL video output: 24 jam.
Dimensi video output: Model menentukan dimensi berdasarkan frame pertama atau segmen video awal input dan pengaturan resolution.Model mempertahankan rasio aspek asli dari media input. Model menskalakan jumlah piksel total agar mendekati target yang ditetapkan oleh parameter resolution, dan menyesuaikan lebar serta tinggi agar menjadi kelipatan 16.
J: wan2.7-i2v memperkenalkan kemampuan baru berikut dibandingkan model wan2.6-i2v dan sebelumnya:
Model ini mendukung tiga tugas utama: generasi video dari frame pertama, generasi video dari frame pertama dan terakhir, serta kelanjutan video. Model sebelumnya hanya mendukung generasi video dari frame pertama.
Anda dapat mengirimkan media multimodal, seperti gambar, audio, dan video, menggunakan array media terpadu. Model sebelumnya hanya mendukung pengiriman gambar dengan parameter img_url.
J: Tentukan struktur shot dalam prompt. Anda dapat menggunakan metode berikut:
Spesifikasi langsung: Sertakan "generate a multi-shot video" dalam prompt.
Storyboard atau stempel waktu: Jelaskan setiap shot dengan rentang waktu. Misalnya, "Shot pertama: wide shot, seorang anak laki-laki rap dan menari" atau "Shot pertama [1-5dtk]: wide shot, seorang anak laki-laki rap dan menari. Shot kedua [6-10dtk]: kamera beralih ke penonton yang bersorak."
Jika Anda tidak secara eksplisit menentukan struktur shot, model akan menginferensinya dari prompt.
T: Mengapa saya tidak bisa mengatur rasio aspek video?
J: API saat ini tidak mendukung pengaturan rasio aspek secara langsung. Sebagai gantinya, Anda harus mengatur resolusi menggunakan parameter resolution.Parameter resolution mengontrol jumlah piksel total video, bukan rasio aspek tetap. Model mempertahankan rasio aspek asli dari frame pertama atau segmen video awal input dan menyesuaikan lebar serta tinggi agar menjadi kelipatan bilangan bulat 16 untuk pengkodean video.