Animate this exact adult telephone operator in one continuous medium close-up. Listening through the same headset, she first knits her eyebrows in puzzled concentration, shifts only her eyes briefly to the side as if checking whether she heard correctly, then presses her lips together to suppress a laugh. A tiny involuntary shoulder movement gives away her amusement. Preserve the face, hairstyle, headset, clothing and switchboard. Keep her hands still. Restrained believable micro-expressions, no broad grin, speaking or head turn. Locked camera and stable warm practical lighting. No cuts, no lettering, no logos, no advertising, no watermark.
Hailuo 2.3 Pro Image to Video API
minimax/hailuo-2.3/pro/image-to-videoHailuo 2.3 Pro Image to Video 将静态参考图片转化为电影级原生 1080p 视频,具备像素级面容还原、逼真物理规律与丰富微表情表现力。它在忠实保留原图人物特征、服饰纹理与光影氛围的同时,呈现自然生动的面部微动与立体 3D 运镜,在固定 6 秒成片中展现影院级品质。

必填首帧。体验区上传支持 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/pro/image-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 6,
"resolution": "1080p",
"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/pro/image-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 6,
"resolution": "1080p",
"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 秒,默认 6 秒。 |
| resolution | string | 否 | 1080p | 此端点固定为 1080p;省略时使用该值。 |
| 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/pro/image-to-video | 请求根级 model 字段。 |
| Resolution | 1080p | 此端点固定为 1080p;省略时使用该值。 |
| Duration | 6s | 仅支持 6 秒,默认 6 秒。 |
Hailuo 2.3 Pro Image to Video
Hailuo 2.3 Pro Image to Video 是 MiniMax 旗下的旗舰级图生视频模型,专为商业广告、虚拟数字人演绎以及电影级视觉特效打造。创作者只需提供一张高质量首帧图片 URL 并配合文字提示词,即可将静态画面扩展为原生 1080p 全高清视频。模型在固定 6 秒时长内集中释放算力,完美保留原图角色的五官神态与构图光影,精确演绎微妙的面部微表情变化与自然的深度空间视差,并以单次 60 积分的透明标准提供稳定服务。
为什么选择此模式?
原生 1080p 纯净超清画质直接渲染输出原生 1080p 全高清成片,杜绝后期放大伪影,画面细节清晰锐利。
像素级主体身份与纹理保真在剧烈运动演进中高度锁定首帧人像五官、发丝质感与复杂服饰纹理,避免面容变形失真。
细腻自然的人物微表情演绎传神展现角色眼神流转、浅笑与情绪微澜,令特写镜头的动态表演极具感染力。
多层次 3D 深度视差运镜在推进、横移与环绕运镜时精确计算前后景物深度差,营造真实的电影级空间立体感。
透明高效的商业级计费单次 6 秒 1080p 视频固定消耗 60 积分($0.300),计费简单清晰,任务异常失败自动退还积分。
参数说明
| 参数 | 要求 | 说明 |
|---|---|---|
| prompt | 必填 | 必填字符串,去除首尾空白后不能为空,最多 5,000 个 Unicode 字符。 |
| duration | 可选 | 仅支持 6 秒,默认 6 秒。 默认值 6 |
| resolution | 可选 | 此端点固定为 1080p;省略时使用该值。 默认值 1080p |
| start_image_url | 必填 | 必填首帧图片 HTTP(S) URL,必须包含主机名且不能带有用户名或密码。不支持尾帧、数组或 data URL。 |
| prompt_optimizer | 可选 | 可选布尔值;省略时由上游处理,API 不设置默认值。体验区默认关闭,不增加费用。 |
使用方法
准备并托管高质量首帧图片准备清晰的 JPG、PNG 或 WebP 格式图片,将其公网 HTTP(S) 地址填入 start_image_url 参数。
撰写动作演变与运镜提示词在 prompt 中描写主体从初始静态姿势展开的动作时序,并指定摄影机推拉摇移走势。
确认原生 1080p 与时长规格输出固定为原生 1080p 分辨率与 6 秒时长,确保算力集中于高精度的动态与画质渲染。
按需开启提示词优化器若提示词较为简明,可开启 prompt_optimizer 自动充实光影质感与构图细节,不产生额外扣费。
提交请求并下载成片向 /api/generate/submit 发起异步任务并获取 task_id,通过状态查询端点获取最终生成的 MP4 视频。
计费说明
1 credit = $0.005。按视频计费,提示词优化不增加费用。
| 计费项 | 费率 | 说明 |
|---|---|---|
| 1080p / 6s | 60 credits ($0.300) | 每个视频 |
适用场景
奢品与商业广告大片将珠宝首饰、名表、美妆护肤品与汽车宣传图转化为光影流转的原生 1080p 电影级动态广告。
虚拟数字人与角色演绎为静止的数字人立绘与肖像画注入灵动的眼神、微笑与转头微动,打造生动的人物特写。
影视概念图动态预演将概念设计原画与分镜静帧直接扩展为动态镜头,直观检验场景光影氛围与镜头运动逻辑。
建筑与空间艺术漫游将室内设计与建筑渲染图转化为平滑推进的运镜漫游片段,展现丰富的空间透视深度。
创作技巧
- 提供高分辨率受光良好的底图:选用轮廓清晰、明暗层次分明的首帧图片,能使 1080p 输出画质达到最佳状态。
- 细致刻画眼神与情绪微动:加入'眼神微微下垂随后直视镜头,嘴角泛起从容笑意'等细节描写,让角色近景极富戏剧张力。
- 结合摄影机轴向协同运镜:将主体动作与镜头运动结合(如'主体迎面走来,镜头同步后退推远'),能大幅强化纵深感。
- 顺应原图姿势描写动作逻辑:确保提示词描写的动作起始点与首帧构图保持一致,动作过渡将更为自然流畅。
- 充分利用 5,000 字符提示词空间:详尽描写环境粒子、微风拂发与镜面反光等物理细节,能深度调动底层仿真能力。
注意事项
- 单首帧输入接口契约:本端点专精于首帧驱动视频生成,仅接收 start_image_url 与 prompt,不支持尾帧输入。
- 固定 6 秒时长标准机制:专为 6 秒高密度超清镜头优化,传入非 6 的时长参数会被接口直接报错拒绝。
- 异步任务机制与积分保障:任务采用 task_id 异步轮询获取;提交成功时冻结积分,若生成失败将自动全额退还。
Hailuo 2.3 Pro Image to Video API 常见问题
Hailuo 2.3 Pro Image to Video API 是什么?
Hailuo 2.3 Pro Image to Video 是 MiniMax 旗下的旗舰级图像生成视频模型,专为商业广告、数字人演绎以及电影级视觉特效打造。它能够将单张首帧参考图片结合最长 5,000 字符的自然语言提示词,转化为原生 1080p 全高清视频,单次成片时长固定为 6 秒。基于 MiniMax 顶尖的大规模多模态视频生成底座,它精准保留原图角色的五官外貌、服饰纹理与光影构图,同时展现真实生动的微表情演变与立体空间视差运镜。你可以通过 Vidgo REST API 轻松集成,也可以直接在上方体验区进行在线试用。
Hailuo 2.3 Pro Image to Video 的成片是原生 1080p 吗?
是的,Hailuo 2.3 Pro Image to Video 在生成阶段即以原生 1080p 全高清分辨率直接渲染画面,而非通过低清画面后期插值放大,能完美呈现发丝纤毫、皮肤纹理与背景深度细节。
Hailuo 2.3 Pro Image to Video 支持哪些图片格式?
通过 API 调用时,start_image_url 参数接收公网可访问的 HTTP(S) 地址,支持 JPG、PNG 与 WebP 常见图片格式。在上方在线体验区中,可以直接上传单张体积不超过 10 MiB 的本地图片。
Hailuo 2.3 Pro Image to Video 支持传入尾帧图片吗?
不支持。本端点专精于首帧单图动态化,仅接收 start_image_url 参数。若需要控制视频结尾的画面落脚点,可以在文本提示词中详尽描述动作演化到最后的定格姿态、镜头焦段与构图景别。
为什么 Hailuo 2.3 Pro Image to Video 仅支持 6 秒时长?
Pro 档位模型将计算资源集中于原生 1080p 每一帧的超清画质、真实物理规律以及极其精细的微表情演变,因此对 6 秒高密度镜头进行了深度架构优化。接口固定要求 duration=6,传入其他数值将导致校验报错。
Hailuo 2.3 Pro Image to Video 如何计费?
该端点按视频单次生成固定计费,每个 6 秒 1080p 视频固定消耗 60 积分(约 $0.300,1 积分 = $0.005)。开启提示词优化器(prompt_optimizer)不会产生额外费用。
什么时候该选择 Hailuo 2.3 Pro Image to Video 而不是 Standard 模式?
当你需要制作奢品广告、数字人特写、电影预演等对原生 1080p 画质、像素级面容还原与细腻微表情有极致要求的成品时,首选 Pro 模式。若项目处于构思探索期、需要 10 秒长镜头或注重成本效益(6 秒仅需 35 积分),Standard Image to Video 模式更为合适。