使用指南
Ray 3.2 图生视频:把静态图片变成竖屏短视频片段
把你已有的产品图和人物肖像做成 9:16 视频片段,外加一个经验证可用的 end_image_url 无缝循环技巧
TL;DR
- 这是什么:一套可重复的工作流,用 hiapi 异步任务 API 上的 ray-3.2/image-to-video,把你已有的静态图片(比如产品图或人像)变成竖屏短视频片段。
- 决定一切的关键事实:ray-3.2 i2v 没有
aspect_ratio,也没有duration字段。片段的形状来自输入图像,长度始终约为 5 秒。要得到 9:16 竖屏,就输入 9:16 的静态图。全部诀窍就在这里。 - 相比我们之前教程的新变化:schema 现在接受可选的
end_image_url(尾帧)。如果你把同一张图片同时作为首帧和尾帧,就能得到一段结束于起点的片段,这正是无缝循环所需要的。 - 验证:下面每个片段都是为本文在一次 fan-out 批处理中生成的。三个 540p 片段,每个 $0.2145(总计 $0.6435),服务端每个耗时 41–58 秒。三个返回的都是 540×960、24fps、5.04s、无声的 MP4。
大多数短视频团队并不缺创意。他们手里有一堆产品图、广告静态图和创作者人像,却从不动起来。图生视频解决了这个问题:你的画面保持为锚点,模型负责添加运动。本指南用 Ray 3.2 端到端覆盖这项工作:准备静态图、编写运动提示词、批处理、循环技巧,以及剪辑时要修正什么。
图生视频还是文生视频:你需要哪个?
Ray 3.2 在 hiapi 上有两个独立端点,适合不同的短视频任务:
- 图生视频(本页):你已经有了画面。模型必须保留你的产品、你的模特和你的光线,只给它添加动画。适用于产品图展示、目录到 Reels、创作者静态图,以及任何品牌准确性优先于新奇感的片段。
- 文生视频:你有想法但没有素材。模型负责构图整个镜头。如果你的情况是这样,我们的 Ray 3.2 文生视频短视频工作流 覆盖了仅凭提示词批量生成概念的方法。
这两个工作流确实不同。文生视频时,你通过传入 aspect_ratio: "9:16" 来选择竖屏画幅。图生视频时,该字段不存在,因此构图是在 API 调用之前、准备静态图时决定的。
请求:三个必填或常用字段,一个新的可选字段
我们在 2026-11-01 对照实时 API 逐字段检查了 schema。它是封闭的,所以未知键会返回 400:
| 字段 | 必填 | 取值 | 说明 |
|---|---|---|---|
prompt |
是 | 文本 | 描述运动,而不是场景。场景已经在你的图像里了 |
image_url |
是 | 公开 URL | 首帧。它决定输出的宽高比 |
resolution |
否 | 540p、720p、1080p |
你唯一付费的东西(见下文) |
end_image_url |
否 | 公开 URL | 可选的尾帧。自我们的操作指南写成以来新增 |
duration 和 aspect_ratio 仍然会被直接拒绝(additional properties 'duration' not allowed)。你可能猜到的其他尾帧名称,比如 last_frame_url、tail_image_url 或 end_frame_url,也会以同样方式被拒绝。字段就是 end_image_url,没有别的。
单个竖屏片段:
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Slow cinematic push-in toward the serum bottle, a single water droplet slides down the amber glass...",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}'
你会得到 data.taskId。轮询 GET /v1/tasks/{taskId},直到 data.status 为 success(或 fail),然后立即下载 output[0].url,因为它是带 expireAt 的临时链接。操作指南 有完整的 Python 提交/轮询/下载脚本和错误负载,快速开始 覆盖了密钥和任务 API 基础知识。
定价:分辨率是唯一的杠杆
ray-3.2/image-to-video 的实时价格(来自撰写时的 hiapi 定价;请始终在那里重新核对):
| 分辨率 | 每段价格 |
|---|---|
| 540p | $0.2145 |
| 720p | $0.429 |
| 1080p | $1.7145 |
片段长度固定,宽高比来自你的图像,所以你永远不会为竖屏额外付费,也没有“更长片段”选项可以让你自我升级。一个 1080p 片段的费用相当于八个 540p 片段。因此短视频的模式与任何按片段计费的视频模型相同:在 540p 下运行运动测试,然后只对胜出的提示词 + 静态图按 720p 或 1080p 重新渲染,用于你要发布的版本。关于两个端点的完整 Ray 3.2 成本图景,请参阅 Ray 3.2 API 定价明细。
第 1 步:准备一张 9:16 的静态图(竖屏就从这里来)
模型无法重新构图你的镜头,所以静态图在提交前必须正确:
- 做成 9:16。我们使用了 720×1280 的静态图。在
540p下它们返回为 540×960,原生竖屏,之后无需裁剪。横屏产品图会给你横屏片段,所以先将其裁剪或扩展为 9:16。 - 为运动留出余量。镜头运动会推入画面。我们的精华液静态图在瓶子上方有大量空白背景,推镜利用了这个空间,没有裁掉瓶盖。
- 把钩子设在画面本身。片段的第一帧就是你的图像,所以任何能阻止划走的东西(产品、面部、光线)必须已经在静态图里。
本文的两张静态图都是用 gpt-image-2 生成为原生 9:16 图像。在实际使用中,你会放入自己的产品图或人像:

第 2 步:提示运动,而不是场景
图像已经说明了镜头里有什么。提示词只需要说明它如何运动。本批次中有效的三件事:
- 指定一个镜头运动(推镜、轻柔漂移、固定机位),并说明什么应保持静止。
- 给主体一两个物理节拍,比如水滴滑落、光线扫过或头发随风扬起。这正是让 5 秒片段显得生动、而不是像 Ken Burns 平移的原因。
- 选择适合素材类型的运动。产品需要缓慢、可控的光影变化。人物可以承受更大、更温暖的运动会。
产品片段(上面的封面片段)。提示词:
Slow cinematic push-in toward the serum bottle, a single water droplet slides
down the amber glass, a band of warm light sweeps across the bottle from left
to right and makes the gold cap glint, the background stays dark and still,
premium skincare commercial
推镜和光线扫过效果很好,瓶身形状和金色瓶盖保持住了。一个诚实的注意点:当光线扫过时,滴管的黑色橡胶球变成了更浅、更像金属的颜色。对于真实 SKU,这是品牌团队会指出的那种细节漂移。发布前逐帧检查产品细节,如果某个部件持续漂移,尝试更弱的光线扫过指令,或将运动保持在背景上。
人像 / 创作者静态图。提示词:
The wind lifts her curls, she turns her head slightly toward the camera and
her half-smile widens into a warm smile, the golden-hour backlight flickers
through her hair, the camera holds steady with a very gentle drift, natural
lifestyle feel
面部、毛衣和黄金时刻的光线保持一致,转头和微笑也到位了。不过 Ray 3.2 的镜头运动比“非常轻柔的漂移”所暗示的更大:到最后一帧时,她已经移动到了画面另一侧,身后的天际线也移动了。对于人物镜头,预期模型会宽松地理解你的运动提示。如果你需要固定画面,请明确说明,就像我们在下面的循环提示词中所做的那样。
第 3 步:用 end_image_url 实现循环技巧
循环在短视频信息流中表现很好。一段能够无缝重新开始的片段会被重复播放,它也可以作为字幕或产品标注的背景。Ray 3.2 的可选 end_image_url 让这变得容易:将同一张静态图同时作为首帧和尾帧,模型就必须回到起点。
{
"model": "ray-3.2/image-to-video",
"input": {
"prompt": "Seamless loop: the warm light slowly brightens and dims across the serum bottle, water droplets glisten, a faint wisp of mist drifts past the stone and fades out, the camera stays locked off, the bottle does not move",
"image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"end_image_url": "https://your-cdn.example.com/serum-9x16.jpg",
"resolution": "540p"
}
}
我们进行了测量,而不是目测。我们提取了每个片段的首帧和尾帧,并用 SSIM 进行比较(1.0 表示完全相同):
| 片段 | end_image_url |
首帧对尾帧 SSIM |
|---|---|---|
| 循环(同一静态图作为尾帧) | 是 | 0.958 |
| 产品推镜 | 否 | 0.654 |
| 人像 | 否 | 0.410 |
固定尾帧后,片段结束的位置几乎与开始时完全相同,足够接近,以至于在编辑器或平台自动重播时进行简单重复,也不会出现明显的跳变。不固定时,片段会在新的位置结束,这对剪切来说没问题,但对循环不行。需要记住两件事:
- 保持循环运动是周期性的。光线变亮再变暗、雾气飘入再飘出、固定机位都可以。推镜无法在五秒内令人信服地“返回”。
- 我们只测试了同图循环。传入不同的尾帧(例如,首帧是关闭的盒子,尾帧是打开的盒子)正是该字段的设计用途,但我们没有在此验证那些结果,所以在基于它构建广告活动前请先测试。
第 4 步:批处理:先 fan out,再收集
任务 API 是异步的,所以不要一次渲染一个片段。先提交所有静态图 + 提示词对,拿到每个 taskId 的瞬间就保存到磁盘,然后再轮询:
for each (still, prompt) pair:
taskId = POST /v1/tasks (model=ray-3.2/image-to-video, input={...})
persist taskId immediately # the task is billed at submit
for each saved taskId:
poll GET /v1/tasks/{taskId} until status in ("success", "fail")
on success: download output[0].url now (it expires)
我们的三片段批次连续提交,服务端耗时分别为 44 秒(产品)、41 秒(循环)和 58 秒(人像)。由于它们并行运行,整个批次耗时大约与最慢的片段一样长,包括 8 秒轮询间隔在内,实际时间略超过一分钟。如果轮询因网络波动失败,请重试同一个 id。重新提交会创建并计费第二个片段。
第 5 步:在编辑器中完成
API 给你的是原始素材,不是成品帖子:
- 没有音频。三个片段都只有一个 H.264 视频流,没有音轨。在编辑器中添加热门声音、旁白或字幕。
- 5 秒是一个节拍。将三到四个片段堆叠起来(例如产品推镜 → 作为字幕背景的循环 → 创作者反应),剪辑成 15–20 秒的版本,并在节拍上硬切。
- 只对胜出者进行放大。对选定的静态图 + 提示词按 720p 或 1080p 重新运行,用于最终导出,而不是以高分辨率渲染整个批次。
FAQ
如何从 ray-3.2 图生视频获得 9:16 竖屏片段?提供 9:16 的输入图像。没有 aspect_ratio 参数,输出会跟随输入的形状。720×1280 的静态图在 540p 下返回为 540×960 的片段。
我能让片段超过 5 秒吗?这个端点不行。没有 duration 字段,发送它会返回 400。我们生成的每个片段都是 5.04 秒(24fps 下 121 帧)。在剪辑中堆叠片段以获得更长的版本。
Ray 3.2 i2v 支持尾帧吗?支持。可选的 end_image_url 字段设置最终帧。将同一张图像作为 image_url 传入,会得到可循环播放的片段(在我们的测试中,首帧对尾帧 SSIM 为 0.958)。
它会生成声音吗?不会,输出的 MP4 是无声的。
它会完全保持我的产品原样吗?在我们的测试中,形状、颜色和整体构图保持得很好,但小部件在强光运动下可能会漂移(我们的滴管球颜色发生了变化)。发布前请检查产品细节。
一个批次要花多少钱?仅按分辨率和片段数计费:540p 为 $0.2145,720p 为 $0.429,1080p 为 $1.7145。我们的三片段测试批次为 $0.6435。
开始让你的静态图动起来
Ray 3.2 图生视频现已在异步任务 API 上线。打开 ray-3.2/image-to-video 模型页面 查看当前参数和定价,然后拿出三张现有的 9:16 静态图,在 540p 下运行它们。你将以远低于一美元的价格获得一个测试批次。正在为同一任务比较模型?看看 Kling 3.0 如何处理图生视频短视频。
相关文章
查看全部文章 →-
使用指南
GPT Image 2.6 是什么?markup 编辑与已知规格
OpenAI API 规范里关于 GPT Image 2.6 的全部信息、新 markup 编辑参数怎么用,以及还没公布的部分。
4 -
使用指南
Vidu Q4 Preview API 多少钱?540p 每秒 $0.0515
两个模式同价,五档分辨率、3–16 秒怎么计费,$10 能跑多少条,以及和站内视频模型的价格对照。
3 -
使用指南
Recraft V4.1 Flash 电商产品图:每张 $0.01 批量目录图
在 recraft-v4.1-flash/text-to-image 上的一次真实并行批量:商品列表图与场景图、实测背景白度、耗时以及批量脚本。