Hunyuan Video Fast API 快速入門

Hunyuan Video Fast API 快速入門

Hunyuan Video Fast 在 Novita AI 上透過 POST https://api.novita.ai/v3/async/hunyuan-video-fast 提供。它是騰訊開源 Hunyuan Video 基礎模型的加速優化版本——與標準版相比,它能縮短生成時間,代價是部分動態保真度,適用於高吞吐量管線、提示詞迭代以及更看重週轉速度而非頂級電影級品質的階段性工作流程。

與所有 Novita 非同步影片 API 一樣,它在提交時會回傳一個 task_id,並在任務完成後提供影片 URL。本指南涵蓋端點、請求格式、可用的 Python 與 cURL 範例,以及快速版本與標準模型的適用時機。

何時使用 Hunyuan Video Fast 與標準版

當生成週轉時間和請求量比最高視覺品質更重要時,快速版本是正確的選擇。標準 Hunyuan Video 每次生成能產生更高保真度的動態和更好的提示詞遵循度。快速版本則大幅縮短了這個時間——適用於:

  • 提示詞迭代——在投入全品質渲染之前,以低成本測試多種變化
  • 高吞吐量管線——批次內容生成,其中每個片段的延遲直接影響吞吐量
  • 階段性與內部審查——快速取得可分享的輸出,然後在最終交付時切換至標準版
  • 低延遲應用——具有嚴格回應時間預算的生產工作流程

如果輸出品質是主要限制條件——廣播、最終交付或寫實動態——請改用標準的 Hunyuan Video 端點。

步驟 1:取得您的 Novita AI API 金鑰

novita.ai 註冊,並從金鑰管理頁面產生一組 API 金鑰。新帳戶可獲得免費額度。將金鑰儲存為環境變數——切勿在原始碼檔案中硬編碼。

export NOVITA_API_KEY="your_api_key_here"

步驟 2:端點與模型 ID

欄位
提交端點 POST https://api.novita.ai/v3/async/hunyuan-video-fast
結果取得 GET https://api.novita.ai/v3/async/task-result?task_id=<id>
驗證標頭 Authorization: Bearer $NOVITA_API_KEY
Content-Type application/json

官方 API 參考文件:novita.ai/docs/api-reference/model-apis-hunyuan-video-fast

步驟 3:發送您的第一個請求

提交一個包含提示詞與輸出設定的生成請求:

curl -s -X POST https://api.novita.ai/v3/async/hunyuan-video-fast \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox running through a snowy forest at dawn, slow motion, cinematic wide shot",
    "negative_prompt": "blurry, low quality, distorted, watermark",
    "width": 1280,
    "height": 720,
    "seed": -1
  }'

API 會立即回傳一個 task_id

{
  "task_id": "hunyuan-fast-abc123"
}

影片不在這個回應中——請儲存 task_id 並在下一步中使用。

步驟 4:輪詢影片結果

curl -s "https://api.novita.ai/v3/async/task-result?task_id=hunyuan-fast-abc123" \
  -H "Authorization: Bearer $NOVITA_API_KEY"

持續輪詢直到 task_status 變為 TASK_STATUS_SUCCEED

{
  "task_status": "TASK_STATUS_SUCCEED",
  "videos": [
    {
      "video_url": "https://cdn.novitai.com/output/...",
      "video_url_ttl": 3600,
      "video_type": "mp4"
    }
  ]
}

請盡快下載或儲存 video_url——它會在 video_url_ttl 秒後過期。

任務狀態值

狀態 意義
TASK_STATUS_QUEUED 請求已接受,等待執行
TASK_STATUS_PROCESSING 生成進行中
TASK_STATUS_SUCCEED 完成——影片 URL 可在 videos[0].video_url 取得
TASK_STATUS_FAILED 生成失敗——請檢查回應中的失敗原因

Python 範例

import os
import time
import requests

API_KEY = os.environ["NOVITA_API_KEY"]
BASE_URL = "https://api.novita.ai"
HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}


def submit_video(
    prompt: str,
    negative_prompt: str = "",
    width: int = 1280,
    height: int = 720,
    seed: int = -1,
) -> str:
    payload = {
        "prompt": prompt,
        "negative_prompt": negative_prompt,
        "width": width,
        "height": height,
        "seed": seed,
    }
    resp = requests.post(
        f"{BASE_URL}/v3/async/hunyuan-video-fast",
        headers=HEADERS,
        json=payload,
    )
    resp.raise_for_status()
    return resp.json()["task_id"]


def poll_result(task_id: str, interval: int = 5, timeout: int = 300) -> dict:
    deadline = time.time() + timeout
    while time.time() < deadline:
        resp = requests.get(
            f"{BASE_URL}/v3/async/task-result",
            headers=HEADERS,
            params={"task_id": task_id},
        )
        resp.raise_for_status()
        data = resp.json()
        status = data.get("task_status", "")
        if status == "TASK_STATUS_SUCCEED":
            return data
        if status == "TASK_STATUS_FAILED":
            raise RuntimeError(f"Task failed: {data}")
        time.sleep(interval)
    raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")


if __name__ == "__main__":
    task_id = submit_video(
        prompt="A red fox running through a snowy forest at dawn, slow motion, cinematic wide shot",
        negative_prompt="blurry, low quality, distorted, watermark",
        width=1280,
        height=720,
    )
    print(f"Task submitted: {task_id}")

    result = poll_result(task_id)
    for video in result.get("videos", []):
        print(f"Video URL (expires in {video['video_url_ttl']}s): {video['video_url']}")

cURL 範例

# Step 1: Submit the generation request
TASK_ID=$(curl -s -X POST https://api.novita.ai/v3/async/hunyuan-video-fast \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A timelapse of a city skyline transitioning from dusk to night, cinematic",
    "negative_prompt": "blurry, low quality, distorted",
    "width": 1280,
    "height": 720,
    "seed": 42
  }' | jq -r '.task_id')

echo "Task ID: $TASK_ID"

# Step 2: Poll until complete
while true; do
  RESULT=$(curl -s "https://api.novita.ai/v3/async/task-result?task_id=$TASK_ID" \
    -H "Authorization: Bearer $NOVITA_API_KEY")
  STATUS=$(echo "$RESULT" | jq -r '.task_status')
  if [ "$STATUS" = "TASK_STATUS_SUCCEED" ]; then
    echo "$RESULT" | jq -r '.videos[0].video_url'
    break
  elif [ "$STATUS" = "TASK_STATUS_FAILED" ]; then
    echo "Failed: $RESULT"
    break
  fi
  echo "Status: $STATUS — waiting..."
  sleep 5
done

關鍵參數

參數 類型 必填 說明
prompt string 影片場景、主體、動態與風格的文字描述
negative_prompt string 要在輸出中避免的元素(例如 “blurry, low quality”)
width integer 輸出寬度(像素)——請查閱 API 文件 了解支援的值
height integer 輸出高度(像素)——與 width 搭配設定解析度
seed integer 設定固定整數以重現相同輸出;-1 為隨機

完整的參數清單(包括時長選項、最高解析度限制以及任何模型專屬欄位)請參閱 Hunyuan Video Fast API 參考文件

定價與限制

請至 Novita AI 模型頁面 查看最新的每部影片定價。影片生成定價通常按每個產出的片段計算,並依解析度和時長而異。在為生產工作負載建立成本模型之前,請先查看定價頁面。

在部署前,請確認官方文件中的以下限制:

  • 提示詞最大字元長度
  • 支援的解析度值(寬度 × 高度組合)
  • 最大影片時長(秒)
  • 每個 API 金鑰的速率限制與並行任務上限

快速版本通常每個片段的成本低於標準模型,因為運算時間較短——請在 Novita 定價頁面上確認當前的差異。

疑難排解

401 Unauthorized —— API 金鑰遺失、無效或已過期。請確認已設定 NOVITA_API_KEY 且該金鑰在您的 Novita AI 控制台 中處於啟用狀態。

422 Unprocessable Entity —— 缺少必要參數或某個值超出範圍。請確認 prompt 非空,且 width/height 值屬於 API 文件中支援的集合。

任務停留在 TASK_STATUS_PROCESSING —— 生成仍在進行中。快速版本比標準版完成得更快,但較高的解析度和較長的時長仍需要更多時間。請針對大型輸出增加您的輪詢超時時間。

video_url 回傳 403 或 404 —— URL 已過期(video_url_ttl 已屆滿)。在生產環境中,請在 TASK_STATUS_SUCCEED 後立即下載或傳輸影片——不要依賴託管 URL 作為永久儲存。

特定提示詞類型出現持續性的品質問題 —— 請改用 prompt 精煉方法:明確描述主體、動作、鏡頭角度和風格。針對常見的偽影加入 negative_prompt 條目。如果品質仍不足以滿足使用案例,請評估標準 Hunyuan Video 端點。

常見問題

Novita AI 上 Hunyuan Video Fast 的端點是什麼?

POST https://api.novita.ai/v3/async/hunyuan-video-fast。該 API 是非同步的:提交請求,收到 task_id,然後輪詢 GET https://api.novita.ai/v3/async/task-result?task_id=<id> 直到 task_statusTASK_STATUS_SUCCEED

Hunyuan Video Fast 與標準 Hunyuan Video 有何不同?

快速版本針對生成速度進行了最佳化——它縮短了從任務提交到完成影片的時間。代價是動態保真度和細粒度提示詞遵循度低於標準模型。快速版本適用於提示詞迭代、高吞吐量批次作業或階段性工作;標準版本則適用於最終品質輸出。

我可以設定特定的影片時長嗎?

請查閱 API 參考文件 了解支援的時長參數。部分 Novita 影片 API 會提供明確的 duration 欄位;其他則使用模型預設值。在假設預設片段長度之前請先確認。

如何重現特定的影片輸出?

seed 設定為一個固定整數。相同的 seedpromptwidthheight 組合應能在不同執行中產生一致的輸出。

Hunyuan Video Fast 支援圖生影片嗎?

Novita AI 上的 Hunyuan Video Fast 是一個文字生影片模型。如需在 Novita 上進行圖生影片生成,請查閱 Novita 模型頁面 上可用的 I2V 模型,例如 Kling、Vidu 或 Wan。

在 Novita AI 上使用 Hunyuan Video Fast 的費用是多少?

請至 novita.ai/models 查看最新定價。影片模型的每片段定價可能會變動;在建立生產成本估算之前,請務必查看定價頁面。

Hunyuan Video Fast 適用於生產影片管線嗎?

可以,但需妥善處理。請圍繞非同步任務提交設計您的管線,儲存 task_id 以追蹤狀態,在完成後立即下載影片(在 video_url_ttl 過期之前),並針對 TASK_STATUS_FAILED 制定重試或備援策略。

推薦文章