Omni ReferenceAlibaba

Wan 3.0 オムニリファレンス

alibaba/wan-3.0/video

画像・動画・音声・ドキュメント・Webページなど、マルチモーダルな参照入力から最長30秒・音声付きの動画を生成します。参照素材のキャラクター、小道具、空間関係をピクセルレベルで再現し、先頭/末尾フレーム指定による厳密な制御にも対応します。

サンプル

Wan 3.0 オムニリファレンス example 1

パラメータ

名前既定制約説明
promptプロンプトtextarea≤ 5000 chars最大5000文字。プロンプトまたは参照素材のいずれかが必須です。
images参照画像image_upload_groupimage/jpeg,image/png,image/bmp,image/webp · 0–10 items最大10枚、1枚あたり20MB以下、各辺240〜8000px、アスペクト比8:1以内。PNGの透過は非対応。先頭/末尾フレームとは併用不可。
audios参照音声audio_upload_groupaudio/wav,audio/mpeg · 0–5 items最大5本、1本あたり1〜15秒、合計15秒以内、1本15MB未満。WAV・MP3対応。先頭/末尾フレームとは併用不可。
first_frame先頭フレームimage_uploadimage/jpeg,image/png,image/bmp,image/webp動画の最初のフレームを厳密に指定します。参照画像・動画・音声とは併用不可。
last_frame末尾フレームimage_uploadimage/jpeg,image/png,image/bmp,image/webp動画の最後のフレームを厳密に指定します。参照画像・動画・音声とは併用不可。
resolution解像度select1080P480P | 720P | 1080P
aspect_ratioアスペクト比selectadaptiveadaptive | 16:9 | 4:3 | 1:1 | 3:4 | 9:16自動の場合、プロンプトと入力メディアから最適な比率を選択します。
duration生成時間(秒)number5-1 ~ 30 · step 12〜30秒。-1を指定するとモデルが自動で長さを決定します。動画入力がある場合、入力と出力の合計は30秒以内。自動長さは30秒として事前課金されます。
generate_audio音声を生成booleantrueオフにすると出力動画に音声が含まれません。価格は変わりません。
enable_thinking深い思考モードbooleanfalseドキュメント・Webページ・複雑な画像の解析に必要です。ドキュメントやリンクを入力しない場合は非推奨。
file参照ドキュメントfile_upload.docx,.doc,.xlsx,.xls,.pptx,.ppt,.pdf,.txt,.key,.pages,.numbers,.md最大1件、100MB以下、50ページ以内。深い思考モードが必要で、Webリンクとは併用不可。
link参照Webページtextログイン不要の公開ページのみ。深い思考モードが必要で、参照ドキュメントとは併用不可。
seedシード値number0 ~ 2147483647 · step 1

API

統一 REST API でこのモデルを呼び出せます。API Keys ページでキーを取得してください。

cURL
# 1) Submit — returns { "task_uuid": "..." }
curl -X POST "https://www.namifusion.com/api/v1/marketplace/run/alibaba/wan-3.0/video" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "resolution": "1080P",
    "aspect_ratio": "adaptive",
    "duration": 5,
    "generate_audio": true,
    "enable_thinking": false
  }
}'

# 2) Poll until status is "completed", then read the output URLs
curl "https://www.namifusion.com/api/v1/marketplace/run/tasks/TASK_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time, requests

API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1) Submit
resp = requests.post(
    "https://www.namifusion.com/api/v1/marketplace/run/alibaba/wan-3.0/video",
    headers=HEADERS,
    json={
        "input": {
            "resolution": "1080P",
            "aspect_ratio": "adaptive",
            "duration": 5,
            "generate_audio": True,
            "enable_thinking": False
        }
    },
)
resp.raise_for_status()  # 401/402/429/5xx stop here instead of polling a bad task
task = resp.json()

# 2) Poll until a terminal state (completed / failed / cancelled).
#    This model is allowed up to 300s server-side.
deadline = time.time() + 360
while task.get("status") not in ("completed", "failed", "cancelled"):
    if time.time() > deadline:
        raise TimeoutError(f"still {task.get('status')} — keep the task_uuid and poll later")
    time.sleep(3)
    poll = requests.get(f"https://www.namifusion.com/api/v1/marketplace/run/tasks/{task['task_uuid']}", headers=HEADERS)
    poll.raise_for_status()
    task = poll.json()

print(task["status"], task.get("output"))
JavaScript
const API_KEY = "YOUR_API_KEY";
const HEADERS = { Authorization: `Bearer ${API_KEY}` };

// 1) Submit
const resp = await fetch("https://www.namifusion.com/api/v1/marketplace/run/alibaba/wan-3.0/video", {
  method: "POST",
  headers: { ...HEADERS, "Content-Type": "application/json" },
  body: JSON.stringify({
    "input": {
      "resolution": "1080P",
      "aspect_ratio": "adaptive",
      "duration": 5,
      "generate_audio": true,
      "enable_thinking": false
    }
  }),
});
if (!resp.ok) throw new Error(`submit failed: ${resp.status} ${await resp.text()}`);
let task = await resp.json();

// 2) Poll until a terminal state (completed / failed / cancelled).
//    This model is allowed up to 300s server-side.
const deadline = Date.now() + 360 * 1000;
while (!["completed", "failed", "cancelled"].includes(task.status)) {
  if (Date.now() > deadline) throw new Error(`still ${task.status} — keep the task_uuid and poll later`);
  await new Promise((r) => setTimeout(r, 3000));
  const poll = await fetch(`https://www.namifusion.com/api/v1/marketplace/run/tasks/${task.task_uuid}`, { headers: HEADERS });
  if (!poll.ok) throw new Error(`poll failed: ${poll.status}`);
  task = await poll.json();
}

console.log(task.status, task.output);

ドキュメント

Wan 3.0 オムニリファレンス

画像・動画・音声・ドキュメント・Web ページを、1 本の動画に

Alibaba Wan 3.0 Omni Reference は 5 種類の参照入力を同時に受け取り、最長 30 秒・音声トラック付きの動画を 1 回の生成で出力します。参照素材のキャラクター、小道具、空間関係をピクセルレベルで再現し、先頭/末尾フレーム指定による厳密な制御に対応。尺をモデルに委ねることもできます。すぐに使える REST 推論 API、コールドスタートなし。

🚀 主な機能

  • 5 種類の参照入力:参照画像は最大 10 枚、参照動画は最大 5 本、参照音声は最大 5 本。加えてドキュメント 1 件または Web リンク 1 件を自由に組み合わせできます。
  • ピクセルレベルの同一性保持:キャラクター、小道具、衣装、空間関係を新しいカットでも一貫して維持します。追加学習は不要です。
  • ネイティブ音声:既定で音声付きの動画を出力するため、別途アフレコ工程が不要です。
  • 先頭/末尾フレーム制御:開始フレーム、終了フレーム、またはその両方を指定できます。
  • モデル任せの尺:尺をモデルに委ね、内容に応じた長さ(最長 30 秒)で生成します。
  • 深い思考モード:参照ドキュメント、Web ページ、複雑な画像を解析したうえで生成します。

🛠️ 技術仕様

項目内容
モデルアーキテクチャAlibaba Wan 3.0
参照画像最大 10 枚
参照動画最大 5 本(尺は課金対象)
参照音声最大 5 本
参照ドキュメント / Web ページドキュメントは 100MB 以下・50 ページ以内、または公開 URL 1 件。併用不可、深い思考モードが必要
出力形式動画(MP4、既定で音声付き)
解像度480P / 720P / 1080P(既定 1080P)
アスペクト比adaptive / 16:9 / 4:3 / 1:1 / 3:4 / 9:16
2〜30 秒(既定 5 秒)、または -1 でモデルに委任。動画入力がある場合、入力と出力の合計は 30 秒以内
タイムアウト300 秒

💰 料金

解像度課金式
480P20 クレジット × total_duration
720P40 クレジット × total_duration
1080P80 クレジット × total_duration

total_duration = 生成される動画の尺 + 参照動画の課金対象尺(複数ある場合は合計)。

モデル任せの尺の課金方法duration-1 を指定すると尺はモデルが決定するためリクエスト時点では確定せず、上限の 30 秒で課金されます。例えば 1080P・モデル任せの尺・参照動画なしの場合、1 回あたり 2400 クレジットです。おおよその尺が決まっている場合は、秒数を明示するほうが安くなります。

💡 主な用途

  • キャラクターが一貫したシリーズ:同じ参照セットを複数カットで使い回し、人物と衣装を揃えます。
  • 商品撮影から動画へ:商品写真と実写映像を参照に、同じ質感のショート動画を生成します。
  • ドキュメント / LP から動画へ:深い思考モードで仕様書やランディングページを解説動画に変換します。
  • 音声付き SNS 動画:ネイティブ音声出力により、後工程のアフレコが不要になります。
  • 先頭/末尾フレームのトランジション:開始と終了の画を固定し、正確なカットつなぎを実現します。

🔗 関連モデル

  • alibaba/wan-2.6/reference-to-video:参照映像のカメラワークとテンポを再現します。
  • alibaba/wan-2.6/image-to-video:1 枚の画像から動画へ。より低コストです。
  • alibaba/wan-2.6/text-to-video:テキストのみから動画を生成します。