Single locked-off stop-motion miniature shot. The same wooden clockmaker puppet slowly lowers the hinged lid of the open brass pocket watch with one wooden hand. The other hand keeps the watch centered on the workbench. The lid closes neatly and both hands come to rest beside the closed watch, matching the supplied ending frame. Preserve the puppet face, clothing, miniature attic and camera composition. Deliberate small movements, tactile handcrafted materials, no cuts or new objects.
Hailuo 02 Standard Image to Video API
minimax/hailuo-02/standard/image-to-videoHailuo 02 Standard Image to Video 将静态首帧图像与提示词转化为 512P 与 768P 动态视频,支持 6 秒或 10 秒单次生成、可选尾帧定向过渡与智能提示词优化。它能够高度保留输入图像的主体外貌、构图色彩与光影层次,同时赋予画面符合物理规律的自然运动与镜头变焦。

必填,一张 JPG、PNG 或 WebP 图片,上传不超过 10 MiB。

可选,上传格式及大小限制同首帧。使用尾帧时请选择 768P。
使用尾帧时需选择 768P,512P 暂不可选。
示例
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/standard/image-to-video",
"input": {
"prompt": "Single locked-off stop-motion miniature shot. The same wooden clockmaker puppet slowly lowers the hinged lid of the open brass pocket watch with one wooden hand. The other hand keeps the watch centered on the workbench. The lid closes neatly and both hands come to rest beside the closed watch, matching the supplied ending frame. Preserve the puppet face, clothing, miniature attic and camera composition. Deliberate small movements, tactile handcrafted materials, no cuts or new objects.",
"prompt_optimizer": false,
"duration": 6,
"image_urls": [
"https://cdn.vidgo.ai/apis/models/minimax/hailuo-02/standard/image-to-video/v1/03/start.png"
],
"resolution": "768P",
"end_image_url": "https://cdn.vidgo.ai/apis/models/minimax/hailuo-02/standard/image-to-video/v1/03/end.png"
}
}
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": "X69IXES85K62G9Z5",
"status": "running",
"created_time": "2026-09-22T13:05:02"
}
}{
"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/standard/image-to-video",
"input": {
"prompt": "Single locked-off stop-motion miniature shot. The same wooden clockmaker puppet slowly lowers the hinged lid of the open brass pocket watch with one wooden hand. The other hand keeps the watch centered on the workbench. The lid closes neatly and both hands come to rest beside the closed watch, matching the supplied ending frame. Preserve the puppet face, clothing, miniature attic and camera composition. Deliberate small movements, tactile handcrafted materials, no cuts or new objects.",
"prompt_optimizer": false,
"duration": 6,
"image_urls": [
"https://cdn.vidgo.ai/apis/models/minimax/hailuo-02/standard/image-to-video/v1/03/start.png"
],
"resolution": "768P",
"end_image_url": "https://cdn.vidgo.ai/apis/models/minimax/hailuo-02/standard/image-to-video/v1/03/end.png"
}
}
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 | 是 | — | 必填字符串,去除首尾空白后不能为空。最多 1500 个 Unicode 字符。 |
| resolution | string | 否 | 768P | 512P 或 768P,默认 768P。 |
| duration | integer | 否 | 6 | 6 或 10 秒,默认 6 秒。 |
| image_urls | array | 是 | — | 必须包含且仅包含一个首帧图片 HTTP(S) URL。 |
| end_image_url | string | 否 | — | 可选尾帧图片 HTTP(S) URL,必须同时提供首帧。仅支持 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/standard/image-to-video | 请求根级 model 字段。 |
| 分辨率 | 512P / 768P | 512P 或 768P,默认 768P。 |
| 时长 | 6 / 10s | 默认 6 秒。 |
相关模型
Hailuo 02 Standard Image to Video API 常见问题
Hailuo 02 Standard Image to Video API 是什么?
Hailuo 02 Standard Image to Video 是 MiniMax 研发的图像生成视频模型。它根据单张起始图片与文本提示词生成 512P 或 768P 高清动态视频,支持 6 秒与 10 秒输出时长、可选尾帧定向过渡与智能提示词优化。基于 MiniMax 先进的视频生成架构,它在严格保持输入图片主体面貌与场景构图的同时,赋予画面细腻自然的物理动态与运镜轨迹。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Hailuo 02 Standard Image to Video 支持指定视频尾帧吗?
支持。你可以在请求中通过 end_image_url 传入一张公开可访问的尾帧图片,模型将以首帧为起始、以尾帧为终点进行平滑连续的动态过渡与镜头运动。
在 Hailuo 02 Standard Image to Video 中使用尾帧需要哪种分辨率?
使用尾帧 end_image_url 时必须选择 768P 分辨率。Standard 模式下的 512P 规格不支持尾帧参数,若需要使用尾帧过渡功能,请将 resolution 参数设为 768P。
Hailuo 02 Standard Image to Video 支持上传几张起始图片?
本端点的 image_urls 数组必须且仅能包含 1 张起始图片 URL。多图混合生成不属于本端点的输入规范,如有明确终点画面需求,可通过 end_image_url 字段提供尾帧。
Hailuo 02 Standard Image to Video 如何保持首图的主体一致性?
模型深度提取首帧的面部五官、服装材质与色彩空间特征,并在整个时间序列中进行动态跟踪。建议在提示词中集中描述身体动作与镜头移动,避免对主体的固有外貌给出冲突描述。
Hailuo 02 Standard Image to Video 支持生成 10 秒视频吗?
支持。模型提供 6 秒与 10 秒两种整秒时长选项(默认时长为 6 秒)。选择 10 秒能够在保持主体稳定的前提下,展现更充裕的动作发展过程与缓和的运镜节奏。
Hailuo 02 Standard Image to Video 的计费方式是什么?
计费按输出分辨率与生成秒数计算(1 积分 = $0.005)。512P 规格为每秒 3 积分(6 秒 18 积分,10 秒 30 积分);768P 规格为每秒 7 积分(6 秒 42 积分,10 秒 70 积分),使用尾帧或开启提示词优化不会产生额外附加费用。















