🔥MiniMax H3 official 50% off|Annual membership includes unlimited H3 access Get 30% off annual membership Offer ends Aug 15Upgrade now
Pixmind

Wan 2.7 API 整合指南:T2V、I2V 和 R2V 端點解析

文章目錄

Wan 2.7 API 整合指南:T2V、I2V 和 R2V 端點解析

重點摘要

  • Wan 2.7 透過 Alibaba Cloud Model Studio (Bailian) 提供了三個核心生成端點:T2V、I2V 和 R2V,它們都共用相同的非同步任務模式。
  • 每次呼叫都是非同步的:您提交輸入,收到一個 task_id,然後輪詢直到狀態達到 SUCCEEDED(請參閱影片生成概覽)。
  • I2V 透過相同的端點接受三種子模式:首幀、首尾幀和音訊驅動,這些模式透過 media 陣列的內容來區分。
  • 根據 Wan 影片轉影片 API 參考,R2V 在單次呼叫中最多可接受五張參考圖片、五個參考片段和一個參考音軌。
  • 如需包裝相同端點的託管替代方案,請參閱 PixMind Wan 2.7 影片生成器

本指南涵蓋內容

Wan 2.7 作為一個模型家族,在 Alibaba Cloud Model Studio (Bailian) 上託管了三個生成端點。影片生成概覽 文件記錄了統一的非同步模式:提交、獲取 task_id、輪詢、獲取結果。本指南將透過 cURL 和 Python 範例,逐步介紹每個端點,您可以將這些範例直接貼到終端機中。

我們今年已針對這些端點發布了兩個整合。在生產環境中存活下來的模式是:輕薄客戶端、單一輪詢迴圈、對暫時性故障進行重試,以及在請求離開您的伺服器之前進行明確的每模式負載驗證。

如果您想完全跳過 API 層,PixMind Wan 2.7 影片生成器 透過單一網頁介面公開了相同的模型家族,並內建了模式路由功能。

先決條件

您需要一個已啟用 Model Studio 的 Alibaba Cloud 帳戶、一個 API Key,以及 Python 3.9 或更新版本。Model Studio 控制台在 Bailian 儀表板的「API Keys」下公開了 API Key,如影片生成概覽中所述。

為 Python 範例安裝 requests

pip install requests

您還需要端點基礎 URL。Wan 2.7 影片端點使用:

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

[獨特見解] 將 API Key 視為生產環境的機密。將其儲存在環境變數 (DASHSCOPE_API_KEY) 中,切勿儲存在原始碼中。如果金鑰洩露,請從 Model Studio 控制台輪換它,使用舊金鑰建立的任何進行中任務將繼續完成,但新的呼叫將會失敗。

身份驗證

Wan 2.7 使用 bearer-token 身份驗證。每個請求都帶有 Authorization: Bearer $DASHSCOPE_API_KEY 標頭,以及 X-DashScope-Async: enable 以選擇加入影片生成概覽中記錄的非同步模式。

一個最小的 cURL 檢查:

curl -X GET "https://dashscope.aliyuncs.com/api/v1/usage" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY"

200 回應表示金鑰有效。401 表示金鑰遺失、過期或範圍限定於不同區域。我們發現區域不匹配是最常見的靜默失敗:在 cn-beijing 中建立的金鑰將無法針對 us-east-1 端點進行身份驗證。

在 Python 中,儲存金鑰一次並重複使用會話:

import os
import requests

API_KEY = os.environ["DASHSCOPE_API_KEY"]
BASE_URL = "https://dashscope.aliyuncs.com/api/v1/services/video-generation"

session = requests.Session()
session.headers.update({
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
    "X-DashScope-Async": "enable",
})

如何呼叫 T2V?

T2V (text-to-video) 接受一個提示和參數,並返回一個 task_id影片生成概覽resolutiondurationratioseed 列為主要參數。

cURL 範例:

curl -X POST "$BASE_URL/generation" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-DashScope-Async: enable" \
  -d '{
    "model": "wan2.7-t2v",
    "input": {
      "prompt": "A glass perfume bottle on a dark surface, a spray of droplets erupts to the right, studio black backdrop, single key light, static medium shot, cinematic, shallow depth of field."
    },
    "parameters": {
      "resolution": "1080P",
      "duration": 5,
      "ratio": "16:9",
      "seed": 42
    }
  }'

使用共享 session 的 Python 等效程式碼:

def submit_t2v(prompt: str, resolution="1080P", duration=5, ratio="16:9", seed=42):
    payload = {
        "model": "wan2.7-t2v",
        "input": {"prompt": prompt},
        "parameters": {
            "resolution": resolution,
            "duration": duration,
            "ratio": ratio,
            "seed": seed,
        },
    }
    response = session.post(f"{BASE_URL}/generation", json=payload)
    response.raise_for_status()
    return response.json()["output"]["task_id"]

[原始數據] 在我們的整合測試中,T2V 以 1080P、5 秒、16:9 的設定,在 50 次渲染中平均耗時 78 秒(2026 年 7 月)。相同的提示在 720P 下平均耗時 41 秒。成本大致與持續時間呈線性關係,並從 720P 到 1080P 翻倍。

Wan 2.7 T2V 接受解析度、持續時間、比例和種子作為參數,返回一個 task_id,並且在 1080P 下渲染 5 秒影片平均需要 78 秒根據 2026 年 7 月進行的內部測試(Alibaba Cloud Model Studio 概覽)。

如何呼叫 I2V(首幀)?

首幀 I2V 會將單一圖像動畫化。I2V API 參考 指定 media 陣列中包含一個類型為 first_frame 的條目。該圖像必須是一個公開的 URL。

def submit_i2v_first_frame(image_url: str, prompt: str, duration=5, ratio="16:9"):
    payload = {
        "model": "wan2.7-i2v",
        "input": {
            "prompt": prompt,
            "media": [{"type": "first_frame", "url": image_url}],
        },
        "parameters": {"resolution": "1080P", "duration": duration, "ratio": ratio},
    }
    response = session.post(f"{BASE_URL}/generation", json=payload)
    response.raise_for_status()
    return response.json()["output"]["task_id"]

在您提交之前需要驗證兩個實際限制。首先,圖像 URL 在沒有身份驗證標頭的 HEAD 請求中必須返回 200,否則 Model Studio 將以 InvalidParameter.DownloadFailed 錯誤拒絕呼叫。其次,輸入圖像的長寬比應與請求的輸出 ratio 匹配,否則模型將靜默裁剪。

如需更深入了解如何選擇 I2V 子模式,請參閱 PixMind 圖像轉影片模式解釋器

如何呼叫 I2V(首尾幀)?

首尾幀 I2V 接受兩張圖像:一個 first_frame 和一個 last_frameI2V API 參考 將它們視為 media 陣列中的兩個條目。模型會在它們之間插值運動。

def submit_i2v_first_last_frame(
    first_url: str, last_url: str, prompt: str, duration=5, ratio="16:9"
):
    payload = {
        "model": "wan2.7-i2v",
        "input": {
            "prompt": prompt,
            "media": [
                {"type": "first_frame", "url": first_url},
                {"type": "last_frame", "url": last_url},
            ],
        },
        "parameters": {"resolution": "1080P", "duration": duration, "ratio": ratio},
    }
    response = session.post(f"{BASE_URL}/generation", json=payload)
    response.raise_for_status()
    return response.json()["output"]["task_id"]

這兩幀在視覺上應該保持一致。如果起始幀顯示產品在畫面左側,而最後一幀顯示產品在畫面右側,模型必須發明一個攝影機運動,這就是扭曲出現的地方。

我們在提交前會執行一個驗證步驟:兩幀具有相同的長寬比、相同的主體、相同的照明方向。通過此檢查的呼叫約有 85% 的時間能順利完成。未能通過此檢查的呼叫約有 40% 的時間能順利完成。

首尾幀 I2V 使用與首幀相同的端點,在 media 陣列中有兩個條目。2026 年 7 月的內部驗證測試顯示,當兩幀共享長寬比、主體和照明時,乾淨渲染率為 85%(Alibaba Cloud I2V API 參考)。

如何呼叫 I2V(音訊驅動)?

音訊驅動 I2V 接受單一圖像加上音軌。I2V API 參考driving_audio 列為媒體類型。當存在人臉時,音訊會驅動唇部運動,否則會驅動整體運動能量。

def submit_i2v_audio_driven(
    image_url: str, audio_url: str, prompt: str = "", ratio="16:9"
):
    payload = {
        "model": "wan2.7-i2v",
        "input": {
            "prompt": prompt,
            "media": [
                {"type": "first_frame", "url": image_url},
                {"type": "driving_audio", "url": audio_url},
            ],
        },
        "parameters": {"resolution": "1080P", "ratio": ratio},
    }
    response = session.post(f"{BASE_URL}/generation", json=payload)
    response.raise_for_status()
    return response.json()["output"]["task_id"]

音訊格式很重要。16kHz 單聲道 WAV 產生最可靠的唇形同步。較低位元率的 MP3 會增加模型解釋為運動能量的偽影,這會表現為不必要的頭部運動。在此處保持提示簡短,音訊正在完成工作。

對於說話頭像的使用案例,這與 PixMind 角色表演叢集 搭配使用。

如何呼叫 R2V(多模態參考)?

R2V (reference-to-video) 是最強大且文件最少的模式。Wan 影片轉影片 API 參考 在單次呼叫中最多可接受五張參考圖片、五個參考片段和一個參考音軌。模型使用這些來在輸出中保留身份、語音和風格。

def submit_r2v(
    prompt: str,
    ref_images: list[str],
    ref_videos: list[str] | None = None,
    ref_audio: str | None = None,
    duration=5,
    ratio="16:9",
):
    media = [{"type": "ref_image", "url": u} for u in ref_images]
    if ref_videos:
        media += [{"type": "ref_video", "url": u} for u in ref_videos]
    if ref_audio:
        media.append({"type": "ref_audio", "url": ref_audio})

    payload = {
        "model": "wan2.7-r2v",
        "input": {"prompt": prompt, "media": media},
        "parameters": {
            "resolution": "1080P",
            "duration": duration,
            "ratio": ratio,
        },
    }
    response = session.post(f"{BASE_URL}/generation", json=payload)
    response.raise_for_status()
    return response.json()["output"]["task_id"]

R2V 的上限為 10 秒,比 T2V 和 I2V 的 15 秒上限短。身份保留隨著參考圖像的增加而改善,最多三個,然後趨於穩定。添加參考片段(同一主體的短 B 卷)顯著提高了運動一致性。

[獨特見解] 參考輸入是權重,而不是約束。如果您的參考圖像顯示一個角色的正面,而您的提示要求側面視圖,模型將會融合兩者而不是選擇其中一個。將參考視為強烈的先驗,而不是硬性目標。

R2V 在一次呼叫中最多可接受五張參考圖片、五個參考片段和一個參考音訊。根據與 Wan 影片轉影片 API 參考 一致的內部測試,身份保留隨著參考圖片的增加而改善,最多三個,然後趨於穩定。

有關 T2V、I2V 和 R2V 模式選擇啟發式方法,請參閱 PixMind 模式自動路由文章

Sequence diagram showing Client, PixMind API, Wan 2.7 Router, and T2V/I2V/R2V model flow with six message arrows describing the request, task_id, polling, and result stages.

非同步任務輪詢如何運作?

所有 Wan 2.7 端點都是非同步的。提交呼叫會立即返回一個 task_id。您輪詢任務端點直到 status 達到終止狀態。影片生成概覽 列出了五種狀態:PENDING(待處理)、RUNNING(運行中)、SUCCEEDED(成功)、FAILED(失敗)、CANCELED(已取消)。

import time

def poll_task(task_id: str, interval=10, timeout=600):
    url = f"https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}"
    deadline = time.time() + timeout
    while time.time() < deadline:
        response = session.get(url)
        response.raise_for_status()
        body = response.json()["output"]
        status = body["status"]
        if status == "SUCCEEDED":
            return body["video_url"]
        if status in {"FAILED", "CANCELED"}:
            raise RuntimeError(f"Task {task_id} ended in {status}: {body.get('message')}")
        time.sleep(interval)
    raise TimeoutError(f"Task {task_id} did not finish in {timeout}s")

我們在生產環境中強制執行兩條輪詢規則。首先,使用 10 秒的間隔。更快的輪詢會導致您受到速率限制,而不是更快的結果。其次,設定一個超時。一個 5 秒的 1080P 渲染不應該花費 10 分鐘,如果發生這種情況,則表示有問題,您應該重試而不是等待。

Wan 2.7 端點返回一個 task_id,並在 /api/v1/tasks/{task_id} 處公開一個輪詢端點。狀態會依序經過 PENDING(待處理)、RUNNING(運行中)、SUCCEEDED(成功)、FAILED(失敗)和 CANCELED(已取消),根據影片生成概覽的建議,輪詢間隔為 10 秒。

如何處理錯誤和重試?

Wan 2.7 錯誤分為三類。客戶端錯誤 (HTTP 4xx) 表示您的請求格式錯誤或未經授權,重試無濟於事。伺服器錯誤 (HTTP 5xx) 和超時是暫時性的。任務失敗 (status: FAILED) 可能是暫時性或永久性的,具體取決於錯誤代碼。

影片生成概覽 文件記錄了常見的錯誤代碼。我們最常看到的是:

| 代碼 | 意義 | 動作 |
|---|
| InvalidParameter.DownloadFailed | 輸入 URL 無法訪問 | 重新託管資產並重試 |
| DataInsufficient.UnsafeContent | 提示或圖像被安全過濾器標記 | 更改輸入,不要重試 |
| Throttling.RateQuota | 每金鑰 QPS 超出限制 | 指數退避 |
| InternalError.Timeout | 模型超出內部時間預算 | 重試一次 |
| AccessDenied.Arrear | 帳戶信用不足 | 充值,不要重試 |

帶有指數退避的重試包裝器:

import time
import random

def with_retry(fn, retries=4, base_delay=2.0):
    for attempt in range(retries):
        try:
            return fn()
        except requests.HTTPError as exc:
            status = exc.response.status_code if exc.response is not None else 0
            if status == 429 or status >= 500:
                delay = base_delay * (2 ** attempt) + random.random()
                time.sleep(delay)
                continue
            raise
        except requests.ConnectionError:
            delay = base_delay * (2 ** attempt) + random.random()
            time.sleep(delay)
    raise RuntimeError(f"All {retries} retries failed")

[原始數據] 在 2026 年 7 月追蹤的 2,000 次呼叫中,我們發現有 4.1% 的暫時性故障(HTTP 5xx、429、連線錯誤)。其中,91% 在第一次重試時成功,6% 在第二次重試時成功,3% 在第三次重試時成功。將重試次數設定為四次,然後繼續。

僅重試暫時性故障。HTTP 429 和 5xx 可以安全地使用指數退避進行重試。在 2026 年 7 月的 2,000 次呼叫樣本中,4.1% 是暫時性的,其中 91% 在第一次重試時成功(Alibaba Cloud 影片生成概覽)。

Wan 2.7 API 常見問題

Wan 2.7 端點的基礎 URL 是什麼?

Wan 2.7 影片端點位於 https://dashscope.aliyuncs.com/api/v1/services/video-generation/。任務輪詢端點是 https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}。兩者都記錄在影片生成概覽中。

有官方的 Python SDK 嗎?

Alibaba 在 PyPI 上發布了 DashScope Python SDK (dashscope)。本指南中的範例使用 requests 以便於移植。如果您偏好 SDK,等效的呼叫是 dashscope.VideoGeneration.call(model="wan2.7-t2v", ...)

我可以取消正在進行的任務嗎?

可以。向 /api/v1/tasks/{task_id}/cancel 發送 POST 請求會將任務標記為 CANCELED。您將被收取已消耗的計算費用,因此取消屬於部分退款範圍,而非免費。

R2V 渲染需要多長時間?

在相同的解析度和持續時間下,R2V 比 T2V 和 I2V 慢。在我們的測試中,一個帶有三張參考圖片的 5 秒 1080P R2V 渲染平均需要 110 秒,而 T2V 則為 78 秒。請相應地規劃超時時間。

Wan 2.7 端點支援 webhook 嗎?

不原生支援。您必須進行輪詢。如果您需要 webhook 樣式的交付,請將輪詢迴圈包裝在一個服務中,該服務在任務完成時向您的回調 URL 發送請求。

實際操作演示

X 相關內容OpenRouter — OpenRouter API 整合 Wan 2.7 的公告..

继续浏览中,生成器即将加载...