HiAPI
博客

教程

Seedance 2.5 图生视频 API:首帧、首尾帧和参考图怎么传

一张图动起来,或给首尾两帧让模型补过程;curl、Python 和费用表都在这里。

2026年10月15日 3
Seedance 2.5 图生视频 API:首帧、首尾帧和参考图怎么传
720p / 秒
$0.204
4 秒 720p
$0.816
参考图
最多 30 张

TL;DR

  • seedance-2.5/image-to-video 让一张图动起来,也可以同时给首帧和尾帧,让模型补出中间的过程。单条 4–30 秒,自带声音。打开模型页 就能在线生成,新用户注册送 200 积分。
  • 和文生视频同价:720p 每秒 $0.204,1080p 每秒 $0.516。4 秒 720p 是 $0.816。
  • 两种用法二选一:首帧 / 首尾帧,或者参考图 + 参考音频,不能混用。

先看一条实际效果:首尾帧

给一张「空花盆」当首帧、一张「长满罗勒的花盆」当尾帧,提示词只写中间怎么变:

Time-lapse growth of a basil seedling sprouting and unfurling leaves inside the terracotta pot, smooth continuous motion, soft morning light staying consistent, camera locked off, no cuts

用这个提示词生成 →(上传你的首帧和尾帧,4 秒、720p)

seedance-2.5/image-to-video,首帧 + 尾帧,720p,4 秒,带声音,$0.816。

首尾两张图的构图、光线、道具位置保持一致,只改变你想让视频表现的东西(这里是植物),中间过渡才顺。提示词里的 "soft morning light staying consistent" 是为了不让模型把光线也一起做成延时。

curl:只用首帧

最常见的用法:一张产品图或插画,加一句「接下来怎么动」:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5/image-to-video",
    "input": {
      "prompt": "镜头缓慢推向冒着热气的咖啡杯,热气在晨光中旋转上升,轻微手持晃动",
      "first_frame_url": "https://your-cdn.example.com/coffee-cup.jpg",
      "duration": 5,
      "resolution": "720p"
    }
  }'

返回 taskId:

{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}

查结果:

curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
  -H "Authorization: Bearer $HIAPI_KEY"

status 为 success 后,从 output[0].url 下载视频。

首尾帧:再加一个 last_frame_url

{
  "model": "seedance-2.5/image-to-video",
  "input": {
    "prompt": "同一张书桌从白天到夜晚的延时:日光渐渐变暗,台灯亮起暖光,窗外的城市灯光逐一亮起,镜头固定不动",
    "first_frame_url": "https://your-cdn.example.com/desk-day.jpg",
    "last_frame_url": "https://your-cdn.example.com/desk-night.jpg",
    "duration": 4,
    "resolution": "720p"
  }
}
  • last_frame_url 要和 first_frame_url 一起用。
  • 尾帧和首帧比例不一致时,尾帧会被居中裁剪,最好两张都用同一个比例出图。
  • 画幅跟随首帧,aspect_ratio 只有 adaptive 一个值,不用传。

Python:提交、轮询、下载

# pip install requests;先 export HIAPI_KEY=你的 Key
import os, time, uuid, requests

KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}

def generate(prompt, model="seedance-2.5/image-to-video", timeout_s=900, **params):
    body = {"model": model, "input": {"prompt": prompt, **params}}
    # 重试提交同一个任务时带同一个 Idempotency-Key,避免重复扣费
    headers = {**H, "Idempotency-Key": str(uuid.uuid4())}
    r = requests.post("https://api.hiapi.ai/v1/tasks", json=body, headers=headers, timeout=30)
    r.raise_for_status()
    res = r.json()
    if res.get("code") != 200:
        raise RuntimeError(res)
    task_id = res["data"]["taskId"]
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        d = requests.get(f"https://api.hiapi.ai/v1/tasks/{task_id}", headers=H, timeout=30).json()["data"]
        if d["status"] == "success":
            return d["output"][0]["url"]
        if d["status"] == "fail":
            raise RuntimeError(d)
        time.sleep(10)
    raise TimeoutError(task_id)

url = generate(
    "Time-lapse growth of a basil seedling sprouting and unfurling leaves, camera locked off, no cuts",
    first_frame_url="https://your-cdn.example.com/seedling-start.jpg",
    last_frame_url="https://your-cdn.example.com/seedling-grown.jpg",
    duration=4, resolution="720p",
)
with open("clip.mp4", "wb") as f:
    f.write(requests.get(url).content)

另一种用法:参考图 + 参考音频

不想把某张图钉死成第一帧,而是想让模型「参考」人物长相、产品外观或画风,就改用 reference_image_urls(最多 30 张),还可以加 reference_audio_urls(最多 10 段)参考声音风格:

{
  "model": "seedance-2.5/image-to-video",
  "input": {
    "prompt": "参考图里的女孩背着同款蓝色书包,走过下雨的街角,镜头跟随",
    "reference_image_urls": [
      "https://your-cdn.example.com/girl.jpg",
      "https://your-cdn.example.com/backpack.jpg"
    ],
    "duration": 5,
    "resolution": "720p"
  }
}

注意:参考图、参考音频不能和 first_frame_url / last_frame_url 同时传,二选一。

参数一览

参数 取值 说明
prompt 字符串,必填 写动作、镜头和声音,不用重新描述整张图
first_frame_url 图片 URL 首帧
last_frame_url 图片 URL 尾帧,配合首帧使用
reference_image_urls 最多 30 张 不能和首尾帧同时用
reference_audio_urls 最多 10 段 不能和首尾帧同时用
duration 4–30 的整数,默认 5 单位秒
resolution 720p / 1080p,默认 720p
generate_audio 默认 true 声音和画面一起生成
output_format mp4 / mov

算一下费用

时长 720p($0.204/秒) 1080p($0.516/秒)
4 秒 $0.816 $2.064
5 秒 $1.02 $2.58
10 秒 $2.04 $5.16
15 秒 $3.06 $7.74

首尾帧和单首帧同价,费用只看分辨率和秒数。更细的账看 Seedance 2.5 API 价格。

上线前注意

  • 图片地址要能公开访问:HTTP(S) 地址或 data URL 都行,内网地址模型拿不到。
  • 用回调代替轮询:请求顶层加 "callback": {"url": "https://你的域名/hiapi/callback"},按 taskId 去重。
  • 及时转存:output[0].url 是临时链接,拿到后马上存到自己的存储。
  • 重试带幂等键:请求头加 Idempotency-Key,同一个键重试只创建一次任务。
  • 失败自动退款:只按成功生成的视频计费。

常见问题

首尾帧中间出现「叠化」怎么办?

两张图差别太大时,中间一两秒容易像两张图在叠化。让两张图的构图和道具保持一致、只改变主体,再在提示词里写 "camera locked off, no cuts"。

可以只给尾帧吗?

不行,尾帧要配合首帧一起用。

能指定竖屏吗?

画幅跟随首帧,要竖屏就上传竖屏的首帧图。

首帧和参考图有什么区别?

首帧会原样成为视频第一帧;参考图只是让模型参考外观和风格,画面可以重新构图。

只有提示词、没有图?看 Seedance 2.5 文生视频 API。想要更多首帧写法,看 Seedance 2.5 使用手册,或者直接去模型页上传一张图试试。

立即开始构建持久 AI 产物

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

阅读 API 文档