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

Alibaba Cloud Model Studio:Wan 2.7 - 画像から動画への API

最終更新日:Sep 02, 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 をインストールします。

注記このトピックのサンプルコードは、シンガポール リージョンに適用されます。

重要Alibaba Cloud Model Studio は、中国 (北京) およびシンガポールリージョン向けにワークスペース専用ドメインをリリースしました。新しい専用ドメインを利用することで、推論リクエストのパフォーマンスと安定性が向上します。新しいドメインへの移行を推奨します:

  • 中国 (北京): https://dashscope.aliyuncs.com から https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • シンガポール: https://dashscope-intl.aliyuncs.com から https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

{WorkspaceId} は、Alibaba Cloud Model Studio コンソールの [ワークスペース詳細] ページで確認できるワークスペース ID です。既存のドメインも引き続き完全に機能します。

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

北京

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

実際の ワークスペース ID{WorkspaceId} を置き換えます。

注記

  • タスクの作成後、返されたtask_id を使用して結果をクエリしてください。task_id は 24 時間有効です。重複したタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。
  • 初心者向けのガイダンスについては、「Postman または cURL を使用した API の呼び出し」をご参照ください。

リクエストパラメーター

開始フレームからの動画生成

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


# 次の URL はシンガポールリージョン用です。呼び出す際に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
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": "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。",
            "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
        }
    }'

開始・終了フレームからの動画生成

開始フレームと終了フレームを渡して動画を生成します。


# 次の URL はシンガポールリージョン用です。呼び出す際に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
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": "リアルなスタイルで、小さな黒猫が好奇心旺盛に空を見上げる。カメラアングルは目線の高さから徐々に上がり、最終的に真上からの視点でその好奇心に満ちた視線を捉える。",
            "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
        }
    }'

動画の続きを生成

最初のビデオクリップに基づいて後続のコンテンツを生成します。


# 次の URL はシンガポールリージョン用です。呼び出す際に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
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": "少女が鏡で自撮りをし、その後バックパックを持って去っていく。",
            "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 (必須)

メディアアセットのタイプ。有効値:

  • 最初のフレーム
  • last_frame
  • driving_audio
  • first_clip

制限: media 配列では、各 type は最大 1 回までしか含めることができません。たとえば、2 つの first_frame アセットを渡すことはできません。

url string (必須)

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

画像の受け渡し (type=first_frame または last_frame)

開始フレームまたは終了フレーム画像の URL または Base64 エンコードされたデータです。

画像の制限:

  • フォーマット:JPEG、JPG、PNG (アルファチャンネルは非対応)、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}:画像の MIME (Multipurpose Internet Mail Extensions) タイプ。ファイル形式に対応している必要があります。

音声の受け渡し (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 (任意)

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

プロパティ

resolution string (任意)

重要解像度はコストに直接影響します。呼び出しの前に、「モデルの料金」をご確認ください。

生成されるビデオの解像度レベルです。総ピクセル数を制御します。

モデルは、選択されたレベルに近い総ピクセル数にビデオを自動的にスケーリングします。出力のアスペクト比は、入力素材 (開始フレームまたは最初のビデオクリップ) に従います。詳細については、「よくある質問」をご参照ください。

有効な値は 720P と 1080P です。デフォルト: 1080P

duration integer (任意)

重要持続時間はコストに直接影響します。課金は秒単位です。呼び出しの前に、「モデルの料金」をご確認ください。

生成されるビデオの持続時間 (秒)。有効範囲はモデルによって異なります:

有効値:2 から 15 までの整数。デフォルト:5。

prompt_extendboolean (任意)

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

  • 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 object

タスクの出力情報です。

プロパティ

task_id string

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

task_status string

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

列挙値

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。

request_id string

トレースとトラブルシューティングのための一意のリクエスト識別子です。

code string

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

message string

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

ステップ 2:タスク ID による結果のクエリ

シンガポール

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

北京

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

実際の ワークスペース ID{WorkspaceId} を置き換えます。

注記

  • ポーリングの推奨:動画生成には数分かかります。15 秒などの適切な間隔でポーリングメカニズムを使用してください。
  • タスク状態遷移:PENDING → RUNNING → SUCCEEDED または FAILED。
  • 結果リンク:タスクが成功すると、24 時間有効な動画 URL が返されます。動画をダウンロードし、OSS などの永続ストレージに保存してください。
  • task_id有効期間: 24 時間。この期間を過ぎると、クエリはタスクステータスとして UNKNOWN を返します。

リクエストパラメーター

タスク結果のクエリ

{task_id} を、前の API 呼び出しで返された task_id の値に置き換えます。 task_id はクエリに対して 24 時間有効です。{WorkspaceId} を実際の ワークスペース ID に置き換えます。

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

Authorization string (必須)

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

パスパラメーター

task_id string (必須)

タスクの 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": "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。",
        "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 になり、エラーコードとメッセージが返されます。詳細については、「エラーコード」をご参照ください。

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

outputobject

タスクの出力情報です。

プロパティ

task_id string

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

task_status string

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

列挙値

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。
ポーリング中の状態遷移:
  • PENDING → RUNNING → SUCCEEDED または FAILED。
  • 最初のクエリステータスは通常 PENDING または RUNNING です。
  • ステータスが SUCCEEDED に変わると、レスポンスには生成された動画の URL が含まれます。
  • ステータスが FAILED の場合は、エラーメッセージを確認してタスクをリトライしてください。

submit_time string

タスクが送信された時刻です。時刻は UTC+8 で、フォーマットは YYYY-MM-DD HH:mm:ss.SSS です。

scheduled_time string

タスクが実行された時刻です。時刻は UTC+8 で、フォーマットは YYYY-MM-DD HH:mm:ss.SSS です。

end_time string

タスクが完了した時刻です。時刻は UTC+8 で、フォーマットは YYYY-MM-DD HH:mm:ss.SSS です。

video_url string

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

24 時間有効です。動画は H.264 エンコーディングの MP4 形式です。

orig_prompt string

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

code string

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

message string

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

usage object

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

プロパティ

input_video_duration integer

入力ビデオの持続時間 (秒)。

output_video_duration integer

出力ビデオの持続時間 (秒)。

duration integer

課金に使用される合計ビデオ持続時間。

SR integer

出力ビデオの解像度。例:720。

video_count integer

出力ビデオの数。1 に固定されています。

request_id string

トレースとトラブルシューティングのための一意のリクエスト識別子です。

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'

北京

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

実際の ワークスペース ID{WorkspaceId} を置き換えます。

同期呼び出し

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

# 次の URL はシンガポールリージョン用です。呼び出す際に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
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/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="都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。",
    )
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.video_url)
    else:
        print('失敗、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": "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。"
    },
    "usage": {
        "video_count": 1,
        "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 はシンガポールリージョン用です。呼び出す際に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
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/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="都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。",
    )
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print("task_id: %s" % rsp.output.task_id)
    else:
        print('失敗、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('失敗、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('失敗、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
}
  1. タスク結果クエリのレスポンス例

    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": "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。"
    },
    "usage": {
        "video_count": 1,
        "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"

北京

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

実際の ワークスペース ID{WorkspaceId} を置き換えます。

同期呼び出し

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

リクエスト例
// 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 はシンガポールリージョン用です。呼び出す際に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

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

    public static void syncCall() {
        VideoSynthesis videoSynthesis = new VideoSynthesis();
        final String prompt = "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。";
        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": "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。",
        "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,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "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 はシンガポールリージョン用です。呼び出す際に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

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

    public static void asyncCall() {
        VideoSynthesis videoSynthesis = new VideoSynthesis();
        final String prompt = "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。";
        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"
    }
}
  1. タスク結果クエリのレスポンス例

    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": "都会のファンタジーアートのシーン。ダイナミックなグラフィティアートのキャラクター。スプレーペイントでできた少年がコンクリートの壁で生き生きと動き出す。彼はクラシックでエネルギッシュなラッパーのポーズをとりながら、高速で英語のラップソングを歌う。シーンは夜の都市の鉄道橋の下。一本の街灯からの光が、高いエネルギーと驚くべきディテールに満ちた映画のような雰囲気を作り出している。動画の音声はラップのみで構成され、他の対話やノイズはない。",
        "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,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "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 ドメイン名リストを入手してください。