Begin exactly from Image 1 and finish on Image 2. In one continuous four-second shot, the same beige vintage compact car switches on its lights, rolls from the wet shoulder into the near lane, and drives away along the forest-road curve. Use one stable, gentle pan only. Preserve the exact car body, beige paint, wheels, forest, road geometry, camera height, mist, and dawn lighting. Keep the movement physically plausible, with restrained tire spray and stable reflections, and settle cleanly into the final composition without morphing. Synchronized audio: one quiet engine start, tires on wet asphalt, light rain, and distant forest ambience. No cuts, no people, no extra vehicles, no readable text, no logos, no products, no advertising, no watermark.
Seedance 2.0 Mini Image-to-Video API
seedance-2.0-mini/image-to-videoSeedance 2.0 Mini Image-to-Video API 将一张必填首帧和一张可选尾帧生成 4–15 秒的 480p 或 720p 视频。首帧必须放在 image_urls 第一项,尾帧放在第二项,aspect_ratio 只能使用 auto。
输入
拖拽文件、粘贴剪贴板素材,或输入 URL。
拖拽文件、粘贴剪贴板素材,或输入 URL。
生成音频
请求模型随视频生成音轨。
高级参数
返回最后一帧
保留视频主结果,并把最后一帧作为额外文件返回。
联网搜索
发送可选的 web_search 布尔字段。
输出
等待运行生成文件会显示在这里
设置输入、选择时长,然后运行异步视频任务。
继续使用
示例
REST API
快速开始
认证,提交一个公开首帧 URL,然后取得异步视频结果。
连接 Vidgo API
在服务端保存 VIDGO_API_KEY,并通过 Bearer Header 发送。
- 接口
- POST
https://api.vidgo.ai/api/generate/submit - 认证
- Authorization: Bearer VIDGO_API_KEY
提交一个生成任务
最小请求包含提示词、时长和一个 image_urls 项。
curl --request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "seedance-2.0-mini/image-to-video",
"input": {
"prompt": "Begin exactly from Image 1 and finish on Image 2. In one continuous four-second shot, the same beige vintage compact car switches on its lights, rolls from the wet shoulder into the near lane, and drives away along the forest-road curve. Use one stable, gentle pan only. Preserve the exact car body, beige paint, wheels, forest, road geometry, camera height, mist, and dawn lighting. Keep the movement physically plausible, with restrained tire spray and stable reflections, and settle cleanly into the final composition without morphing. Synchronized audio: one quiet engine start, tires on wet asphalt, light rain, and distant forest ambience. No cuts, no people, no extra vehicles, no readable text, no logos, no products, no advertising, no watermark.",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "auto",
"image_urls": [
"https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0-mini/image-to-video/v1/input-start-frame.png",
"https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0-mini/image-to-video/v1/input-end-frame.png"
],
"generate_audio": true,
"seed": 24082402
}
}'等待结果
只轮询非终态,或提供 callback_url 接收扁平终态对象。
查询状态
GET https://api.vidgo.ai/api/generate/status/ZC7XZS2EAVXDCRBQ初始每 2–5 秒查询,长任务逐步退避;finished 或 failed 停止。网络超时与任务 failed 必须分别处理,也可以使用 callback_url。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "ZC7XZS2EAVXDCRBQ",
"status": "running",
"created_time": "2026-08-24T08:56:39"
}
}{
"code": 200,
"data": {
"task_id": "ZC7XZS2EAVXDCRBQ",
"status": "finished",
"created_time": "2026-08-24T08:56:39",
"progress": 100,
"error_message": null,
"files": [
{
"file_type": "video",
"file_url": "https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0-mini/image-to-video/v1/output.mp4"
}
]
}
}完整可运行示例
展开脚本包含提交、轮询、失败、超时与结果提取。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "seedance-2.0-mini/image-to-video",
"input": {
"prompt": "Begin exactly from Image 1 and finish on Image 2. In one continuous four-second shot, the same beige vintage compact car switches on its lights, rolls from the wet shoulder into the near lane, and drives away along the forest-road curve. Use one stable, gentle pan only. Preserve the exact car body, beige paint, wheels, forest, road geometry, camera height, mist, and dawn lighting. Keep the movement physically plausible, with restrained tire spray and stable reflections, and settle cleanly into the final composition without morphing. Synchronized audio: one quiet engine start, tires on wet asphalt, light rain, and distant forest ambience. No cuts, no people, no extra vehicles, no readable text, no logos, no products, no advertising, no watermark.",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "auto",
"image_urls": [
"https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0-mini/image-to-video/v1/input-start-frame.png",
"https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0-mini/image-to-video/v1/input-end-frame.png"
],
"generate_audio": true,
"seed": 24082402
}
}
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')
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
while true; do
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/ZC7XZS2EAVXDCRBQ" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
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 2
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数
model 与 callback_url 位于顶层;input 只接受公共字段和有序 image_urls。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | 必须为 seedance-2.0-mini/image-to-video。 |
| callback_url | string (URL) | 否 | — | 公开终态回调地址。 |
| input | object | 是 | — | 模型输入对象。 |
| input.prompt | string | 是 | — | trim 后 1–20,000 个字符。 |
| input.image_urls | string[] | 是 | — | 1 个首帧 URL 和可选第 2 个尾帧 URL。 |
| input.duration | integer | 是 | — | 4–15 的整数,包括 4 和 15。 |
| input.resolution | string | 否 | 720p | 480p 或 720p。 |
| input.aspect_ratio | string | 否 | — | 省略或仅发送 auto。 |
| input.generate_audio | boolean | 否 | — | 可选生成音频。 |
| input.return_last_frame | boolean | 否 | — | 可选最后一帧。 |
| input.web_search | boolean | 否 | — | 可选的 boolean 字段。 |
| input.seed | integer | 否 | — | 无公开范围。 |
响应字段
提交返回任务身份;状态返回进度、所有文件或终态错误。
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | 业务码,成功为 0 或 200。 |
| message | string | 响应消息。 |
| data.task_id | string | 状态查询 ID。 |
| data.status | string | 四种公开状态。 |
| data.created_time | string | 创建时间。 |
| data.progress | integer | 进度。 |
| data.files[] | array | 全部成功文件。 |
| data.files[].file_url | string | 结果 URL。 |
| data.files[].file_type | string | 视频、图片或其他类型。 |
| data.files[].watermark_url | string | null | 水印地址。 |
| data.error_message | string | null | 失败信息。 |
任务生命周期
只轮询非终态。
not_started已接收并排队。
running生成中。
finished成功终态,读取全部文件。
failed失败终态,停止并读取错误。
轮询与错误
- 认证401 表示 Bearer Key 缺失或无效。
- 校验400 表示字段、帧数量或比例无效。
- 轮询间隔从 2–5 秒开始,长任务、429 或 5xx 退避。
- 终态finished 或 failed 立即停止,并设置超时。
- 回调callback_url 接收扁平终态任务对象。
模型规格
| 规格 | 取值 | 说明 |
|---|---|---|
| 输入模式 | 1–2 帧 | image_urls 中必填首帧与可选尾帧。 |
| 输出 | 视频 + 可选最后一帧 | 异步混合文件结果。 |
| 分辨率 | 480p / 720p | 默认 720p。 |
| 时长 | 4–15 秒 | 整数范围。 |
| 画面比例 | Auto | 其他值会被拒绝。 |
| 计费 | 10 或 24 积分/秒 | 按输出秒数。 |
相关模型
Seedance 2.0 Mini Image-to-Video API — 常见问题
Seedance 2.0 Mini Image-to-Video API 是什么?
Seedance 2.0 Mini Image-to-Video API 将一张首帧和一张可选尾帧生成视频。image_urls 第一项是首帧,第二项是尾帧;请求成功后返回用于查询异步任务的 task_id。
如何调用 Seedance 2.0 Mini Image-to-Video API?
使用 Bearer Key 向 /api/generate/submit 发送 POST,将模型 ID 设置为 seedance-2.0-mini/image-to-video,并在 input.image_urls 中提供一到两个公开 HTTP(S) URL。取得 task_id 后查询任务状态,或提供 callback_url。
Seedance 2.0 Mini Image-to-Video API 如何计费?
480p 每个输出秒使用 10 积分($0.050),720p 每个输出秒使用 24 积分($0.120)。时长和分辨率相同时,提交一张或两张图片的费率相同。
Seedance 2.0 Mini Image-to-Video API 支持哪些输入?
input 必须包含 prompt、4–15 的整数 duration 和包含一到两个有序图片 URL 的 image_urls。resolution 接受 480p 或 720p,aspect_ratio 只能省略或发送 auto。
如何获取 Seedance 2.0 Mini Image-to-Video API 的生成结果?
仅在状态为 not_started 或 running 时查询任务。状态变为 finished 或 failed 后停止查询;data.files 包含视频以及服务返回的其他文件。
三种 Seedance 2.0 Mini API 应该如何选择?
需要首帧和可选尾帧时使用 Seedance 2.0 Mini Image-to-Video API;没有源素材时使用 Seedance 2.0 Mini Text-to-Video API;需要图片、视频或音频参考时使用 Seedance 2.0 Mini Reference-to-Video API。















