搜索

搜索 HiAPI 模型、工具和资源。

返回博客
教程3 分钟阅读

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

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

HiAPI 编辑部Seedance 2.5API 教程图生视频

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 段不能和首尾帧同时用
duration4–30 的整数,默认 5单位秒
resolution720p / 1080p,默认 720p
generate_audio默认 true声音和画面一起生成
output_formatmp4 / 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 使用手册,或者直接去模型页上传一张图试试。

现在就用 HiAPI 生成

选一个模型,输入你的提示词,直接查看生成结果。

HiAPI Blog

相关文章

HiAPI

现在就用 HiAPI 生成

开始生成