A quiet single-shot cinematic character moment inside a small self-service laundromat late at night. One adult Black female nurse in plain muted blue scrubs sits beside a slowly rotating washing machine. In a medium close-up with hands visible, she takes a small yellow folded paper crane from her scrub pocket, holds it on her palm, studies it and gradually changes from tired neutrality to a subtle tender smile. The paper crane stays still and keeps its folded shape. Soft fluorescent light mixed with warm street light, realistic skin, delicate continuous expression change, slow gentle push-in. No other people, no cuts, no logos, no writing, no advertisement.
Hailuo 02 Pro Text to Video API
minimax/hailuo-02/pro/text-to-videoHailuo 02 Pro Text to Video 将纯文本提示词转化为具备电影级张力的 512P 与 768P 视频成片,支持大幅度肢体动作演绎、微观光影模拟与可选提示词优化。它能够精准遵循长文本中的分镜叙事与情绪节拍,同时稳定维持宏大场景的物理连贯性与质感厚重感。
示例
REST API 规格
快速开始
提交端点请求并查询任务状态。请将示例素材 URL 替换为可访问的真实文件。
第一步:配置 API 鉴权
在控制台申请 API Key,并在每个 HTTP 请求头中携带 Authorization: Bearer <API_KEY> 进行身份验证。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第 2 步:提交生成任务
POST /api/generate/submit。model 和可选 callback_url 位于根级,生成参数位于 input 内。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "minimax/hailuo-02/pro/text-to-video",
"input": {
"prompt": "A quiet single-shot cinematic character moment inside a small self-service laundromat late at night. One adult Black female nurse in plain muted blue scrubs sits beside a slowly rotating washing machine. In a medium close-up with hands visible, she takes a small yellow folded paper crane from her scrub pocket, holds it on her palm, studies it and gradually changes from tired neutrality to a subtle tender smile. The paper crane stays still and keeps its folded shape. Soft fluorescent light mixed with warm street light, realistic skin, delicate continuous expression change, slow gentle push-in. No other people, no cuts, no logos, no writing, no advertisement.",
"prompt_optimizer": false
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"第三步:轮询任务执行结果
使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
状态查询端点
GET https://api.vidgo.ai/api/generate/status/{task_id}使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "CKYXCWMX6O3DYACG",
"status": "running",
"created_time": "2026-09-22T16:04:52"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}端到端完整脚本示例
展开查看在生产环境中具备轮询重试、异常保护和超时处理的完整自动化脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "minimax/hailuo-02/pro/text-to-video",
"input": {
"prompt": "A quiet single-shot cinematic character moment inside a small self-service laundromat late at night. One adult Black female nurse in plain muted blue scrubs sits beside a slowly rotating washing machine. In a medium close-up with hands visible, she takes a small yellow folded paper crane from her scrub pocket, holds it on her palm, studies it and gradually changes from tired neutrality to a subtle tender smile. The paper crane stays still and keeps its folded shape. Soft fluorescent light mixed with warm street light, realistic skin, delicate continuous expression change, slow gentle push-in. No other people, no cuts, no logos, no writing, no advertisement.",
"prompt_optimizer": false
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数(input 对象)
向 /api/generate/submit 提交 POST 请求时,input 内部所支持的生成参数配置:
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 是 | — | 必填字符串,去除首尾空白后不能为空。当前上游实现未设置显式长度上限。 |
| resolution | string | 否 | 768P | 512P 或 768P,默认 768P。 |
| prompt_optimizer | boolean | 否 | — | 可选布尔值;省略时由上游处理,体验区默认关闭。 |
响应字段(查询结果)
通过 GET /api/generate/status/{task_id} 轮询获取的任务详情:
| 字段 | 类型 | 描述 |
|---|---|---|
| code | integer | 业务响应状态码,200 表示成功。 |
| data.task_id | string | 异步任务全局唯一流水号。 |
| data.status | string | 任务执行阶段:not_started(排队中)、running(生成中)、finished(已完成)、failed(失败)。 |
| data.files | array | 生成成功时包含的成片文件列表,每项含 file_url 与 file_type。 |
| data.error_message | string | null | 任务执行异常时的具体错误描述。 |
任务生命周期
客户端应根据 status 字段判断任务进度,达到 finished 或 failed 终态时立即终止轮询:
not_started任务已接收,等待执行。
running正在生成。
finished生成完成,从 data.files 获取视频 URL。
failed生成失败,请查看 data.error_message,已扣积分按现有流程返还。
轮询与异常处理
- 轮询频次推荐建议初始轮询间隔设为 2–3 秒,随着任务持续可递增至 5 秒一次,避免过密请求。
- 网络波动与重试若查询网络出现 5xx 或连接超时,不代表任务失败,可稍作休眠后继续重试查询。
- 异步 Webhook 回调支持在提交请求体根层级传递 callback_url,在任务终态时系统将通过 POST 自动推送完整任务结果。
接口规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| Model ID | minimax/hailuo-02/pro/text-to-video | 请求根级 model 字段。 |
| 分辨率 | 512P / 768P | 512P 或 768P,默认 768P。 |
| 时长 | — | 不接受 duration 参数。 |
相关模型
Hailuo 02 Pro Text to Video API 常见问题
Hailuo 02 Pro Text to Video API 是什么?
Hailuo 02 Pro Text to Video 是 MiniMax 研发的专业级文本生成视频模型。它根据纯文本提示词直接生成 512P 或 768P 电影级高保真动态视频,具备更强大的动态张力、复杂物理交互模拟与微观光影渲染能力。基于 MiniMax 旗舰级视频生成架构,它在忠实呈现长篇剧本叙事分镜与情绪节拍的同时,稳定保持宏观场景的透视规律与细节质感。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Hailuo 02 Pro Text to Video 是如何计费的?
该端点采用固定按次计费方式,单次生成统一扣除 65 积分($0.325)。512P 与 768P 分辨率享受完全相同的固定价格,若任务执行失败,系统会自动退还扣除的积分。
Hailuo 02 Pro Text to Video 请求中需要传入 duration 参数吗?
不需要,且严禁传递 duration 参数。Pro 模式采用固定单次交付机制,在 API 请求体中传递 duration 字段将导致接口参数校验直接拒绝。
Hailuo 02 Pro Text to Video 支持多详细的提示词?
当前端点对输入提示词未设置显式的字符长度硬限制,仅要求去除首尾多余空白后不能为空。你可以输入包含人物设定、镜头轨迹、布光风格与情绪变化的完整长篇剧本分镜。
Hailuo 02 Pro Text to Video 相比 Standard 模式有哪些视觉优势?
Pro 模式针对大幅度动态、激烈动作场面以及高难度运镜进行了深度优化,镜头光影层次感更强,动态模糊与物理规律更加自然,特别适合表现大动态的影视动作片段。
Hailuo 02 Pro Text to Video 提供哪些分辨率选项?
支持 512P 与 768P 两种分辨率选项(默认推荐 768P)。由于二者按次计费费率完全相同,建议在生产交付中优先选择 768P 以获取最佳的画面清晰度与细节纹理。
什么时候适合开启 Hailuo 02 Pro Text to Video 的提示词优化器?
当输入的文本提示词较为简短抽象时,开启 prompt_optimizer 能让模型自动扩充电影级布光与构图细节;如果已经准备了非常详尽精准的专业导演分镜,建议保持关闭以严格遵循原输入。















