混元视频快速版(Hunyuan Video Fast)在 Novita AI 上可通过 POST https://api.novita.ai/v3/async/hunyuan-video-fast 使用。它是腾讯开源混元视频基础模型的加速变体——相比标准版,它缩短了生成时间,但代价是部分运动逼真度,因此适用于高吞吐量管道、提示词迭代和需要快速周转而非顶级电影质量的阶段工作流。
与所有 Novita 异步视频 API 一样,它在提交时返回一个 task_id,并在任务完成后提供视频 URL。本指南涵盖端点、请求格式、可用的 Python 和 cURL 示例,以及快速版与标准模型的适用场景。
何时使用混元视频快速版 vs 标准版
当生成周转速度和请求量比峰值视觉质量更重要时,快速版是合适的选择。标准混元视频每次生成能够提供更高保真度的运动和更好的提示词遵循度。快速版显著缩短了生成时间——适用于以下场景:
- 提示词迭代——在投入全质量渲染之前,低成本测试多种变体
- 高吞吐量管道——批量内容生成,每段视频的延迟直接影响吞吐量
- 阶段与内部审查——快速获得可分享的输出,然后切换到标准版进行最终交付
- 低延迟应用——对响应时间预算有严格限制的生产工作流
如果输出质量是首要约束(广播、最终交付或照片级运动),请改用标准 混元视频 端点。
第一步:获取 Novita AI API 密钥
在 novita.ai 注册,并从 密钥管理页面 生成 API 密钥。新账户可获赠免费额度。将密钥存储为环境变量——切勿在源代码文件中硬编码。
export NOVITA_API_KEY="your_api_key_here"
第二步:端点与模型 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 |
| 内容类型 | application/json |
官方 API 参考:novita.ai/docs/api-reference/model-apis-hunyuan-video-fast
第三步:发送你的第一个请求
提交一个包含提示词和输出设置的生成请求:
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": "一只红狐在黎明时分的雪林中奔跑,慢动作,电影级广角镜头",
"negative_prompt": "模糊,低质量,扭曲,水印",
"width": 1280,
"height": 720,
"seed": -1
}'
API 会立即返回一个 task_id:
{
"task_id": "hunyuan-fast-abc123"
}
视频不在该响应中——请保存 task_id 并在下一步中使用。
第四步:轮询获取视频结果
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"任务失败: {data}")
time.sleep(interval)
raise TimeoutError(f"任务 {task_id} 在 {timeout} 秒内未完成")
if __name__ == "__main__":
task_id = submit_video(
prompt="一只红狐在黎明时分的雪林中奔跑,慢动作,电影级广角镜头",
negative_prompt="模糊,低质量,扭曲,水印",
width=1280,
height=720,
)
print(f"任务已提交: {task_id}")
result = poll_result(task_id)
for video in result.get("videos", []):
print(f"视频 URL({video['video_url_ttl']} 秒后过期): {video['video_url']}")
cURL 示例
# 第一步:提交生成请求
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": "城市天际线从黄昏到夜晚的延时摄影,电影级",
"negative_prompt": "模糊,低质量,扭曲",
"width": 1280,
"height": 720,
"seed": 42
}' | jq -r '.task_id')
echo "任务 ID: $TASK_ID"
# 第二步:轮询直到完成
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 "失败: $RESULT"
break
fi
echo "状态: $STATUS — 等待中..."
sleep 5
done
关键参数
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
prompt |
string | 是 | 视频场景、主体、动作和风格的文本描述 |
negative_prompt |
string | 否 | 输出中应避免的元素(例如“模糊,低质量”) |
width |
integer | 否 | 输出宽度(像素)——请查看 API 文档 获取支持的值 |
height |
integer | 否 | 输出高度(像素)——与 width 配合设置分辨率 |
seed |
integer | 否 | 设置固定整数以复现相同输出;-1 为随机 |
完整参数列表(包括时长选项、最大分辨率限制以及模型特定字段)请参见 混元视频快速版 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 条目。如果质量仍不能满足需求,请评估标准混元视频端点。
常见问题
Novita AI 上混元视频快速版的端点是什么?
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_status 为 TASK_STATUS_SUCCEED。
混元视频快速版与标准混元视频有何不同?
快速版针对生成速度进行了优化——减少了从任务提交到完成视频的时间。代价是运动逼真度和细粒度提示词遵循度低于标准模型。快速版用于提示词迭代、高吞吐量批处理作业或阶段测试;标准版用于最终质量输出。
我可以设置特定的视频时长吗?
请查看 API 参考 了解支持的时长参数。一些 Novita 视频 API 提供了明确的 duration 字段;其他则使用模型默认值。在假设默认片段长度之前,请先验证。
如何复现特定的视频输出?
将 seed 设置为固定整数。相同的 seed、prompt、width 和 height 组合应能在多次运行中产生一致的输出。
混元视频快速版支持图像到视频吗?
Novita AI 上的混元视频快速版是文本到视频模型。如需在 Novita 上进行图像到视频生成,请查看 Novita 模型页面 上可用的 I2V 模型,例如 Kling、Vidu 或 Wan。
在 Novita AI 上使用混元视频快速版需要多少费用?
请查看 novita.ai/models 确认当前定价。视频模型的每片段定价可能会变化;在构建生产成本估算之前,请始终查看定价页面。
混元视频快速版适用于生产视频管道吗?
是的,但需要适当处理。围绕异步任务提交设计你的管道,保存 task_id 以跟踪状态,在完成后立即下载视频(在 video_url_ttl 过期之前),并处理 TASK_STATUS_FAILED 状态,采用重试或回退策略。
