HiAPI
博客

使用指南

Ray 3.2 图生视频:把静态图片变成竖屏短视频片段

把你已有的产品图和人物肖像做成 9:16 视频片段,外加一个经验证可用的 end_image_url 无缝循环技巧

2026年11月1日
Ray 3.2 图生视频:把静态图片变成竖屏短视频片段

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 步:提示运动,而不是场景

图像已经说明了镜头里有什么。提示词只需要说明它如何运动。本批次中有效的三件事:

  1. 指定一个镜头运动(推镜、轻柔漂移、固定机位),并说明什么应保持静止。
  2. 给主体一两个物理节拍,比如水滴滑落、光线扫过或头发随风扬起。这正是让 5 秒片段显得生动、而不是像 Ken Burns 平移的原因。
  3. 选择适合素材类型的运动。产品需要缓慢、可控的光影变化。人物可以承受更大、更温暖的运动会。

产品片段(上面的封面片段)。提示词:

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 如何处理图生视频短视频。

立即开始构建持久 AI 产物

获取 API 密钥,通过一个基于任务(task)的 API 调用图像、视频和音频模型。

阅读 API 文档