Skip to main content

Wan - 画像動画生成 - 開始フレーム API リファレンス (2.1-2.6)

Wan 画像動画生成モデルは、 開始フレーム画像 と テキストプロンプト からスムーズな動画を生成します。

関連ドキュメント: ユーザーガイド
Wan 2.7 - 画像動画生成は、開始フレームからの動画生成、開始・終了フレームからの動画生成、および動画継続生成をサポートしています。このバージョンの利用を推奨します。Wan 2.6 以前のモデルの 画像動画生成 (開始フレームに基づく) 機能は、開始フレームからの動画生成のみをサポートしています。

可用性

ご利用のモデル、エンドポイント URL、API キーは同じリージョンにある必要があります。リージョン間の呼び出しは失敗します。
このトピックのサンプルコードは、シンガポールリージョン用です。
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 呼び出し

画像動画生成タスクは非同期呼び出し (通常 1~5 分) を使用します:タスクの作成 -> 結果のポーリング。

ステップ 1:タスクの作成

  • シンガポール
  • バージニア
  • 北京
  • フランクフルト
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
{WorkspaceId} を実際の ワークスペース ID に置き換えてください。
  • タスク作成後、返された task_id を使用して結果をクエリします。task_id は 24 時間有効です。重複タスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。
  • 初心者向けのガイダンスについては、「Postman または cURL で API を呼び出す」をご参照ください。

リクエストパラメーター

ヘッダー
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.6-i2v-flash。input object (必須)プロンプトを含む入力フィールド。

プロパティ

prompt string (任意)生成される動画に望まれる視覚的要素と特徴を記述します。中国語と英語をサポートします。各文字は 1 文字としてカウントされます。制限を超えるテキストは切り捨てられます。モデル別の文字数制限:
  • Wan2.6 および Wan2.5 シリーズモデル:最大 1,500 文字。
  • wan2.2 および wan2.1 シリーズモデル:最大 800 文字。
例:草の上を走る子猫。プロンプト作成のヒント:「テキスト動画生成/画像動画生成プロンプトガイド」をご参照ください。negative_prompt string (任意)動画から除外するものを記述し、出力を制約します。中国語と英語をサポートします。最大 500 文字。長いテキストは切り捨てられます。例:低解像度、エラー、最低品質、低品質、変形、指の多さ、不適切な比率など。img_url string (必須)初期画像の URL または Base64 エンコードされたデータ。画像の制約:
  • 画像フォーマット:JPEG、JPG、PNG (alpha チャンネルは非サポート)、BMP、または WEBP。
  • 画像解像度:幅と高さの両方が [240, 8000] ピクセルの範囲内である必要があります。
  • ファイルサイズ:
    • Wan2.6 および Wan2.5 シリーズモデル:最大 20 MB。
    • wan2.2 および wan2.1 シリーズモデル:最大 10 MB。
サポートされている入力フォーマット:
  1. パブリック URL:
  2. Base64 エンコードされた画像文字列:
    • データフォーマット:data:{MIME_type};base64,{base64_data}。
    • 例:data:image/png;base64,GDU7MtCZzEbTbmRZ...... (簡潔にするために切り捨て)。
    • 詳細については、「入力画像」をご参照ください。
audio_url string (任意)サポートモデル:Wan2.6 および Wan2.5 シリーズモデル。音声ファイルの URL。モデルはこの音声を使用して動画を生成します。サポートされている入力フォーマット:
  1. パブリック URL:
音声の制約:
  • フォーマット:WAV、MP3。
  • 持続時間:3~30 秒。
  • ファイルサイズ:最大 15 MB。
  • 範囲外の処理:音声の持続時間が指定された duration (5 秒または 10 秒) を超える場合、システムは音声を最初の 5 秒または 10 秒に自動的に切り捨て、残りは破棄されます。音声が動画の持続時間より短い場合、音声が終了した後の動画は無音になります。例えば、音声が 3 秒で動画の持続時間が 5 秒の場合、出力動画の最初の 3 秒は音声付きで、最後の 2 秒は無音になります。
例:https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3。
parameters object (任意)解像度、持続時間、インテリジェントなプロンプトリライト、およびウォーターマークのコントロール。

プロパティ

resolution string (任意)
解像度はコストに直接影響します。API を呼び出す前に、モデルの料金を確認してください。
出力動画の解像度ティアを指定します。モデルは、選択されたティアに基づいて、出力の総ピクセル数を近い値にスケーリングします。モデルは、出力のアスペクト比をimg_urlの入力画像のアスペクト比にできるだけ近づけて維持します。詳細については、「よくある質問」をご参照ください。このパラメーターのデフォルト値と利用可能な列挙値は、model パラメーターによって次のように異なります:
  • wan2.6-i2v-flash:有効な値:720P、1080P。デフォルト値:1080P。
  • wan2.6-i2v:有効な値:720P、1080P。デフォルト値:1080P。
  • wan2.6-i2v-us:有効な値:720P、1080P。デフォルト値:1080P。
  • wan2.5-i2v-preview:有効な値:480P、720P、1080P。デフォルト値:1080P。
  • wan2.2-i2v-flash:有効な値:480P、720P。デフォルト値:720P。
  • wan2.2-i2v-plus:有効な値:480P、1080P。デフォルト値:1080P。
  • wan2.1-i2v-turbo:有効な値:480P、720P。デフォルト値:720P。
  • wan2.1-i2v-plus:有効な値:720P。デフォルト値:720P。
例:1080P。duration integer (任意)
持続時間はコストに直接影響します。API を呼び出す前に、モデルの料金を確認してください。
出力動画の持続時間 (秒)。有効な値は model パラメーターによって異なります:
  • wan2.6-i2v-flash:[2, 15] の範囲の整数。デフォルト:5。
  • wan2.6-i2v:[2, 15] の範囲の整数。デフォルト:5。
  • wan2.6-i2v-us:有効な値:5、10、15。デフォルト:5。
  • wan2.5-i2v-preview:有効な値:5、10。デフォルト:5。
  • wan2.2-i2v-plus:5 秒に固定されており、変更できません。
  • wan2.2-i2v-flash:5 秒に固定されており、変更できません。
  • wan2.1-i2v-plus:5 秒に固定されており、変更できません。
  • wan2.1-i2v-turbo:有効な値:3、4、または 5。デフォルト:5。
例:5。prompt_extend boolean (任意)プロンプトリライトを有効にするかどうか。有効にすると、LLM が入力プロンプトを書き換えます。これにより、短いプロンプトの生成品質が向上しますが、処理時間が増加します。
  • true (デフォルト)
  • false
例:true。shot_type string (任意)サポートモデル:Wan2.6 シリーズモデル。生成される動画のショットタイプを指定します:単一の連続したショットか、複数のショットのシーケンスか。このパラメーターは、"prompt_extend": true の場合にのみ有効です。パラメーターの優先度:shot_type > prompt。例えば、shot_type が "single" に設定されている場合、プロンプトに「マルチショット動画を生成」と含まれていても、モデルはシングルショット動画を出力します。有効な値:
  • single:デフォルト値。シングルショット動画を生成します。
  • multi:マルチショット動画を生成します。
例:single。
製品デモ用のシングルショットや短編映画用のマルチショットなど、ナラティブ構造を厳密に制御する必要がある場合にこのパラメーターを使用してください。
audio boolean (任意)
これはコストに影響します。音声付き動画と無音動画では料金が異なります。Model Studio コンソールで料金を確認してください。
サポートモデル:wan2.6-i2v-flash。音声付きの動画を生成するかどうかを指定します。パラメーターの優先度:audio > audio_url。audio=false の場合、audio_url が提供されていても出力は無音動画となり、課金は無音動画に基づいて行われます。有効な値:
  • true:デフォルト値。音声付きの動画を生成します。
  • false:無音動画を生成します。
例:true。watermark boolean (任意)動画の右下に「AI Generated」のウォーターマークを追加するかどうかを指定します。
  • false:デフォルト値。ウォーターマークは追加されません。
  • true:ウォーターマークを追加します。
例:false。seedinteger(任意)乱数シード。値の範囲:[0, 2147483647]。指定しない場合、システムが生成します。再現性を高めるには、固定シードを使用してください。生成は確率的です。同じシードでも結果が異なる場合があります。例:12345。
  • マルチショットナラティブ
  • 自動吹き替え
  • カスタム音声
  • 無音動画
  • ネガティブプロンプト
この機能は、Wan2.6 シリーズモデルでのみサポートされています。"prompt_extend": true と "shot_type":"multi" を設定することで有効にできます。
# 次の 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.6-i2v-flash",
    "input": {
        "prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "img_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png",
        "audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"
    },
    "parameters": {
        "resolution": "720P",
        "prompt_extend": true,
        "duration": 10,
        "shot_type":"multi"
    }
}'

レスポンスパラメーター

output objectタスクの出力に関する情報。

プロパティ

task_id stringタスク ID。24 時間クエリに有効です。task_status stringタスクのステータス。

列挙値

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。
request_id string追跡とトラブルシューティングのためのユニークなリクエスト識別子。code stringエラーコード。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。message string詳細なエラーメッセージ。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。
  • 成功レスポンス
  • エラーレスポンス
task_id を保存して、タスクのステータスと結果をクエリします。
{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

ステップ 2:タスク結果のクエリ

  • シンガポール
  • バージニア
  • 中国 (北京)
  • フランクフルト
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
{WorkspaceId} を実際の ワークスペース ID に置き換えてください。
  • ポーリングの推奨事項:動画生成には数分かかります。15 秒などの適切な間隔でポーリングメカニズムを使用してください。
  • タスク状態の遷移:PENDING → RUNNING → SUCCEEDED または FAILED。
  • 結果リンク:タスクが成功すると、24 時間有効な動画 URL が返されます。動画をダウンロードして、OSS などの永続ストレージに保存してください。
  • task_idの有効期間:24 時間。この期間を過ぎると、クエリはタスクステータスを UNKNOWN として返します。

リクエストパラメーター

ヘッダー
Authorization string (必須)Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。
パスパラメーター
task_id string (必須)タスクの ID。
  • タスク結果のクエリ
{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"

レスポンスパラメーター

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 に対応します。actual_prompt stringprompt_extend が true の場合、システムはプロンプトを書き換え、このフィールドには最適化されたバージョンが含まれます。
  • prompt_extend=false の場合、このフィールドは返されません。
  • 注意:wan2.6 モデルは、prompt_extend の値に関わらず、このフィールドを返しません。
code stringエラーコード。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。message string詳細なエラーメッセージ。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。
usage objectタスクの使用量統計。成功したタスクに対してのみカウントされます。

プロパティ

wan2.6 シリーズモデルによって返されるパラメーター

input_video_duration integer入力動画の持続時間 (秒)。現在、動画入力はサポートされていないため、常に 0 です。output_video_duration integerwan2.6 モデルを使用する場合にのみ返されます。出力動画の持続時間 (秒)。この値は input.duration と一致します。duration integer課金に使用される合計動画持続時間。課金数式:duration=input_video_duration+output_video_duration。SR integerwan2.6 モデルを使用する場合にのみ返されます。生成された動画の解像度ティア。例:720。video_count integer生成された動画の数。これは 1 に固定されています。audiobooleanwan2.6-i2v-flash モデルを使用する場合にのみ返されます。出力が音声付きの動画であるかどうかを示します。
duration integer生成された動画の持続時間 (秒)。可能な値:5、10。課金数式:コスト = 動画持続時間 (秒) × 単価。SR integer生成された動画の解像度。可能な値:480、720、1080。video_count integer生成された動画の数。これは 1 に固定されています。
video_duration integer生成された動画の持続時間 (秒)。可能な値:3、4、5。課金数式:コスト = 動画持続時間 (秒) × 単価。video_ratio string生成された動画のアスペクト比。この値は常に「standard」です。video_count integer生成された動画の数。これは 1 に固定されています。
request_id string追跡とトラブルシューティングのためのユニークなリクエスト識別子。
  • タスク成功
  • タスク失敗
  • タスククエリの期限切れ
動画 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 from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "video_url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.mp4?Expires=xxx"
    },
    "usage": {
        "duration": 10,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "video_count": 1,
        "SR": 720
    }
}

DashScope SDK 呼び出し

SDK のパラメーター名は、各言語の規則に従い、HTTP API とほぼ一致しています。 画像動画生成タスクは通常 1~5 分かかります。SDK は非同期 HTTP 呼び出しプロセスをラップし、同期呼び出しと非同期呼び出しの両方をサポートします。
処理時間はタスクキューとサービスステータスに依存します。

Python SDK

以下のコードを実行する前に、DashScope Python SDK のバージョンが少なくとも2.0.1 であることを確認してください。古いバージョンでは、「url error, please check url!」などのエラーが発生する可能性があります。更新するには、「SDK のインストール」をご参照ください。
モデルのリージョンに応じて region を設定します(Client 構築時に渡します。リージョンによって region の値は異なります):
  • シンガポール
  • バージニア
  • 北京
  • フランクフルト
region="ap-southeast-1"
{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

サンプルコード

  • 同期呼び出し
  • 非同期呼び出し
同期呼び出しは、動画生成が完了するまでブロックします。この例では、パブリック URL、Base64 エンコーディング、ローカルファイルパスの 3 つの画像入力方法を示します。
リクエスト例
import base64
import os
import mimetypes
import dashscope
from dashscope.v2 import DashScopeError

# 以下はシンガポールリージョンの設定です。リージョンによって region の値は異なります。呼び出し時は、{WorkspaceId} をお使いのワークスペース ID に置き換えてください。
# 各リージョンのエンドポイントについては、https://www.alibabacloud.com/help/model-studio/image-to-video-api-reference をご参照ください。
client = dashscope.Client(
    # 環境変数が設定されていない場合は、api_key = "sk-xxx" に置き換えてください
    # API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    workspace="{WorkspaceId}",
    region="ap-southeast-1",
)

# --- Base64 エンコーディングのヘルパー関数 ---
# フォーマット:data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
    mime_type, _ = mimetypes.guess_type(file_path)
    if not mime_type or not mime_type.startswith("image/"):
        raise ValueError("Unsupported or unrecognized image format")
    with open(file_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
    return f"data:{mime_type};base64,{encoded_string}"

"""
画像入力方法:
以下は画像を指定する 3 つの方法です。いずれか 1 つを選択してください。

1. パブリック URL:すでに公開されている画像に最適です。
2. ローカルファイル:ローカルでの開発やテストに適しています。
3. Base64 エンコーディング:非公開の画像や、データを安全に転送する必要がある場合に最適です。
"""

# [方法 1] 公開されている画像 URL を使用する
# 例:公開画像 URL を使用
img_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png"

# [方法 2] ローカルファイルを使用する (絶対パスと相対パスをサポート)
# フォーマット:file:// + ファイルパス
# 例 (絶対パス):
# img_url = "file://" + "/path/to/your/img.png"    # Linux/macOS
# img_url = "file://" + "C:/path/to/your/img.png"  # Windows
# 例 (相対パス):
# img_url = "file://" + "./img.png"                # 現在のスクリプトのディレクトリからの相対パス

# [方法 3] Base64 エンコードされた画像を使用する
# img_url = encode_file("./img.png")

# 音声 URL を設定
audio_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"

def sample_call_i2v():
    print('please wait...')
    # generate はワンステップ呼び出し(タスクを送信して完了を待機)で、完了済みの Job を返します
    # audio_url / negative_prompt は input セクションのフィールドで、名前付きシグネチャに含まれないため、extra_input 経由で渡します
    try:
        job = client.videos.generate(model='wan2.6-i2v-flash',
                                     prompt='A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.',
                                     image_url=img_url,
                                     extra_input={'audio_url': audio_url,
                                                  'negative_prompt': ""},
                                     resolution="720P",
                                     duration=10,
                                     prompt_extend=True,
                                     watermark=False,
                                     seed=12345)
        print(job)
        print("video_url:", job.video_url)
    except DashScopeError as e:
        print(f"HTTP status code: {e.status_code}")
        print(f"Error code: {e.code}")
        print(f"Error message: {e.message}")
        print("See the documentation: https://www.alibabacloud.com/help/ja/model-studio/developer-reference/error-code")

if __name__ == '__main__':
    sample_call_i2v()
レスポンス例
video_url は 24 時間有効です。有効期限が切れる前に動画をダウンロードしてください。
{
    "status_code": 200,
    "request_id": "2794c7a3-fe8c-4dd4-a1b7-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "c15d5b14-07c4-4af5-b862-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
        "submit_time": "2026-01-22 23:24:46.527",
        "scheduled_time": "2026-01-22 23:24:46.565",
        "end_time": "2026-01-22 23:25:59.978",
        "orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise."
    },
    "usage": {
        "video_count": 1,
        "video_duration": 0,
        "video_ratio": "",
        "duration": 10,
        "input_video_duration": 0,
        "output_video_duration": 10,
        "audio": true,
        "SR": 720
    }
}

Java SDK

以下のコードを実行する前に、DashScope Java SDK のバージョンが少なくとも2.22.6 であることを確認してください。古いバージョンでは、「url error, please check url!」などのエラーが発生する可能性があります。更新するには、「SDK のインストール」をご参照ください。
モデルのリージョンに応じて baseHttpApiUrl を設定します:
  • シンガポール
  • バージニア
  • 北京
  • フランクフルト
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

サンプルコード

  • 同期呼び出し
  • 非同期呼び出し
同期呼び出しは、動画生成が完了するまでブロックします。この例では、パブリック URL、Base64 エンコーディング、ローカルファイルパスの 3 つの画像入力方法を示します。
リクエスト例
// Copyright (c) Alibaba, Inc. and its affiliates.

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

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

public class Image2Video {

    static {
        // エンドポイントを設定します。この例ではシンガポールリージョンを使用します。他のリージョンについては、https://www.alibabacloud.com/help/ja/model-studio/image-to-video-api-reference をご参照ください
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

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

    /**
     * 画像入力方法:以下の 3 つのうち 1 つを選択してください。
     *
     * 1. パブリック URL:すでに公開されている画像に最適です。
     * 2. ローカルファイル:ローカルでの開発やテストに適しています。
     * 3. Base64 エンコーディング:非公開の画像や、データを安全に転送する必要がある場合に最適です。
     */

    // [方法 1] パブリック URL
    static String imgUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png";

    // [方法 2] ローカルファイルパス (file:// + 絶対パス)
    // static String imgUrl = "file://" + "/your/path/to/img.png";    // Linux/macOS
    // static String imgUrl = "file://" + "C:/your/path/to/img.png";  // Windows

    // [方法 3] Base64 エンコーディング
    // static String imgUrl = Image2Video.encodeFile("/your/path/to/img.png");

    // 音声 URL を設定
    static String audioUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3";

    public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
        // パラメーターを設定
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("prompt_extend", true);
        parameters.put("watermark", false);
        parameters.put("seed", 12345);

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

     /**
     * ファイルを Base64 文字列にエンコードします。
     * @param filePath ファイルパス。
     * @return data:{MIME_type};base64,{base64_data} 形式の Base64 文字列。
     */
    public static String encodeFile(String filePath) {
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            throw new IllegalArgumentException("File does not exist: " + filePath);
        }
        // MIME タイプを検出
        String mimeType = null;
        try {
            mimeType = Files.probeContentType(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot detect file type: " + filePath);
        }
        if (mimeType == null || !mimeType.startsWith("image/")) {
            throw new IllegalArgumentException("Unsupported or unrecognized image format");
        }
        // ファイルの内容を読み込んでエンコード
        byte[] fileBytes = null;
        try{
            fileBytes = Files.readAllBytes(path);
        } catch (IOException e) {
            throw new IllegalArgumentException("Cannot read file content: " + filePath);
        }

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

    public static void main(String[] args) {
        try {
            image2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
レスポンス例
video_url は 24 時間有効です。有効期限が切れる前に動画をダウンロードしてください。
{
    "request_id": "87c091bb-7a3c-4904-8501-xxxxxx",
    "output": {
        "task_id": "413ed6e4-5f3a-4f57-8d58-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
        "orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
        "submit_time": "2026-01-22 23:25:45.729",
        "scheduled_time": "2026-01-22 23:25:45.771",
        "end_time": "2026-01-22 23:26:44.942"
    },
    "usage": {
        "video_count": 1,
        "duration": 10.0,
        "input_video_duration": 0.0,
        "output_video_duration": 10.0,
        "SR": "720"
    },
    "status_code": 200,
    "code": "",
    "message": ""
}

制限事項

  • データ保持:task_id と動画 URL は 24 時間保持されます。この期間を過ぎると、クエリやダウンロードはできなくなります。
  • コンテンツモデレーション:すべての入力 (プロンプト、画像) と出力動画はコンテンツモデレーションの対象となります。違反があった場合、IPInfringementSuspect または DataInspectionFailed エラーが発生します。「エラーコード」をご参照ください。

既知の制限事項

wan2.6-i2v-flash が円形のオブジェクト (指輪、歯車、時計の文字盤など) の連続回転を生成する際、3 秒あたりで約 1 秒間動画が停止することがあります。この問題を回避するには、代わりに Wan 2.7 - 画像動画生成 モデルを使用してください。

エラーコード

モデル呼び出しでエラーメッセージが返された場合は、「エラーコード」をご参照ください。

よくある質問

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

A: 入力された開始フレーム画像 (img_url) が出力動画の縦横比を決定します。ただし、わずかなずれが生じる可能性があるため、3:4 のような正確な比率は保証されません。
  • なぜずれが生じるのですか? モデルは入力画像の縦横比をベースラインとして使用し、選択された解像度ティア (resolution) の総ピクセル数と組み合わせて、最も近い有効な解像度を計算します。動画の幅と高さは 16 の倍数でなければならないため、モデルは最終的な解像度をそれに応じて調整します。その結果、出力の縦横比は正確に 3:4 になるとは限りませんが、非常に近い値になります。
    • 例えば、750×1000 (縦横比 3:4 = 0.75) の入力画像で resolution を「720P」(約 920,000 総ピクセルを目標) に設定すると、816×1104 (縦横比 ≈ 0.739、約 900,000 総ピクセル) の出力が生成されます。
  • 推奨事項:
    • 入力を制御する:最良の結果を得るには、すでにご希望の縦横比を持つ開始フレーム画像を使用してください。
    • 後処理:厳密な縦横比が必要な場合は、生成後に編集ツールを使用して動画をクロップするか、黒枠を追加してください。

Q:動画ストレージドメインの許可リストを取得するにはどうすればよいですか?

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