本文へスキップ

Wan 3.0 API: テキストから動画、画像から動画、参照から動画

Wan 3.0 は、変えてはいけない条件に合わせてテキスト・画像・参照の入力を選びます。秒単位のリアルタイム価格、制限、タスク別のリクエストボディを解説。

執筆
SpicyAPI Engineering
公開
読了時間
約 18 分
更新
3 本のフィルムストリップが手書きの脚本のページと 2 つの風景を支え、光がガラスを通して 1 つの投影された風景のフレームに集まっている

Wan 3.0 は 3 つの入口を持つ 1 つのモデルファミリーであり、どの入口から始めるかによって、制御できるもの、支払う費用、そしてこの API が検閲なしコンテンツをどのように扱うかが決まります。言葉を送るのか、静かな 1 枚を送るのか、参照を大量に送るのか。最終的には 1 つの問いに帰着します。

結論から: クリップの中で何が変わってはいけないかを自問してください。

  • まだ何も決まっておらず、シーンを探している段階: テキストから動画。prompt 一つで足ります。
  • 最初のフレーム(必要なら最後のフレームも): 画像から動画。画像はそのまま 1 枚目のフレームとして使われるので、プロンプトは動きだけを説明すればよいです。
  • 繰り返したい人物、部屋、声、動きのスタイル: 参照から動画。最大 10 枚の画像、5 本のクリップ、5 本の音声トラックに加えて、文書やウェブページも 1 つ添えられます。それぞれにプロンプト上の役割を割り当てます。

3 つとも同じファイルに音声込みで 2〜30 秒を返し、ベースと Prime では 480p、720p、1080p を選べます(Pro 階層は 1080p、2K、4K をレンダリングし、2K と 4K は 1080p レンダーから拡大されます)。その他の動画モデルは検閲なし動画 API カタログにあります。

3 つのタスクの横並び

テキストから動画画像から動画参照から動画
必須入力promptimage_url(プロンプトは任意)次のいずれか 1 つ以上: reference_image_urls、reference_video_urls、reference_audio_urls、reference_file_url、reference_link_url(プロンプトは任意)
固定されるもの何も固定しない。文面が唯一の情報源1 枚目のフレームを厳密に固定。last_image_url は最終フレームを固定厳密な固定はなし。参照で人物の同一性、外見、動き、声を導く
送ってはいけないもの画像や参照はすべてreference_* フィールドimage_url、last_image_url
制限プロンプト長はモデルページごとの指定画像は各辺 240〜8000 px、20 MB、アスペクト比は 8:1 より広くない画像 10 枚、クリップ 5 本、音声トラック 5 本。参照クリップと音声はそれぞれ合計 15 s 上限
最適な用途シーンの探索、長回し 1 本パックショット、承認済みアート、ループ、フレームからの続き繰り返し登場する人物、部屋や声、カメラ移動の再現

3 つのタスクとも長さは 2〜30 秒で、-1 を指定するとモデルが長さを選びます(30 s は事前予約され、請求は実際に納品された長さで確定します)。

タスクが列挙していないフィールド、例えばテキストから動画に image_url を送ると、作成呼び出しは 400 を返します。隣り合うエンドポイントをコピーするのではなく、モデルページからスキーマを取得してください。

クリップの料金

秒単位の価格はテキスト、画像、参照のいずれの入力でも同じです。

階層(全タスク共通)解像度と秒単価5 s のクリップ最低解像度での 30 s クリップ
Wan 3.0480p $0.045 / 720p $0.09 / 1080p $0.18$0.225 / $0.45 / $0.90$1.35(480p)
Wan 3.0 Prime(より高速)480p $0.0612 / 720p $0.126 / 1080p $0.252$0.31 / $0.63 / $1.26$1.84(480p)
Wan 3.0 Pro1080p $0.144 / 2K $0.16 / 4K $0.184$0.72 / $0.80 / $0.92$4.32(1080p)
Wan 3.0 Pro Prime1080p $0.234 / 2K $0.252 / 4K $0.279$1.17 / $1.26 / $1.40$7.02(1080p)

参照から動画には注意が 1 つあります。参照動画の秒数は出力とは別に課金され、参照クリップと出力を合計で 30 秒以内に収める必要があります。参照画像、音声、文書、ウェブページは課金対象外です。参照クリップを含むタスクの見積もりや予約は 15 秒の上限を前提としており、実際に使われた秒数のみが課金されます。

古い Wan 2.6 は長さ固定の代替案です。テキストから動画と画像から動画は 720p(秒あたり $0.09)または 1080p($0.135)で、ちょうど 5、10、15 秒を返します。その参照から動画のタスクは別の契約で、参照クリップは最大 3 本、画像は使えず、Unrestricted ではなく Filtered content のラベルが付きます。

テキストから動画:ムードではなく構図を書く

シーンがまだ決まっていないとき、承認済みの画像がまだないとき、または独自の音声を持つ長回し 1 本が欲しいときに使ってください。冒頭のフレームを固定するものは何もないので、視聴者が見るべきものはすべてプロンプトに入れてください。主題、動作 1 つ、カメラ移動 1 つ、そして光と音。1 つのはっきりした動作が長い形容詞の並列に勝ります。冒頭の構図を承認済み画像に合わせたい場合は別の場所を見てください。それが画像から動画です。

json
{
  "model": "alibaba/wan-3.0/text-to-video",
  "input": {
    "prompt": "A ceramic bottle stands on a brushed-steel counter. One bead of condensation rolls down the glass while the camera pushes in slowly. Cool side light, no cut. Sound: a faint fridge hum and the tick of the droplet landing.",
    "duration_seconds": 10,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "generate_audio": true
  }
}

このリクエストはベース Wan 3.0 で 10 x $0.09 = $0.90 です。習慣を 3 つ挙げます。

  • 30 秒を求める前に、5 秒で見た目を確定してください。 長いクリップほど逸脱しやすいため、ダメなアイデアは短い方が安く見つけられます。
  • 長回しではプロンプトを時間軸のある beat に分けます。 コミュニティの例では、動作(生地、ソース、トッピング、オーブン)ごとに 2 秒の beat を書き、15 秒のクリップ用に連続性を示す 1 行を加えていました。
  • 要件が明確になったら prompt expansion はオフにしてください。 内容が薄いプロンプトには有効です。一方、詳細なプロンプトとは相性がよくありません。Wan 3.0 Pro のテキストから動画ではデフォルトでオンです。

画像から動画:フレームが上限

1 枚目のフレームを譲れないときに使ってください。固定構図の商品パックショット、承認済みのキャラクターシート、前のクリップのキーフレーム。画像が衣装、セット、光を決めているので、プロンプトが運ぶのは動きだけです。シーンがまだ決まっていないとき(テキストから動画)、または同じ人物を複数のカットで繰り返し出させたいとき(参照から動画)は別の場所を見てください。aspect_ratio を省略するとクリップは画像の形を継承し、矛盾する値を入れるとトリミングされます。

last_image_url を渡すと、クリップは 2 枚目の画像でちょうど終わります。同じファイルを最初と最後のフレームの両方に渡すと、継ぎ目のないループになります。商品ボトルの例ではそうします。ハイライトがガラスを横切るよう 1/4 回転させ、最初へ戻ります。

Wan 3.0 画像から動画、1080p、5 秒、無音: 美容液のボトルが 4 分の 1 回転してから開始角度へ戻り、最後はラベルが再び中央に戻ります。最初と最後のフレームに同じスチル画像を使っています

image_url と last_image_url に同じ画像、音声はオフ。1080p で 5 s は $0.90 です。

json
{
  "model": "alibaba/wan-3.0/image-to-video",
  "input": {
    "image_url": "https://cdn.spicyapi.ai/models/examples/inputs/e82b71db9e3d0e5f.png",
    "last_image_url": "https://cdn.spicyapi.ai/models/examples/inputs/e82b71db9e3d0e5f.png",
    "prompt": "The bottle rotates a quarter turn so the highlight travels across the glass, then returns to its starting angle. Locked camera, single soft key from the left, no music.",
    "duration_seconds": 5,
    "resolution": "1080p",
    "generate_audio": false,
    "seed": 20260907
  }
}

自分で渡したフレームを説明し、その後に動きを述べてください。別の部屋は決して書かないこと。プロンプトがスチル画像とは異なるシーンを指すと、Wan 3.0 はスチル画像で開いてから新しいシーンへカットすることがあります。last_image_url だけでは拒否され、image_url が必要です。

参照から動画:すべての参照に役割を

繰り返す必要があるものにはこちらを使ってください。複数のカットに同じ人物、同じ部屋、特定の 1 つの声、動き、カメラのスタイルです。Wan 3.0 は渡した順番で参照を読み込み、プロンプトがどれがどれかを示します。そうしないと、モデルはそれらを平均し、どれにも似ていない被写体になってしまいます。1 枚の承認済みスチル画像がすでにすべてを語っている場合は、別の場所を見てください。余分な参照は競合し、自動的に制御が増えるわけではありません。下の例では、1 枚目の画像から人物を、2 枚目の画像から部屋を引き継ぎます。

台座に置かれた光るガラスレンズが、3 枚のガラスパネルに光の筋を送っている: ストーリーボードの一コマ、風景、抽象的なカードの一列

装飾的なイラストであり、モデルの出力でも、次の例の図解でもありません。

json
{
  "model": "alibaba/wan-3.0/reference-to-video",
  "input": {
    "reference_image_urls": [
      "https://cdn.spicyapi.ai/models/examples/inputs/a4d8d93ce949c527.png",
      "https://cdn.spicyapi.ai/models/examples/inputs/27753da99f960815.png"
    ],
    "prompt": "The first image is the character: keep her face, hair and the black slip dress exactly. The second image is the room. She crosses from the doorway to the window and leans against the frame, looking out. Slow lateral track, one practical lamp, night ambience.",
    "duration_seconds": 8,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "seed": 771120
  }
}
Wan 3.0 参照から動画、720p、8 秒、音あり: 1 枚目の参照画像から取った黒いスリップドレスを着た女性が、暗いアパートをドアから夜の窓まで横切り、部屋は 2 枚目の画像から取られています

参照画像 2 枚、参照映像なし: 8 秒のクリップは 8 x $0.09 = $0.72 です。

渡せるもの:

  • 画像(最大 10 枚)は、人物、衣装、セットの背景地用です。実在の人物の写真は顔チェックで拒否されることがあります("The input content is suspected to include real human faces")。イラスト、3D レンダリング、生成キャラクターを使ってください。拒否されたタスクは課金されません。
  • 映像(最大 5 クリップ、各 1〜15 秒、合計 15 秒)は、顔ではなく動きとカメラスタイル用です。送信前にクリップの長さを確認してください。上限は受理時ではなく生成中に適用されます。
  • 音声(最大 5 クリップ、合計 15 秒)は、声や室内の環境音用です。
  • 文書 1 件または公開ウェブページ 1 件(両方同時には不可)を、モデルが人物、衣装、舞台設定、行動を読み取るために渡します。100 MB まで 50 ページまでの PDF、DOCX、TXT、Markdown ファイル、またはログインなしで開けるページです。どちらかを添付すると、設定で無効にしていなければ thinking(Pro 階層では利用不可)と prompt expansion が有効になります。creator tutorial が考え方を説明しています。ページの読み取りに失敗した場合は課金されません。

1 枚目が正確でなければならない場合は image-to-video を使ってください。reference-to-video に画像から開始するよう指示することはできますが(Alibaba の Wan 3.0 prompt guide を参照)、それを保証できるのは image-to-video だけです。

規制のないコンテンツで何が変わるか

検閲なしは Wan の単一スイッチではありません。選んだタスクによって結果が変わります。2026 年 9 月のテストに基づく(完全なグリッドは Wan 検閲なしテスト を参照):

  • 標準の Wan 3.0 は Mild から Strong までのすべての強度を、テキスト、画像、参照入力すべてでテスト通過させました。ただし指示した範囲を超えることもよくあります。抑制をテーマにしたプロンプトが、異なる 2 人の成人シーンとして返ることがあり、2 人目が加わることもありました。
  • Wan 3.0 Prime の image-to-video は 2 人の成人シーンを弱めました。一方、Prime の text と reference はそのまま生成しました。スチル画像から始めるなら、まず標準の Wan 3.0 を試してください。
  • Wan 3.0 Spicy と Prime Spicy は image-to-video としてのみ存在します(480p で 1 秒あたり $0.057 から)。指示していないのに成人寄りに傾き、衣装を変えたり脱がせたりすることがよくあります。衣装をそのまま残す必要がある場合は、標準の Wan 3.0 を使ってください。
  • Wan 2.6 の reference-to-video は、こちらの参照映像を拒否しました。

挙動はエンドポイントごとに違うので、選んだもので自分のプロンプトを試してください。30 秒を超えて物語を続ける場合は クリップの連結 を参照してください。

まず Playground で試す

各タスクには Playground タブを持つ専用ページがあります(Form ビューのままにしてください。実行には入金済みのアカウントでサインインします)。コードを書く前に、まずそこで短く安いクリップを 1 本動かしてください。

  1. タスクのページを開きます: text to video、image to video、reference to video。
  2. そのタスクが必要とする入力欄を埋めます。text to video は Prompt。image to video は Input image、そしてクリップが 2 枚目の画像で終わる必要がある場合は Closing frame も。Prompt は任意です。reference to video は Reference images、Reference videos、Reference audio(参照入力のうち少なくとも 1 つ)。プロンプトの中で、それぞれが何を制御するか書いてください。
  3. Resolution を 480p、Duration を 5 に設定します。どちらも価格に影響すると表示されており、変更するとページ上の見積もりが更新されます。
  4. 自分でクリップを評価するのでなければ Generate audio はオンのままにしてください。プロンプトが確定したら Prompt expansion はオフにします。2 つの変更を比較したい場合は Seed を設定します。
  5. Run model を押し、Output でクリップを確認し、見た目が良くなったら解像度と長さを上げます。

Form の横にある JSON ビューはリクエストボディを表示し、その隣のコードタブは同じ呼び出しを示します。ここで動いたクリップはそのままコードにコピーできます。

次にコードから実行する

Python SDK をインストールし(pip install spicyapi)、環境変数に SPICY_API_KEY を設定して、次を実行します。上の text-to-video のボディを使っています。残り 2 つのタスクのどちらかに切り替えるには、モデル ID と input を差し替えてください。価格を表示して確認を取り、タスクを作る前に待機します:

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment
MODEL = "alibaba/wan-3.0/text-to-video"
body = {
    "prompt": "A ceramic bottle stands on a brushed-steel counter. One bead of condensation "
              "rolls down the glass while the camera pushes in slowly. Cool side light, no cut. "
              "Sound: a faint fridge hum and the tick of the droplet landing.",
    "duration_seconds": 10,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "generate_audio": True,
}

quote = client.quote_task(model=MODEL, input_data=body)
print("Estimated", quote["estimatedCost"], "maximum", quote["maxCharge"])
if input("Create the task? [y/N] ").strip().lower() != "y":
    raise SystemExit

task = client.create_task(
    model=MODEL,
    input_data=body,
    idempotency_key=str(uuid.uuid4()),
    quote_id=quote["quoteId"],
    expected_cost=quote["estimatedCost"],
)
print("Task", task["taskId"], flush=True)  # save it: after a timeout, look this task up instead of creating another
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise SystemExit(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
assets = output_assets(final)
if not assets or any(
    not asset.get("url") or asset.get("pending") or asset.get("unavailable")
    for asset in assets
):
    raise RuntimeError(f"{task['taskId']} has no complete downloadable output; look up this task before retrying")
print(assets[0]["url"])  # copy the clip to your own storage now

画像、クリップ、音声の入力には、公開 HTTPS リンクかアップロード済みファイルを使ってください(media guide)。この呼び出し以外のことは tasks guide と Python SDK reference にあります。サービスでは webhook も使えます。クリップは約 14 日間保持されるので、必要なものはコピーしてください(保持期間と配信)。

Agent に実行させる

アシスタントにクリップを実行させる場合、3 つの公式ツールはいずれも価格を表示し、有料の呼び出しの前に確認を求めます。

  • CLI. 同じ input オブジェクトを input.json に置いてから、次を実行します:

``bash spicyapi tasks create --model alibaba/wan-3.0/text-to-video --input-file input.json --wait ``

ローカルのスチル画像には spicyapi files upload still.png を使うと image_url 用の spicy:// アドレスが返ります。CLI docs を参照してください。npx @spicyapi/cli はインストールなしでも動きます。

  • MCP サーバー. MCP server をアシスタントに追加して、次のように依頼します: "Make a 10-second 9:16 clip at 720p with Wan 3.0 text-to-video from this prompt."。spicyapi_task_create を呼び、それが価格確認で停止し、続いて spicyapi_task_wait を呼びます。パソコン上のファイルには spicyapi_upload_file を使います。
  • Skill. npx skills add spicyapi-ai/spicy-skill で Agent Skill を入れると、コーディングアシスタントがフィールドを推測せずに実際のモデルスキーマを読むようになります。

結果が間違っているときは、1 つだけ変える

見えるもの原因として考えられるもの次の手順
Create 呼び出しが 400 を返すタスクが列挙していないフィールド、または範囲外の値タスクのスキーマと比較する
参照キャラクターが別の人物に混ざるプロンプトで参照に名前をつけていない"the first image is the character, the second is the room" と明示する
写真で参照タスクが失敗する実在の人物に対する顔チェック生成、イラスト、3D のキャラクターに切り替える
クリップが指定したクロップを無視するaspect_ratio が画像と矛盾している省略してクリップに画像の形状を継承させる
クリップが渡していないシーンにカットするプロンプトがスチル画像とは異なる部屋を説明している渡したフレームを説明し、その後に動きだけを述べる

2 つの結果を比較するときは、フィールドを 1 つだけ変え、seed、プロンプト、長さ、解像度は固定してください。タイムアウト、残高不足、その他の一般的なエラーは error reference にあります。

どの階層から始めるか

標準の Wan 3.0 の 480p から始め、画が良くなったら解像度を上げてください。Prime は 480p では 1 秒あたり 36 パーセント多く、720p と 1080p では 40 パーセント多くて速くなります。1080p から 4K には Pro を使ってください。5 秒、10 秒、15 秒で固定したい場合は Wan 2.6 の text か image 入力を使ってください。

FAQ

顔を保つには、image-to-video と reference-to-video のどちらが良いですか

顔が最初のフレームにあるなら image-to-video です。その画像をそのまま 1 枚目として使います。reference-to-video は、ショットをまたいで同じ顔を保つ必要がある場合向けです。参照は固定するのではなく、方向性を与えるためのものです。

image-to-video は text-to-video より良いですか

一般にどちらが優れているということはありません。1 枚目が特定の承認済みビジュアルでなければならない場合は image-to-video が有利です。言葉からシーンを探っている段階なら text-to-video が有利で、ソースファイルも要りません。

タスク種別は価格を変えますか

いいえ。1 秒あたりの価格は階層と解像度だけで決まります。reference-to-video には、参照クリップの課金対象秒数が加算されます。

要するに、シーンを探すには言葉、1 枚目を固定するにはスチル画像、ショットをまたいで繰り返すものには参照を使いましょう。

他の言語 English · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

実際に試してみる

支払いは実行した分だけ。プランもサブスクリプションもありません。

使用モデル:MiniMax H3 · ByteDance Seedance 2.0 Fast