A restrained cinematic comedy shot of ONE muscular adult amateur boxer reclining in a dental examination chair, wearing a plain dark charcoal T-shirt. Tight close-up of his face, neck and upper chest; his arms and all hands remain OUTSIDE the frame throughout. A single small dental inspection mirror on a thin metal stem enters slowly from the far left edge, held by an unseen dentist. It stays near the image edge and never touches the man. He notices it with only his eyes, swallows once with a visible small throat movement, then tightens his lips and furrows his brow while trying to seem brave. His head remains nearly still. Natural skin texture and subtle coherent facial muscle movement, consistent face, softly blurred clinical room background, fixed camera and soft light. One continuous six-second take, no cuts. No gloves, hands or extra people in frame, no mouth interior, no treatment, no blood, no writing, no logos, no watermark.
Hailuo 2.3 Pro Text to Video API
minimax/hailuo-2.3/pro/text-to-videoHailuo 2.3 Pro Text to Video 将文字提示词转化为电影级原生 1080p 高清视频,具备逼真的物理规律模拟、高动态范围光影呈现与精细的动态表现力。它能精准执行复杂多主体调度、平滑电影运镜与自然运动惯性,在单次固定 6 秒成片中呈现影院级视觉质感与画面细节。
示例
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-2.3/pro/text-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 6,
"resolution": "1080p",
"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": "task-example",
"status": "not_started",
"created_time": "2026-09-23T08:00:00"
}
}{
"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-2.3/pro/text-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 6,
"resolution": "1080p",
"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 | 是 | — | 必填字符串,去除首尾空白后不能为空,最多 5,000 个 Unicode 字符。 |
| duration | integer | 否 | 6 | 仅支持 6 秒,默认 6 秒。 |
| resolution | string | 否 | 1080p | 此端点固定为 1080p;省略时使用该值。 |
| prompt_optimizer | boolean | 否 | — | 可选布尔值;省略时由上游处理,API 不设置默认值。体验区默认关闭,不增加费用。 |
响应字段(查询结果)
通过 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-2.3/pro/text-to-video | 请求根级 model 字段。 |
| Resolution | 1080p | 此端点固定为 1080p;省略时使用该值。 |
| Duration | 6s | 仅支持 6 秒,默认 6 秒。 |
Hailuo 2.3 Pro Text to Video API 常见问题
Hailuo 2.3 Pro Text to Video API 是什么?
Hailuo 2.3 Pro Text to Video 是 MiniMax 旗下的旗舰级文本生成视频模型,专为电影级高品质视觉呈现与商业视听创作打造。它能将长达 5,000 字符的自然语言提示词转化为原生 1080p 全高清视频,在固定 6 秒的时长内展现出色的物理动态仿真、体积光影渲染与精准镜头运动。依托 MiniMax 先进的大规模多模态视频生成底座,它精准呈现复杂流体、布料重力与人物动作惯性,同时保持画面高清晰度与帧间连贯性。开发者可以通过 Vidgo REST API 轻松集成,也可以直接在上方体验区进行在线调试。
Hailuo 2.3 Pro Text to Video 的成片是原生 1080p 分辨率吗?
是的,Hailuo 2.3 Pro Text to Video 直接以原生 1080p 全高清规格渲染视频画面,而非通过低分辨率后期算法插值放大,因而具备锐利的边缘细节、真实的景深过渡与丰富的胶片级质感。
为什么 Hailuo 2.3 Pro Text to Video 仅支持 6 秒时长?
Pro 档位模型旨在单次生成中集中释放算力,确保每一帧都达到电影级的物理拟真度与画面精细度,因此专门针对 6 秒高密度镜头进行了针对性架构优化。端点严格限制 duration=6,传入其他数值将导致参数校验失败。
Hailuo 2.3 Pro Text to Video 如何计费?
该端点按视频单次生成固定计费,每个 6 秒 1080p 视频固定消耗 60 积分(约 $0.300,1 积分 = $0.005)。开启提示词优化器(prompt_optimizer)不会产生额外扣费。
Hailuo 2.3 Pro Text to Video 的物理模拟表现如何?
模型融入了强大的真实物理先验知识,能够准确模拟重力加速度、人体运动惯性、液体飞溅与布料风阻褶皱,在剧烈动作或多物体碰撞场景中能够有效避免画面撕裂与不自然的形态坍塌。
在 Hailuo 2.3 Pro Text to Video 中可以使用多长的提示词?
提示词最多支持 5,000 个 Unicode 字符。你可以全面描写画面主体、复杂时序动作、镜头运动路线、灯光色温以及微观环境氛围,模型具备强大的语义拆解与长文本指令遵循能力。
什么时候该选择 Hailuo 2.3 Pro Text to Video 而不是 Standard 模式?
当你需要交付商业广告、影视预演、游戏大片等对原生 1080p 超高清画质与复杂光影有严苛要求的成品镜头时,强烈推荐使用 Pro 模式。若你的项目处于创意验证阶段、需要 10 秒长镜头或注重单片生成成本(6 秒仅需 35 积分),则 Standard 模式更为经济灵活。