Animate the exact jumping spider in this first frame. In one uninterrupted macro shot it takes two short sideways steps on the observation surface, rotates its body to face the camera, lifts its front pair of legs and holds still. Preserve its eight legs, large forward-facing eyes, compact body and detailed hairs without adding appendages. Natural tiny foot contacts and deliberate pauses. Keep the camera, background and lighting fixed with enough depth of field to see the body. No cuts, no lettering, no logos, no advertising, no watermark.
Hailuo 2.3 Standard Image to Video API
minimax/hailuo-2.3/standard/image-to-videoHailuo 2.3 Standard Image to Video 将静态首帧图像转化为生动自然的 768p 动态视频,支持 6 秒或 10 秒单次输出、真实人物微表情演变与灵敏的动作指令遵循。它能够在保持原始主体面容特征、画面构图与光影氛围的同时,赋予角色富有张力的物理运动与平滑电影运镜。

必填首帧。体验区上传支持 JPG、PNG、WebP,单张不超过 10 MiB;JSON 模式可填写 HTTP(S) URL。
示例
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/standard/image-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 6,
"resolution": "768p",
"prompt_optimizer": false,
"start_image_url": "https://example.com/start-image.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": "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/standard/image-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 6,
"resolution": "768p",
"prompt_optimizer": false,
"start_image_url": "https://example.com/start-image.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 | 是 | — | 必填字符串,去除首尾空白后不能为空,最多 5,000 个 Unicode 字符。 |
| duration | integer | 否 | 6 | 支持 6 或 10 秒,默认 6 秒。 |
| resolution | string | 否 | 768p | 此端点固定为 768p;省略时使用该值。 |
| start_image_url | string | 是 | — | 必填首帧图片 HTTP(S) URL,必须包含主机名且不能带有用户名或密码。不支持尾帧、数组或 data URL。 |
| 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/standard/image-to-video | 请求根级 model 字段。 |
| Resolution | 768p | 此端点固定为 768p;省略时使用该值。 |
| Duration | 6 / 10s | 支持 6 或 10 秒,默认 6 秒。 |
Hailuo 2.3 Standard Image to Video
Hailuo 2.3 Standard Image to Video 由 MiniMax 研发,专为静态图像动态化设计。创作者只需提供一张高质量首帧图片 URL 并附带自然语言提示词,即可驱动画面中的角色、物体与环境自然活动。模型在 768p 分辨率下支持 6 秒或 10 秒视频输出,精准再现丰富的人物微表情与符合物理规律的动作走势,在维持画面构图与光影质感的同时提供透明的单次视频计费。
为什么选择此模式?
高保真主体外貌特征保留在整段视频动态演进过程中,忠实维持原图人物面容结构、服饰纹理与关键发型特征。
真实生动的人物微表情模拟细腻呈现角色微笑、凝视与情绪起伏等面部微动,使人物特写镜头富有饱满的戏剧感染力。
灵活的 6 秒与 10 秒时长档位提供 6 秒敏捷动作短镜头与 10 秒长叙事镜头,满足不同镜头语言与视频节奏需求。
动作与运镜指令高效响应准确理解自然语言描写的肢体运动过程、环境动态响应以及摄影机推拉摇移走势。
经济透明的单片固定计费6 秒单次 35 积分,10 秒单次 70 积分,计费标准清晰可预期且任务失败自动退还积分。
参数说明
| 参数 | 要求 | 说明 |
|---|---|---|
| prompt | 必填 | 必填字符串,去除首尾空白后不能为空,最多 5,000 个 Unicode 字符。 |
| duration | 可选 | 支持 6 或 10 秒,默认 6 秒。 默认值 6 |
| resolution | 可选 | 此端点固定为 768p;省略时使用该值。 默认值 768p |
| start_image_url | 必填 | 必填首帧图片 HTTP(S) URL,必须包含主机名且不能带有用户名或密码。不支持尾帧、数组或 data URL。 |
| prompt_optimizer | 可选 | 可选布尔值;省略时由上游处理,API 不设置默认值。体验区默认关闭,不增加费用。 |
使用方法
准备并托管首帧图像上传或准备一张清晰的 JPG、PNG 或 WebP 图片,将其公网可访问的 HTTP(S) 地址填入 start_image_url。
编写动作与运镜提示词在 prompt 中描述主体从初始姿势展开的动作时序,并指定摄影机推进、横移或环绕等镜头轨迹。
选择成片时长依据分镜情节选择 6 秒快速动态或 10 秒长情节过渡,画面分辨率固定为 768p 规格。
配置提示词优化器若提示词较为简略,可开启 prompt_optimizer 自动充实环境光影与动态细节,不产生额外扣费。
提交任务并下载成片发起异步生成请求并记录 task_id,通过状态查询端点获取最终生成的 MP4 视频文件。
计费说明
1 credit = $0.005。按视频计费,提示词优化不增加费用。
| 计费项 | 费率 | 说明 |
|---|---|---|
| 768p / 6s | 35 credits ($0.175) | 每个视频 |
| 768p / 10s | 70 credits ($0.350) | 每个视频 |
适用场景
肖像写真与角色动态化将静态数字人像、游戏角色原画与虚拟人立绘转化为富有生命力的动态视频片段。
电商商品场景动态展示为静物商品与模特展示图赋予自然运动、光影流动与镜头特写,高效制作商用推广素材。
动漫插画与概念设定演绎让二维动漫插画与手绘概念设计动起来,稳定保持画风笔触与画面整体构图。
故事板关键帧动态验证将影视前期分镜静帧直接扩展为动态连续镜头,快速验证导演构思与表演节奏。
创作技巧
- 顺应原图姿态描写动作:从首帧画面中主体的初始朝向与姿态出发描写后续动作,能使动态过渡更自然流畅。
- 细致刻画眼神与面部微动:在提示词中明确角色的视线转移、表情微澜等细节,有助于产出动人的近景特写表演。
- 使用具象的动作动词:使用'抬手遮挡阳光'、'迎风快步向前'等具体物理动词,替代笼统含糊的'很自然地动起来'。
- 根据动作跨度选择时长:单一肢体动作推荐选择 6 秒(35 积分),包含多个连续阶段的场景转换建议使用 10 秒(70 积分)。
- 选用高清晰度光影底图:主体清晰、受光明确的优质首帧素材有助于模型更准确地推算运动阴影与高光反射。
注意事项
- 单首帧输入接口契约:本端点专用于首帧图片驱动视频生成,仅接收 start_image_url 与 prompt,不支持尾帧输入。
- 固定 768p 分辨率规格:视频生成结果固定为 768p 分辨率,生成时长支持 6 秒或 10 秒整数配置。
- 异步任务与积分保障:任务通过唯一 task_id 异步轮询;积分在提交校验时冻结扣除,若后端生成失败将立即全额退还。
Hailuo 2.3 Standard Image to Video API 常见问题
Hailuo 2.3 Standard Image to Video API 是什么?
Hailuo 2.3 Standard Image to Video 是 MiniMax 研发的图像生成视频模型。它结合首帧参考图片与文本提示词生成 768p 分辨率的连续动态视频,支持 6 秒与 10 秒单次输出、细腻人物微表情演变与写实物理运动模拟。基于 MiniMax 先进的多模态视频生成架构,它在忠实保留原图角色外貌、画面构图与光影氛围的同时,呈现平滑自然的肢体动作与摄影机运镜。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Hailuo 2.3 Standard Image to Video 支持哪些首帧图片格式?
通过 API 调用时,start_image_url 参数接收公网可访问的 HTTP(S) 地址,支持 JPG、PNG 与 WebP 常见图片格式。在上方在线体验区中,可以直接上传体积不超过 10 MiB 的本地图片。
Hailuo 2.3 Standard Image to Video 支持指定尾帧图片吗?
本端点专精于基于首帧图片的单向动态演化,仅接收 start_image_url 参数。若需要指定视频的结尾画面与镜头落脚点,可以在文本提示词中详尽描述动作演化到最后的定格姿态、画面焦点与摄影机景别。
Hailuo 2.3 Standard Image to Video 如何保持人物面容一致性?
模型在初始阶段深度提取首帧人像的五官比例、发型质感与肤色细节,在生成过程中持续锁定主体身份特征,即便发生侧身、低头或丰富的面部表情变动,也能有效防止面容变形失真。
Hailuo 2.3 Standard Image to Video 支持生成 10 秒动态镜头吗?
支持。端点提供 6 秒(默认,消耗 35 积分)与 10 秒(消耗 70 积分)两种整数时长。选择 10 秒能够为人物连贯台词肢体演绎、长距离位移或多段连续运镜提供充裕的时间演进跨度。
Hailuo 2.3 Standard Image to Video 如何计费?
该端点按视频单次生成固定计费(1 积分 = $0.005)。6 秒 768p 视频消耗 35 积分(约 $0.175),10 秒 768p 视频消耗 70 积分(约 $0.350)。开启提示词优化不会产生额外费用。
什么时候该选择 Hailuo 2.3 Standard Image to Video 而不是 Pro 模式?
Standard 模式适合注重性价比、需要 6 秒与 10 秒两种时长灵活性、或在前期策划阶段高频批量生成动态素材的场景。若你的商业制作需要原生 1080p 超高清成片以适配大屏播放与高精后期交付,可选择 Pro Image to Video 模式。