Hunyuan Video Fast は、Novita AI で POST https://api.novita.ai/v3/async/hunyuan-video-fast から利用できます。これは、Tencent のオープンソース 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 |
完了 — videos[0].video_url で動画 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 を永続的なストレージとして依存しないでください。
特定のプロンプトタイプで一貫した品質の問題 — プロンプトの改良アプローチに切り替えてください。被写体、アクション、カメラアングル、スタイルを明示的に記述します。一般的なアーティファクトに対して negative_prompt エントリを追加します。それでもユースケースに十分な品質が得られない場合は、標準の Hunyuan Video エンドポイントを評価してください。
よくある質問
Hunyuan Video Fast の Novita AI エンドポイントは何ですか?
POST https://api.novita.ai/v3/async/hunyuan-video-fast です。API は非同期です。リクエストを送信して task_id を受け取り、task_status が TASK_STATUS_SUCCEED になるまで GET https://api.novita.ai/v3/async/task-result?task_id=<id> をポーリングします。
Hunyuan Video Fast と標準の Hunyuan Video の違いは何ですか?
高速バリアントは生成速度に最適化されており、タスク送信から動画完了までの時間を短縮します。その代わり、動きの忠実度と細かいプロンプトへの追従性が標準モデルよりも低くなります。高速バリアントはプロンプトの反復、高スループットのバッチジョブ、ステージングに使用し、最終品質の出力には標準モデルを使用してください。
動画の長さを指定できますか?
サポートされている時間パラメータについては、API リファレンス を確認してください。一部の Novita 動画 API は明示的な duration フィールドを公開していますが、他の API はモデルのデフォルトを使用します。デフォルトのクリップ長を想定する前に確認してください。
特定の動画出力を再現するにはどうすればよいですか?
seed に固定整数を設定します。同じ seed、prompt、width、height の組み合わせで、実行間で一貫した出力が生成されるはずです。
Hunyuan Video Fast は画像から動画への変換をサポートしていますか?
Novita AI の Hunyuan Video Fast はテキストから動画へのモデルです。Novita で画像から動画を生成するには、Novita モデルページ で Kling、Vidu、Wan などの利用可能な I2V モデルを確認してください。
Novita AI での Hunyuan Video Fast の料金はいくらですか?
現在の料金は novita.ai/models で確認してください。動画モデルのクリップあたりの料金は変更される可能性があります。本番環境のコスト見積もりを立てる前に、必ず料金ページを確認してください。
Hunyuan Video Fast は本番環境の動画パイプラインに適していますか?
はい、適切に処理すれば可能です。非同期タスク送信を中心にパイプラインを設計し、ステータス追跡のために task_id を保存し、完了後すぐに(video_url_ttl が切れる前に)動画をダウンロードし、TASK_STATUS_FAILED をリトライまたはフォールバック戦略で処理してください。
