すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:Wan 2.7 - 画像から動画生成 API

最終更新日:Jun 04, 2026

Wan 2.7 画像から動画生成モデルは、マルチモーダル入力(テキスト、画像、音声、動画)をサポートし、次の 3 つのタスクを実行します。最初のフレームから動画生成、最初と最後のフレームから動画生成、動画継続生成

リファレンスユーザーガイド

説明

新しい 画像から動画生成 API(wan2.7 モデル)は、上記の 3 つのタスクすべてをサポートします。以前の 最初のフレームからの画像から動画生成 API(wan2.6 以前)は、最初のフレームから動画生成のみをサポートします。

利用可能リージョン

モデル、エンドポイント URL、API キーは同じリージョンに属している必要があります。リージョンをまたいだ呼び出しは失敗します。

  • モデルの選択:ご利用のターゲットリージョンでモデルが利用可能であることを確認してください。

  • URL の選択:モデルのリージョンに一致するエンドポイント URL を選択してください。HTTP および DashScope SDK の両方の URL がサポートされています。

  • API キーの構成:リージョン用の API キー を取得し、環境変数として API キーを構成してください。

  • SDK のインストール:SDK を使用して API 呼び出しを行うには、DashScope SDK をインストールしてください。

説明

このトピックのサンプルコードは、シンガポール リージョン向けです。

重要

シンガポールリージョン向けのレガシドメイン https://dashscope-intl.aliyuncs.com はまもなく非推奨になります。できるだけ早く新しいドメイン https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com に移行してください。

HTTP

重要

この API は 新しい画像から動画生成プロトコル を使用し、wan2.7 モデル のみをサポートします。

画像から動画生成タスクは通常 1~5 分かかりますので、API は非同期呼び出しを使用します。ワークフローは 2 ステップで構成されます。タスクを作成し、その後 結果をポーリング します。

ステップ 1:タスクを作成し、タスク ID を取得する

シンガポール

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

WorkspaceId は、実際の ワークスペース ID に置き換えてください。

北京

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

説明
  • タスク作成後、返された task_id を使用して結果をクエリします。task_id の有効期間は 24 時間です。重複するタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。

  • 初心者向けのガイドについては、「Postman」をご参照ください。

リクエストパラメーター

最初のフレームからの動画生成

最初のフレーム画像と音声に基づいて動画を生成します。

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": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life on a concrete wall. He sings an English rap song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The light 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 the rap, with no other dialogue or noise.",
            "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
        }
    }'

最初と最後のフレームからの動画生成

最初のフレームと最後のフレームを渡して動画を生成します。

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": "Realistic style, a small black cat looks up at the sky curiously. The camera angle gradually rises from eye level, finally capturing its curious gaze from a top-down view.",
            "media": [
                {
                    "type": "first_frame",
                    "url": "https://wanx.alicdn.com/material/20250318/first_frame.png"
                },
                {
                    "type": "last_frame",
                    "url": "https://wanx.alicdn.com/material/20250318/last_frame.png"
                }
            ]
        },
        "parameters": {
            "resolution": "720P",
            "duration": 10,
            "prompt_extend": false,
            "watermark": true
        }
    }'

動画の続き

初期の動画クリップに基づいて後続のコンテンツを生成します。

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": "A girl takes a selfie in the mirror, then leaves with her backpack.",
            "media": [
                {
                    "type": "first_clip",
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/hfugmr/wan-r2v-role1.mp4"
                }
            ]
        },
        "parameters": {
            "resolution": "720P",
            "duration": 10,
            "prompt_extend": true,
            "watermark": true
        }
    }'

Content-Type string (必須)

リクエストのコンテンツタイプです。必ず application/json にしてください。

Authorization string (必須)

Model Studio API キーを使用してリクエストを認証します。例:Bearer sk-xxxx。

X-DashScope-Async string (必須)

非同期処理を有効にします。HTTP リクエストは非同期呼び出しのみをサポートします。必ず enable にしてください。

重要

このリクエストヘッダーが欠落している場合、「current user api does not support synchronous calls」というエラーが返されます。

リクエスト本文

model string (必須)

モデル名です。モデルとその料金の一覧については、「モデル料金」をご参照ください。

例:wan2.7-i2v-2026-04-25。

input object (必須)

プロンプトを含む基本的な入力情報です。

プロパティ

prompt string (任意)

生成される動画の要素や視覚的特徴を説明するテキストプロンプトです。

中国語と英語をサポートしています。最大 5,000 文字です。

中国語の文字または英字はそれぞれ 1 文字としてカウントされます。制限を超えたテキストは自動的に切り捨てられます。長さの制限はモデルバージョンによって異なります。

例:草の上で走る子猫。

プロンプトの使い方の詳細については、「テキストから動画/画像から動画生成プロンプトガイド」をご参照ください。

negative_prompt string (任意)

動画から除外するコンテンツを記述します。

中国語と英語をサポートしています。最大 500 文字です。制限を超えたテキストは自動的に切り捨てられます。

例:低解像度、エラー、最悪の品質、低品質、歪んでいる、余分な指、不自然な比率。

media array (必須)

動画生成のための参照資料(画像、音声、動画)です。

各要素は type および url フィールドを持つメディアオブジェクトです。

アセットの組み合わせ

次のアセットの組み合わせのみが有効です。無効な組み合わせではエラーが返されます。

  • 最初のフレームからの動画生成

    • 最初のフレーム:first_frame

    • 最初のフレーム + 音声:first_frame+driving_audio

  • 最初と最後のフレームからの動画生成

    • 最初のフレーム + 最後のフレーム:first_frame+last_frame

    • 最初のフレーム + 最後のフレーム + 音声:first_frame+last_frame+driving_audio

  • 動画の続き

    • 最初の動画クリップ継続:first_clip

    • 最初の動画クリップ + 最後のフレーム継続:first_clip+last_frame

プロパティ

type string (必須)

メディアアセットの種類です。有効な値は次のとおりです。

  • first_frame

  • last_frame

  • driving_audio

  • first_clip

制限:typemedia 配列内で最大 1 回しか出現できません。たとえば、first_frame アセットを 2 つ渡すことはできません。

url string (必須)

メディアアセット(画像、音声、または動画)の URL です。

画像の指定(type=first_frame または last_frame)

最初または最後のフレーム画像の URL または Base64 エンコードデータです。

画像の制限:

  • 形式:JPEG、JPG、PNG(alpha チャンネルは未対応)、BMP、WEBP。

  • 解像度:幅と高さは [240、8000] ピクセルの範囲内である必要があります。

  • 縦横比:1:8 ~ 8:1。

  • ファイルサイズ:最大 20 MB。

サポートされる入力形式:

  1. 公開 URL:

    • HTTP または HTTPS プロトコルをサポートしています。

    • 例:https://xxx/xxx.png。

  2. Base64 エンコード画像文字列:

    • データ形式:data:{MIME_type};base64,{base64_data}

    • 例:data:image/png;base64,GDU7MtCZzEbTbmRZ......(例はデモンストレーションのために省略されています)。

      Base64 エンコードデータ形式

      形式:data:{MIME_type};base64,{base64_data}

      • {base64_data}:画像ファイルの Base64 エンコード文字列。

      • {MIME_type}:画像の Multipurpose Internet Mail Extensions(MIME)タイプ。ファイル形式に対応している必要があります。

音声の指定(type=driving_audio)

音声ファイルの URL です。

  • 音声あり:モデルはリップシンクおよびアクションタイミングの駆動ソースとして使用します。

  • 音声なし:モデルは自動的にマッチングする BGM または効果音を生成します。

音声の制限:

  • 形式:wav、mp3。

  • 持続時間:2 秒~30 秒。

  • ファイルサイズ:最大 15 MB。

  • 切り捨て:音声の持続時間が duration 値(例:5 秒)を超える場合、音声は最初の 5 秒に自動的に切り捨てられ、残りは破棄されます。音声の持続時間が動画の持続時間より短い場合、音声の持続時間を超えた動画部分は無音になります。たとえば、音声が 3 秒で動画が 5 秒の場合、出力動画の最初の 3 秒に音声が含まれ、最後の 2 秒は無音になります。

サポートされる入力形式:

  1. 公開 URL:

    • HTTP および HTTPS プロトコルをサポートしています。

    • 例:https://xxx/xxx.mp3。

動画の指定(type=first_clip)

動画ファイルの URL です。モデルは動画コンテンツに基づいて継続コンテンツを生成します。duration パラメーターは、出力の最大合計持続時間を制御します。

例:duration=15 で入力動画が 3 秒の場合、モデルは 12 秒の継続コンテンツを生成します。最終的な出力動画は 15 秒になり、15 秒分が課金されます。

動画の制限:

  • 形式:mp4、mov。

  • 持続時間:2 秒~10 秒。

  • 解像度:幅と高さは [240、4096] ピクセルの範囲内である必要があります。

  • 縦横比:1:8 ~ 8:1。

  • ファイルサイズ:最大 100 MB。

サポートされる入力形式:

  1. 公開 URL:

    • HTTP および HTTPS プロトコルをサポートしています。

    • 例:https://xxx/xxx.mp4。

parameters object(省略可)

動画処理パラメーター:解像度、持続時間、プロンプトリライト、ウォーターマーク。

Properties

resolution string(省略可)

重要

解像度はコストに直接影響します。呼び出し前に、「Model pricing」をご確認ください。

生成される動画の解像度階層です。総ピクセル数を制御します。

モデルは、選択された階層に近い総ピクセル数になるよう、自動的に動画をスケーリングします。出力の縦横比は入力素材(最初のフレームまたは最初のビデオクリップ)に従います。詳細については、「FAQ」をご参照ください。

有効値は 720P および 1080P です。デフォルト:1080P

duration integer(省略可)

重要

持続時間はコストに直接影響します。課金は秒単位で行われます。呼び出し前に、「Model pricing」をご確認ください。

生成される動画の持続時間を秒単位で指定します。有効範囲はモデルによって異なります。

有効値:2 ~ 15 の整数。デフォルト:5。

prompt_extend boolean(省略可)

プロンプト書き換えを有効にするかどうかを指定します。有効にすると、短いプロンプトに対して結果を改善するためにモデルが入力プロンプトを書き換えますが、処理時間が増加します。

  • true(デフォルト)

  • false

watermark boolean(省略可)

動画の右下隅に「AI Generated」ウォーターマークを追加するかどうかを指定します。

  • false(デフォルト)

  • true

seed integer(省略可)

乱数シードは、[0, 2147483647] の範囲内の整数である必要があります。

指定しない場合、ランダムなシードが生成されます。固定シードを使用することで再現性が向上します。

モデルによる生成は確率的であるため、同じシードを使用しても完全に同一の結果が得られるとは限りません。

応答パラメーター

成功時の応答

task_id を保存して、タスクのステータスおよび結果をクエリします。

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

エラー時の応答

タスクの作成に失敗しました。「エラーコード」をご参照ください。

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

output オブジェクト

タスクの出力情報です。

プロパティ

task_id 文字列

タスク ID。クエリに対して24 時間有効です。

task_status 文字列

タスクのステータスです。

列挙値

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN:タスクが存在しない、またはそのステータスが不明です。

request_id 文字列

トレースおよびトラブルシューティング用の一意のリクエスト識別子です。

code 文字列

エラーコードです。失敗したリクエストでのみ返されます。「エラーコード」をご参照ください。

message 文字列

詳細なエラーメッセージです。失敗したリクエストでのみ返されます。「エラーコード」をご参照ください。

手順 2:タスク ID による結果のクエリ

シンガポール

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

WorkspaceId は、実際のWorkspace IDに置き換えてください。

北京

GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}

説明
  • ポーリング推奨設定:動画生成には数分かかります。15 秒などの適切な間隔でポーリングメカニズムを使用してください。

  • タスク状態のトランジション:PENDING → RUNNING → SUCCEEDED または FAILED。

  • 結果リンク:タスクが成功すると、24 時間有効な動画 URL が返されます。生成された動画をダウンロードし、OSS などの永続ストレージに保存してください。

  • task_id の有効期間24 時間。この期間を過ぎると、クエリの結果としてタスクステータスが UNKNOWN になります。

リクエストパラメーター

タスク結果のクエリ

{task_id} は、直前の API 呼び出しで返された task_id の値に置き換えてください。task_id は、24 時間の間クエリに使用できます。

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

Authorization 文字列 (必須)

Model Studio API キーを使用してリクエストを認証します。例:Bearer sk-xxxx。

パスパラメーター

task_id 文字列 (必須)

タスクの ID です。

応答パラメーター

タスク成功時

動画 URL の有効期間は 24 時間のみで、その後自動的に消去されます。生成された動画は速やかに保存してください。

{
    "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 on a concrete wall. He sings an English rap song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The light 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": 15,
        "input_video_duration": 0,
        "output_video_duration": 15,
        "video_count": 1,
        "SR": 720
    }
}

タスク失敗時

タスクが失敗した場合、task_status は FAILED となり、エラーコードおよびエラーメッセージが返されます。「Error codes」をご参照ください。

{
    "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"
    }
}

タスククエリ期限切れ時

task_id の有効期間は 24 時間です。この期間を過ぎると、以下のエラーが返されます。

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

output オブジェクト

タスク出力情報。

プロパティ

task_id 文字列

タスク ID。クエリに使用できる期間は 24 時間です。

task_status 文字列

タスクのステータス。

列挙値

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN:タスクが存在しない、またはステータスが不明です。

ポーリング時の状態遷移:

  • PENDING → RUNNING → SUCCEEDED または FAILED。

  • 初期クエリのステータスは通常 PENDING または RUNNING です。

  • ステータスが SUCCEEDED に変化すると、応答に生成された動画 URL が含まれます。

  • ステータスが FAILED の場合は、エラーメッセージを確認してタスクをリトライしてください。

submit_time 文字列

タスクが送信された時刻。時刻は UTC + 08:00 で、形式は YYYY-MM-DD HH:mm:ss.SSS です。

scheduled_time 文字列

タスクが実行された時刻。時刻は UTC + 08:00 で、形式は YYYY-MM-DD HH:mm:ss.SSS です。

end_time 文字列

タスクが完了した時刻。時刻は UTC + 08:00 で、形式は YYYY-MM-DD HH:mm:ss.SSS です。

video_url 文字列

生成された動画の URL。task_status が SUCCEEDED の場合のみ返されます。

有効期間は 24 時間です。動画は H.264 エンコーディングの MP4 フォーマットです。

orig_prompt 文字列

元の入力プロンプト。リクエストパラメーター prompt に対応します。

code 文字列

エラーコード。失敗したリクエストの場合のみ返されます。「Error codes」をご参照ください。

message 文字列

詳細なエラーメッセージ。失敗したリクエストの場合のみ返されます。「Error codes」をご参照ください。

usage オブジェクト

使用量統計情報。成功したタスクに対してのみ計算されます。

プロパティ

input_video_duration 整数

入力動画の持続時間(秒単位)。

output_video_duration 整数

出力動画の持続時間(秒単位)。

duration 整数

課金対象となる合計動画持続時間。

SR 整数

出力動画の解像度。例:720。

video_count 整数

出力動画の数。固定値は 1 です。

request_id 文字列

トレースおよびトラブルシューティング用の一意なリクエスト識別子。

DashScope SDK

SDK のパラメーター名は HTTP API のものと一致します。パラメーター構造は言語の規則に基づいてカプセル化されています。

画像から動画生成タスクは通常 1~5 分かかります。SDK は HTTP 非同期呼び出しプロセスをカプセル化し、同期および非同期の両方の呼び出しをサポートします。

実際の処理時間はタスクキューおよびサービス負荷によって異なります。結果を待機してください。

Python SDK

重要

以下のコードを実行する前に、DashScope Python SDK のバージョンが 1.25.16 以上 であることを確認してください。

バージョンが古すぎると、「url error, please check url!」などのエラーが発生する可能性があります。詳細については、「SDK のインストール」を参照して更新してください。

dashscope.base_http_api_url をモデルのリージョンに基づいて設定します。

シンガポール

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

WorkspaceId は、実際の ワークスペース ID に置き換えてください。

北京

dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'

同期呼び出し

リクエスト例
# -*- coding: utf-8 -*-
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os

# これはシンガポールリージョンの URL です。URL はリージョンによって異なります。詳細については、https://www.alibabacloud.com/help/ja/model-studio/image-to-video-general-api-reference を参照してください。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください。
# API キーはリージョンによって異なります。詳細については、https://www.alibabacloud.com/help/ja/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('----同期呼び出し中です。しばらくお待ちください。----')
    rsp = VideoSynthesis.call(
        api_key=api_key,
        model="wan2.7-i2v-2026-04-25",
        media=media,
        resolution="720P",
        duration=10,
        watermark=True,
        prompt="An urban fantasy art scene featuring a dynamic graffiti character. A boy made of spray paint comes to life on a concrete wall. He sings an English rap song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night, lit by a single street lamp. This creates a cinematic atmosphere with high energy and amazing detail. The video's audio consists entirely of the rap, with no other dialogue or noise.",
    )
    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_sync_call()
レスポンス例
video_url の有効期間は 24 時間です。動画を速やかにダウンロードしてください。
{
    "status_code": 200,
    "request_id": "ac5faf37-ddfa-9720-a0c5-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "b97c6d86-ad73-4bb7-80ff-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
        "submit_time": "2026-04-13 10:45:47.597",
        "scheduled_time": "2026-04-13 10:45:56.342",
        "end_time": "2026-04-13 10:47:26.273",
        "orig_prompt": "An urban fantasy art scene. A dynamic graffiti character. A boy made of spray paint comes to life on a concrete wall. He performs a fast-paced English rap song while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The light comes from a single street lamp, creating a cinematic atmosphere with high energy and incredible detail. The audio consists solely of the rap, with no other dialogue or background noise."
    },
    "usage": {
        "video_count": 1,
        "video_duration": 0,
        "video_ratio": "",
        "duration": 10,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "SR": 720
    }
}

非同期呼び出し

リクエスト例
# -*- coding: utf-8 -*-
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os

# これはシンガポールリージョンの URL です。URL はリージョンによって異なります。ご利用のリージョンの URL を取得するには、https://www.alibabacloud.com/help/ja/model-studio/image-to-video-general-api-reference を参照してください。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください。
# API キーはリージョンによって異なります。API キーの取得方法については、https://www.alibabacloud.com/help/ja/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_async_call():
    # 非同期タスクを送信します。タスク情報が即座に返されます。
    rsp = VideoSynthesis.async_call(
        api_key=api_key,
        model="wan2.7-i2v-2026-04-25",
        media=media,
        resolution="720P",
        duration=10,
        watermark=True,
        prompt="A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life on a concrete wall. He sings an English rap song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The light 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 the rap, with no other dialogue or noise.",
    )
    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))

    # タスクステータスをクエリします。
    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))

    # タスクの完了を待ちます。
    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()
レスポンス例
  1. タスク作成時のレスポンス例

    {
        "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
    }
  2. タスク結果クエリ時のレスポンス例

    video_url の有効期間は 24 時間です。動画を速やかにダウンロードしてください。
    {
        "status_code": 200,
        "request_id": "ac5faf37-ddfa-9720-a0c5-xxxxxx",
        "code": null,
        "message": "",
        "output": {
            "task_id": "b97c6d86-ad73-4bb7-80ff-xxxxxx",
            "task_status": "SUCCEEDED",
            "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
            "submit_time": "2026-04-13 10:45:47.597",
            "scheduled_time": "2026-04-13 10:45:56.342",
            "end_time": "2026-04-13 10:47:26.273",
            "orig_prompt": "An urban fantasy art scene. A dynamic graffiti character. A boy made of spray paint comes to life on a concrete wall. He performs a fast-paced English rap song while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The light comes from a single street lamp, creating a cinematic atmosphere with high energy and incredible detail. The audio consists solely of the rap, with no other dialogue or background noise."
        },
        "usage": {
            "video_count": 1,
            "video_duration": 0,
            "video_ratio": "",
            "duration": 10,
            "input_video_duration": 0,
            "output_video_duration": 10,
            "SR": 720
        }
    }

Java SDK

重要

以下のコードを実行する前に、DashScope Java SDK のバージョンが 2.22.14 以上 であることを確認してください。

バージョンが古すぎると、「url error, please check url!」などのエラーが発生する可能性があります。詳細については、「SDK のインストール」を参照して更新してください。

Constants.baseHttpApiUrl をモデルのリージョンに基づいて設定します。

シンガポール

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

WorkspaceId は、実際の ワークスペース ID に置き換えてください。

北京

Constants.baseHttpApiUrl = "https://dashscope.aliyuncs.com/api/v1"

同期呼び出し

同期呼び出しは、動画生成が完了して結果が返されるまでブロッキングされます。

リクエスト例
// 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 です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // 環境変数が設定されていない場合は、次の行を apiKey="sk-xxx" に置き換えてください。
    // API キーはリージョン固有です。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご覧ください。
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void syncCall() {
        VideoSynthesis videoSynthesis = new VideoSynthesis();
        final String prompt = "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life on a concrete wall. He sings an English rap song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The light 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.";
        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("---同期呼び出し中です。しばらくお待ちください...----");
            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();
    }
}
レスポンス例
video_url の有効期間は 24 時間です。動画を速やかにダウンロードしてください。
{
    "request_id": "78178b55-8399-9823-8173-xxxxxx",
    "output": {
        "task_id": "be457e1b-8a79-47ed-aeff-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
        "orig_prompt": "An urban fantasy art scene featuring a dynamic graffiti art character. A boy made of spray paint comes to life on a concrete wall. He rapidly sings an English rap song while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. A single street lamp provides the light, creating a high-energy cinematic atmosphere with incredible detail. The audio consists entirely of his rap, with no other dialogue or background noise.",
        "submit_time": "2026-04-13 10:57:36.795",
        "scheduled_time": "2026-04-13 10:57:46.280",
        "end_time": "2026-04-13 10:59:16.338"
    },
    "usage": {
        "video_count": 1,
        "duration": 10.0,
        "input_video_duration": 0.0,
        "output_video_duration": 10.0,
        "SR": "720"
    },
    "status_code": 200,
    "code": "",
    "message": ""
}

非同期呼び出し

リクエスト例
// 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 です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // 環境変数が設定されていない場合は、次の行を apiKey = "sk-xxx" に置き換えてください。
    // API キーはリージョン固有です。API キーの取得方法については、https://www.alibabacloud.com/help/ja/model-studio/get-api-key を参照してください。
    static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void asyncCall() {
        VideoSynthesis videoSynthesis = new VideoSynthesis();
        final String prompt = "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life on a concrete wall. He sings an English rap song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The light 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.";
        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("--- 非同期呼び出しを開始しています。しばらくお待ちください... ---");
            result = videoSynthesis.asyncCall(param);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        } catch (InputRequiredException e) {
            throw new RuntimeException(e);
        }
        System.out.println(JsonUtils.toJson(result));

        String taskId = result.getOutput().getTaskId();
        System.out.println("taskId=" + taskId);

        try {
            result = videoSynthesis.wait(taskId, apiKey);
        } catch (ApiException | NoApiKeyException e){
            throw new RuntimeException(e.getMessage());
        }
        System.out.println(JsonUtils.toJson(result));
        System.out.println(JsonUtils.toJson(result.getOutput()));
    }

    public static void main(String[] args) {
        asyncCall();
    }
}
レスポンス例
  1. タスク作成時のレスポンス例

    {
        "request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
        "output": {
            "task_id": "7277e20e-aa01-4709-xxxxxxxx",
            "task_status": "PENDING"
        }
    }
  2. タスク結果クエリ時のレスポンス例

    video_url の有効期間は 24 時間です。動画を速やかにダウンロードしてください。
    {
        "request_id": "78178b55-8399-9823-8173-xxxxxx",
        "output": {
            "task_id": "be457e1b-8a79-47ed-aeff-xxxxxx",
            "task_status": "SUCCEEDED",
            "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
            "orig_prompt": "An urban fantasy art scene featuring a dynamic graffiti art character. A boy made of spray paint comes to life on a concrete wall. He rapidly sings an English rap song while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. A single street lamp provides the light, creating a high-energy cinematic atmosphere with incredible detail. The audio consists entirely of his rap, with no other dialogue or background noise.",
            "submit_time": "2026-04-13 10:57:36.795",
            "scheduled_time": "2026-04-13 10:57:46.280",
            "end_time": "2026-04-13 10:59:16.338"
        },
        "usage": {
            "video_count": 1,
            "duration": 10.0,
            "input_video_duration": 0.0,
            "output_video_duration": 10.0,
            "SR": "720"
        },
        "status_code": 200,
        "code": "",
        "message": ""
    }

エラーコード

モデル呼び出しが失敗してエラーメッセージが返された場合は、「エラーコード」を参照して問題を解決してください。

よくある質問

Q:特定の縦横比(例:3:4)で動画を生成するにはどうすればよいですか?

A:出力の縦横比は 入力素材(最初のフレーム画像または最初の動画クリップ) によって決定されますが、正確に一致することは保証されません。わずかなドリフトが発生する可能性があります。

次の例は、最初のフレーム画像を入力として使用する場合のロジックを説明しています。

  • なぜドリフトが発生するのですか?

    • 実行ロジック:システムは入力画像の縦横比をベースラインとして使用し、resolution 階層のターゲット総ピクセル数と組み合わせます。ビデオエンコーディングでは 幅と高さが 16 の倍数である必要がある ため、システムは最も近い有効な解像度に調整します。

    • 計算例:750 x 1000 ピクセルの入力画像(3:4 比 = 0.75)で「720P」解像度(約 920,000 総ピクセル)を使用すると、816 x 1104 ピクセルの出力(比 ~0.739、約 900,000 総ピクセル)が生成されます。

  • 推奨事項

    • 入力制御:ターゲット縦横比に一致する最初のフレームまたは動画クリップを使用します。

    • 後処理:厳密な縦横比要件がある場合は、生成後に動画をトリミングするか、黒枠を追加します。

Q:動画ストレージアクセス用のドメイン名ホワイトリストを取得するにはどうすればよいですか?

A:モデルによって生成された動画は OSS に保存されます。API は一時的な公開 URL を返します。このダウンロード URL のファイアウォールホワイトリストを構成するには、次の点にご注意ください。基盤となるストレージは動的に変更される可能性があります。このトピックでは、古い情報によるアクセス障害を防ぐため、固定の OSS ドメイン名ホワイトリストを提供していません。セキュリティ制御要件がある場合は、アカウントマネージャーに連絡して最新の OSS ドメイン名リストを取得してください。