Begin exactly from Image 1 and finish on Image 2. In one continuous four-second locked-camera shot, the same observatory dome opens along its existing seam while the same telescope rises from its stowed position and rotates upward through the opening. Preserve the building footprint, white metal panels, concrete base, service opening, telescope construction, foreground rocks, mountains, frost, star field, camera position, crop, and blue-hour color throughout. Mechanical movement must be continuous, correctly hinged, and free of warping; settle cleanly into the final composition. Synchronized audio: a low dome motor, two restrained gear changes, a soft metal stop, and distant alpine wind. No cuts, no people, no vehicles, no extra structures, no readable text, no logos, no brands, no products, no advertising, no watermark.
Seedance 2.0 图片生成视频
seedance-2.0/image-to-videoSeedance 2.0 图片生成视频接口以必填首帧确定主体和构图,可用可选尾帧约束结束状态。请分开描述主体运动与镜头运动,输出时长为 4–15 秒,画面比例固定为 Auto,最高支持 4K。
输入
必须上传首帧;尾帧不会自动替代首帧。
自动高级参数
生成音频
请求模型随视频生成音轨。
返回最后一帧
保留视频主结果,并把最后一帧作为额外文件返回。
联网辅助
发送可选的联网辅助生成字段。
输出
等待运行生成文件会显示在这里
设置输入、选择时长,然后运行异步视频任务。
继续使用
示例
REST API
快速开始
完成认证,提交最小合法的图片生成视频请求,再取得异步视频结果。
连接 Vidgo API
创建 API 密钥,仅保存在服务端,并通过 Bearer Header 发送。
- 端点
- POST
https://api.vidgo.ai/api/generate/submit - 认证
- Authorization: Bearer VIDGO_API_KEY
提交一个生成任务
发送精确模型 ID 和当前模式必填字段,成功后立即取得 task_id。
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/image-to-video",
"callback_url": "https://httpbin.org/post",
"input": {
"prompt": "Begin exactly from Image 1 and finish on Image 2. In one continuous four-second locked-camera shot, the same observatory dome opens along its existing seam while the same telescope rises from its stowed position and rotates upward through the opening. Preserve the building footprint, white metal panels, concrete base, service opening, telescope construction, foreground rocks, mountains, frost, star field, camera position, crop, and blue-hour color throughout. Mechanical movement must be continuous, correctly hinged, and free of warping; settle cleanly into the final composition. Synchronized audio: a low dome motor, two restrained gear changes, a soft metal stop, and distant alpine wind. No cuts, no people, no vehicles, no extra structures, no readable text, no logos, no brands, 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/image-to-video/v1/input-start-frame.png",
"https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0/image-to-video/v1/input-end-frame.png"
],
"generate_audio": true,
"seed": 26082702
}
}'等待结果
仅轮询 not_started 或 running,或使用 callback_url 接收平铺终态对象。
跟踪状态
GET https://api.vidgo.ai/api/generate/status/8HZGPXXLKL5B39OS初始轮询间隔约 2 秒,长任务逐步退避并设置超时。finished 与 failed 都是终态。网络失败、请求超时和任务失败应分别处理;callback_url 使用同一请求契约。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "8HZGPXXLKL5B39OS",
"status": "running",
"created_time": "2026-08-27T14:16:55"
}
}{
"code": 200,
"data": {
"task_id": "8HZGPXXLKL5B39OS",
"status": "finished",
"progress": 100,
"created_time": "2026-08-27T14:16:55",
"error_message": null,
"files": [
{
"file_type": "video",
"file_url": "https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0/image-to-video/v1/output.mp4"
}
]
}
}完整可运行示例
示例包含 HTTP 与业务码检查、task_id 校验、退避轮询、超时、终态与结果提取。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "seedance-2.0/image-to-video",
"callback_url": "https://httpbin.org/post",
"input": {
"prompt": "Begin exactly from Image 1 and finish on Image 2. In one continuous four-second locked-camera shot, the same observatory dome opens along its existing seam while the same telescope rises from its stowed position and rotates upward through the opening. Preserve the building footprint, white metal panels, concrete base, service opening, telescope construction, foreground rocks, mountains, frost, star field, camera position, crop, and blue-hour color throughout. Mechanical movement must be continuous, correctly hinged, and free of warping; settle cleanly into the final composition. Synchronized audio: a low dome motor, two restrained gear changes, a soft metal stop, and distant alpine wind. No cuts, no people, no vehicles, no extra structures, no readable text, no logos, no brands, 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/image-to-video/v1/input-start-frame.png",
"https://cdn.vidgo.ai/apis/models/bytedance/seedance-2.0/image-to-video/v1/input-end-frame.png"
],
"generate_audio": true,
"seed": 26082702
}
}
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/8HZGPXXLKL5B39OS" \
--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,额外属性会被拒绝或忽略。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | 必须为 seedance-2.0/image-to-video. |
| callback_url | string (URL) | 否 | — | 接收终态任务对象的公开 HTTP(S) 地址。 |
| input | object | 是 | — | 只包含当前模式公开字段。 |
| input.prompt | string | 必填 | — | trim 后 1–20,000 个字符;体验区提供示例提示词。 |
| input.duration | integer | 必填 | — | 4–15 的整数,包含边界;体验区默认 5 秒。 |
| input.resolution | string | 必填 | 720p | 支持 480p、720p、1080p、4k;体验区默认 720p。 |
| input.aspect_ratio | string | 必填 | auto | 只能显式发送 auto。 |
| input.image_urls | string[] | 必填 | — | 1–2 个公开 HTTP(S) 图片 URL;顺序为首帧、可选尾帧。 |
| input.generate_audio | boolean | 可选 | true | boolean;体验区默认并显式发送 true。 |
| input.return_last_frame | boolean | 可选 | false | boolean;体验区默认并显式发送 false。 |
| input.web_search | boolean | 可选 | false | boolean;体验区默认并显式发送 false。 |
| input.seed | integer | 可选 | — | 整数;公开契约未声明范围,留空时省略。 |
| 不接受的媒体字段 | — | — | — | start_image_url, end_image_url, reference_*_urls, video_url, video_urls |
响应字段
提交响应提供任务身份,状态响应提供进度、全部结果文件或失败信息。
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | 业务返回码;成功兼容 0 与 200。 |
| message | string | 可选的响应或错误说明。 |
| data.task_id | string | 提交后用于查询状态的任务 ID。 |
| data.status | string | not_started, running, finished, or failed. |
| data.created_time | string | 任务创建时间。 |
| data.progress | integer | 已报告的完成百分比。 |
| data.files[] | array | 按返回顺序排列的全部结果文件。 |
| data.files[].file_url | string | 结果文件直链。 |
| data.files[].file_type | string | video、image 或其他公开类型。 |
| data.files[].watermark_url | string | null | 后端提供时的水印文件 URL。 |
| data.error_message | string | null | 失败终态的错误说明。 |
任务生命周期
not_started 与 running 为非终态;finished 与 failed 为终态。
not_started请求已接收,等待执行。
running生成进行中,按退避策略继续轮询。
finished成功终态,读取全部 files。
failed失败终态,读取 error_message 并停止。
轮询与错误
- 认证401 表示 Bearer Key 缺失或无效,修正后再请求。
- 校验400 表示请求违反当前端点契约,按字段错误修正。
- 余额不足余额不足与普通 400 分开提示所需积分和美元金额。
- 轮询与超时约 2 秒开始并逐步退避;网络失败和客户端超时不是任务 failed。
- 终态与 callbackfinished 或 failed 立即停止;callback_url 可接收同一任务的平铺终态对象。
模型规格
| 规格 | 取值 | 说明 |
|---|---|---|
| 输入模式 | 1–2 张图片 | 首帧必填,尾帧可选。 |
| 输出 | 异步视频任务 | 可能返回多个文件,按顺序全部展示。 |
| 分辨率 | 480p / 720p / 1080p / 4k | Standard 提供完整四档。 |
| 时长 | 4–15 秒整数 | 包含边界值。 |
| 画面比例 | auto | 图片模式只能为 auto。 |
| 计费依据 | 输出秒数 | 480p: 20 credits ($0.100)/s; 720p: 40 credits ($0.200)/s; 1080p: 90 credits ($0.450)/s; 4k: 200 credits ($1.000)/s |
Seedance 2.0 图片生成视频
Seedance 2.0 图片生成视频接口以必填首帧确定主体和构图,可用可选尾帧约束结束状态。请分开描述主体运动与镜头运动,输出时长为 4–15 秒,画面比例固定为 Auto,最高支持 4K。
为什么选择这个接口?
首尾帧顺序明确。首帧必填、尾帧可选,数组顺序直接表达镜头边界。
分辨率范围完整。可在 480p、720p、1080p 与 4K 之间按交付需要选择。
时长控制连续。可选择 4–15 秒范围内的任意整数,不受少数预设时长限制。
音频与末帧可控。可显式请求生成音轨、返回末帧,并保留联网辅助与 seed 控制。
参数
| 参数 | 要求 | 说明 |
|---|---|---|
| prompt | 必填 | trim 后 1–20,000 个字符;体验区提供示例提示词。 |
| duration | 必填 | 4–15 的整数,包含边界;体验区默认 5 秒。 |
| resolution | 必填 | 支持 480p、720p、1080p、4k;体验区默认 720p。 默认值 720p480p1080p4k |
| aspect_ratio | 必填 | 只能显式发送 auto。 默认值 auto |
| image_urls | 必填 | 1–2 个公开 HTTP(S) 图片 URL;顺序为首帧、可选尾帧。 |
| generate_audio | 可选 | boolean;体验区默认并显式发送 true。 默认值 true |
| return_last_frame | 可选 | boolean;体验区默认并显式发送 false。 默认值 false |
| web_search | 可选 | boolean;体验区默认并显式发送 false。 默认值 false |
| seed | 可选 | 整数;公开契约未声明范围,留空时省略。 |
使用方法
添加首帧上传必填首帧,并按需添加不会自动前移的尾帧。
描述动作用具体动词说明主体运动,并与镜头移动分开书写。
设置输出选择 480p、720p、1080p、4k、4–15 秒时长和适用画面比例。
检查高级参数确认音频、末帧、联网辅助与 seed 是否符合本次任务。
提交并跟踪运行请求,再轮询任务 ID 或处理终态 callback。
价格
1 积分 = $0.005。总积分等于输出时长乘以所选分辨率费率。高级参数、图片数与音频数不改变当前公式。
| 计费项 | 费率 | 说明 |
|---|---|---|
| 480p 输出 | 20 积分/输出秒 | $0.100/秒;5 秒为 100 积分($0.500)。 |
| 720p 输出 | 40 积分/输出秒 | $0.200/秒;5 秒为 200 积分($1.000)。 |
| 1080p 输出 | 90 积分/输出秒 | $0.450/秒;5 秒为 450 积分($2.250)。 |
| 4k 输出 | 200 积分/输出秒 | $1.000/秒;5 秒为 1000 积分($5.000)。 |
适用场景
产品图动画从产品首帧生成带明确镜头运动的短视频资产。
角色镜头使用源画面,并描述表情、姿态和镜头变化。
关键帧过渡使用首尾帧约束可读的状态变化。
静态广告转视频把现有平面素材转为 4–15 秒动态版本。
实用技巧
- 按主体与场景、动作、镜头、光线氛围、声音意图的顺序写提示词。
- 描述图片之后发生什么,不要重复静态画面中已经明确的内容。
- 用具体运动动词,并把主体运动与镜头运动分开。
- 先确定画面比例和构图,再描述主体在画面中的位置。
- 需要节奏变化时,说明开场、发展与结束三个动作节点。
注意事项
- 只能发送 image_urls,顺序为首帧、可选尾帧,比例必须为 auto。
- resolution 在公开 OpenAPI 中为必填,示例与体验区始终显式发送。
- 体验区上传策略是 JPEG/PNG/WebP 30 MB、MP4/WebM/MOV 50 MB、MP3/WAV 15 MB,不代表完整上游文件契约。
- Standard 接受 480p、720p、1080p 与 4K。
- 任务为异步流程,只在 not_started 与 running 时继续轮询。
关于 Seedance 2.0 图片生成视频 API 的常见问题
Seedance 2.0 图片生成视频 API 是什么?
Seedance 2.0 是 ByteDance Seedance 模型。当前图片生成视频端点接收提示词、必填首帧和可选尾帧,并按照文档中的 REST 请求结构返回异步视频生成任务。
如何调用 Seedance 2.0 图片生成视频 API?
通过 Authorization: Bearer VIDGO_API_KEY 调用 POST /api/generate/submit。成功响应包含 task_id,可用于统一状态查询。
Seedance 2.0 图片生成视频 API 如何计费?
按输出秒数乘以分辨率费率计算。480p: 20 credits ($0.100)/s; 720p: 40 credits ($0.200)/s; 1080p: 90 credits ($0.450)/s; 4k: 200 credits ($1.000)/s。
Seedance 2.0 图片生成视频 API 接受哪些输入?
接受 1–20,000 字符提示词、4–15 秒整数、480p、720p、1080p、4k,以及按首帧、尾帧顺序排列的 1–2 个 image_urls;aspect_ratio 只能为 auto。
如何获取生成视频?
轮询 GET /api/generate/status/{task_id},或提交 callback_url。只在 not_started、running 时继续;finished 后从 data.files[].file_url 读取全部结果,failed 时停止并处理错误。
应该选择哪个 Seedance 2.0 端点?
无源素材选择 Text,首帧或首尾帧选择 Image,需要图片、视频或音频共同引导时选择 Reference。Standard 提供到 4K 的更多分辨率,Fast 仅 480p/720p 并采用较低当前费率。


