PixVerse V4.5 现已通过 Novita AI 的两个异步端点提供:POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v 用于文本生成视频(T2V),以及 POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v 用于图像生成视频(I2V)。两者都遵循相同的两步异步模式——提交生成请求,收到 task_id,然后轮询 GET /v3/async/task-result 直到状态变为 TASK_STATUS_SUCCEED 并且视频 URL 可用。本指南将带您从零开始,为每种模式获得一个可用的视频 URL。
何时使用本快速入门指南
当您在编写 PixVerse V4.5 的生产逻辑之前,需要一个经过验证的有效请求时,请使用本指南。
当您的输入完全是文本时——场景描述、故事板字幕或产品提示——T2V 是正确路径。当您有一张参考图像,并希望 PixVerse 从该帧开始向前动画时,请使用 I2V。
开始之前值得了解:
- 视频片段在 1080p 下最长 5 秒,在 720p 及以下分辨率下最长 8 秒。
fast_mode: true可加快生成速度并降低成本,但会将分辨率限制在 720p。style预设参数(anime、3d_animation、clay、comic、cyberpunk)被记录为仅适用于 v3.5——在生产中依赖它之前,请先在 V4.5 上进行测试。- I2V 图像输入必须是 jpg、jpeg 或 png 格式;最大 10MB;最小 300×300px;宽高比在 1:2.5 和 2.5:1 之间。
本指南不涵盖 PixVerse 网页界面、自托管或微调。它仅涵盖 Novita AI 托管的 API 路径。
步骤 1:获取您的 Novita API 密钥
创建一个 Novita AI 账户,然后导航到 API 密钥管理。生成一个密钥并将其导出到您的环境中:
export NOVITA_API_KEY="your_api_key_here"
确保密钥不会出现在版本控制、客户端捆绑包和 Docker 镜像层中。
步骤 2:确认端点
| T2V | I2V | |
|---|---|---|
| 提交端点 | POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v |
POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v |
| 结果端点 | GET https://api.novita.ai/v3/async/task-result?task_id=<id> |
GET https://api.novita.ai/v3/async/task-result?task_id=<id> |
| API 参考 | T2V 文档 | I2V 文档 |
结果端点对所有 Novita AI 异步 API 都是通用的。一旦您理解了轮询循环,它对每个模型的工作方式都是一样的。
步骤 3:发送您的第一个 T2V 请求
使用提示词和您偏好的宽高比提交一个生成请求。默认值(aspect_ratio: "16:9"、resolution: "540p"、fast_mode: false)是一个合理的起点:
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A time-lapse of cherry blossoms falling in slow motion, soft morning light, cinematic 4K",
"aspect_ratio": "16:9",
"resolution": "720p"
}'
成功的 200 响应仅返回:
{
"task_id": "abc123..."
}
保存 task_id。此阶段不会返回其他内容——视频生成是异步运行的。
步骤 4:发送您的第一个 I2V 请求
I2V 接受一张起始图像,并根据您的提示词对其进行动画处理。image_file 字段期望源图像的 base64 编码字符串:
# 首先对图像进行编码
IMAGE_B64=$(base64 -w 0 /path/to/your/image.jpg)
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"prompt\": \"Camera slowly pushes forward, light wind moves through the scene\",
\"image_file\": \"$IMAGE_B64\",
\"resolution\": \"720p\"
}"
响应与 T2V 的格式相同:
{
"task_id": "xyz789..."
}
发送前需要检查的关键图像约束:
- 格式:仅限 jpg、jpeg 或 png
- 文件大小:最大 10MB(编码前检查——base64 将使大小增加约 33%)
- 最小尺寸:300×300px
- 宽高比:介于 1:2.5 和 2.5:1 之间(纵向到横向的极端值)
步骤 5:轮询结果
使用提交步骤返回的 task_id 轮询任务结果端点:
curl -s "https://api.novita.ai/v3/async/task-result?task_id=abc123..." \
-H "Authorization: Bearer $NOVITA_API_KEY"
task.status 字段会经历以下状态:
| 状态 | 含义 |
|---|---|
TASK_STATUS_QUEUED |
任务正在队列中等待 |
TASK_STATUS_PROCESSING |
生成正在进行中 |
TASK_STATUS_SUCCEED |
视频已就绪;URL 在响应中 |
TASK_STATUS_FAILED |
生成失败;请检查 task.reason |
每 5–10 秒轮询一次。当出现 TASK_STATUS_SUCCEED 时,视频 URL 将出现在响应体中。task.eta 字段提供了预计完成时间(秒),您可以用它来安排第一次轮询。
步骤 6:查看定价和限制
Novita AI 公布的 PixVerse V4.5 定价为每 5 秒片段 0.7 美元(根据截至 2026 年 7 月的 Novita AI 的 PixVerse 产品页面 验证)。在建立任何成本估算之前,请查看 Novita AI 定价页面 确认当前费率。
fast_mode: true 可以更快地生成视频,成本更低,但分辨率被限制在 720p。它适用于原型设计或批量预览生成,其中质量是次要的。
速率限制因账户层级而异。请查看 Novita AI 速率限制文档 了解当前的层级阈值。
关键参数
T2V 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
prompt |
string | — | 必填。最多 2048 个字符。 |
aspect_ratio |
string | 16:9 |
16:9、4:3、1:1、3:4、9:16 |
resolution |
string | 540p |
360p、540p、720p、1080p。1080p 需要 fast_mode: false。 |
negative_prompt |
string | — | 最多 2048 个字符。描述要避免的内容。 |
fast_mode |
boolean | false |
更快更便宜;限制在 720p。 |
style |
string | — | anime、3d_animation、clay、comic、cyberpunk。标注为仅适用于 v3.5——在生产使用前进行测试。 |
seed |
integer | — | 设置用于可复现性;模型更新后输出仍可能变化。 |
I2V 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
prompt |
string | — | 必填。最多 2048 个字符。 |
image_file |
string | — | 必填。Base64 编码的 jpg/jpeg/png 图像。最大 10MB,最小 300×300px,宽高比 1:2.5 到 2.5:1。 |
resolution |
string | 540p |
与 T2V 相同选项。 |
negative_prompt |
string | — | 最多 2048 个字符。 |
fast_mode |
boolean | false |
与 T2V 相同。 |
style |
string | — | 与 T2V 相同。 |
seed |
integer | — | 与 T2V 相同。 |
注意:I2V 不接受 aspect_ratio 参数——输出宽高比由输入图像决定。
Python 示例——完整异步工作流
此示例涵盖 T2V 和 I2V 提交以及轮询循环,全部在一个脚本中:
import os
import time
import base64
import requests
API_KEY = os.environ["NOVITA_API_KEY"]
BASE_URL = "https://api.novita.ai/v3/async"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
def submit_t2v(prompt: str, aspect_ratio: str = "16:9", resolution: str = "720p") -> str:
resp = requests.post(
f"{BASE_URL}/pixverse-v4.5-t2v",
headers=HEADERS,
json={
"prompt": prompt,
"aspect_ratio": aspect_ratio,
"resolution": resolution,
},
)
resp.raise_for_status()
return resp.json()["task_id"]
def submit_i2v(prompt: str, image_path: str, resolution: str = "720p") -> str:
with open(image_path, "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
resp = requests.post(
f"{BASE_URL}/pixverse-v4.5-i2v",
headers=HEADERS,
json={
"prompt": prompt,
"image_file": image_b64,
"resolution": resolution,
},
)
resp.raise_for_status()
return resp.json()["task_id"]
def poll_result(task_id: str, interval: int = 8, timeout: int = 300) -> dict:
deadline = time.time() + timeout
while time.time() < deadline:
resp = requests.get(
f"{BASE_URL}/task-result",
headers=HEADERS,
params={"task_id": task_id},
)
resp.raise_for_status()
data = resp.json()
status = data.get("task", {}).get("status")
if status == "TASK_STATUS_SUCCEED":
return data
if status == "TASK_STATUS_FAILED":
reason = data.get("task", {}).get("reason", "unknown")
raise RuntimeError(f"Task {task_id} failed: {reason}")
time.sleep(interval)
raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")
if __name__ == "__main__":
# 文本生成视频
t2v_task = submit_t2v(
prompt="A lone lighthouse on a rocky coast at dusk, waves crashing, golden sky",
aspect_ratio="16:9",
resolution="720p",
)
print(f"T2V task submitted: {t2v_task}")
t2v_result = poll_result(t2v_task)
print("T2V result:", t2v_result)
# 图像生成视频——替换为实际的图像路径
# i2v_task = submit_i2v(
# prompt="Gentle wind moves through the scene, slow camera pull-back",
# image_path="./reference.jpg",
# resolution="720p",
# )
# print(f"I2V task submitted: {i2v_task}")
# i2v_result = poll_result(i2v_task)
# print("I2V result:", i2v_result)
cURL 示例
带快速模式的 T2V:
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A hyperrealistic ocean wave cresting and breaking on shore, slow motion, golden hour",
"aspect_ratio": "9:16",
"resolution": "720p",
"fast_mode": true,
"negative_prompt": "blurry, low quality, watermark"
}'
带种子值的 T2V(用于可复现性):
curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Neon-lit cyberpunk street at night, rain reflections, hovering vehicles",
"aspect_ratio": "16:9",
"resolution": "1080p",
"seed": 42
}'
轮询结果:
curl -s "https://api.novita.ai/v3/async/task-result?task_id=YOUR_TASK_ID" \
-H "Authorization: Bearer $NOVITA_API_KEY"
故障排除
I2V 提交时出现 400 Bad Request
首先检查图像约束:格式必须为 jpg/jpeg/png,base64 编码前大小必须小于 10MB(编码后的有效负载将大约增加 33%),最小 300×300px,宽高比在 1:2.5 和 2.5:1 之间。极端横向(非常宽或非常高的图像)将被拒绝。
任务长时间停留在 TASK_STATUS_QUEUED
在高平台负载下这是正常的。task.eta 字段提供了估计值;请据此进行轮询,而不是频繁请求端点。如果任务在 10 分钟后仍未进展,请检查 Novita AI 的状态页面或重新提交。
TASK_STATUS_FAILED 且没有有用的原因
使用更短、更简单的提示词重试。包含模糊运动指令、矛盾场景描述或角色执行不可能物理动作的提示词往往容易失败。负面提示词如果过于宽泛,也可能与主提示词冲突。
1080p 在快速模式下不可用
fast_mode: true 将分辨率限制为 720p。如果您需要 1080p,请移除 fast_mode 或将其设置为 false。
style 参数没有可见效果
style 参数被记录为仅适用于 v3.5。在 V4.5 请求中,它可能被静默忽略或产生不一致的结果。在未测试您的特定用例之前,请不要依赖它。
常见问题
PixVerse V4.5 的 T2V 和 I2V 有什么区别?
T2V 完全根据文本提示生成视频片段,不需要图像输入。I2V 接受一张起始图像,并根据文本提示对其进行动画处理,将图像作为第一帧。对于完全生成的场景,使用 T2V;当您有一个特定的视觉起点并希望对其进行动画处理时,使用 I2V。
PixVerse V4.5 生成什么长度的视频?
片段在 1080p 下为 5 秒,在 720p 及以下分辨率下最长 8 秒。API 中没有 duration 参数——片段长度由您选择的分辨率决定。
I2V 端点是否从图像推断宽高比?
是的。I2V 没有 aspect_ratio 参数。输出宽高比与输入图像匹配。在提交前,请确保您的图像已裁剪为预期的输出宽高比。
我可以并行提交 T2V 和 I2V 请求吗?
可以。每个请求返回自己独立的 task_id。您可以同时提交多个请求并并行轮询它们——无需等待一个完成后再提交下一个。
如何在不同运行中获得一致的输出?
将 seed 参数设置为相同的整数。请注意,基于种子的可复现性在模型版本更新后不保证——如果您以后需要审计结果,请同时存储视频 URL 和生成参数。
fast_mode 适合生产使用吗?
这取决于您的质量标准。fast_mode: true 生成视频更快,成本更低,但分辨率限制在 720p 并且质量低于标准模式。它非常适合预览生成、批量评估和原型设计;当输出质量是决定性因素时,请使用标准模式。
