Skip to main content
使用 POST /v1/videos 创建异步 Seedance 视频生成任务。轮询任务直至完成,然后通过返回的 Flatkey 地址下载视频。 支持的模型有 seedance-2.0、seedance-2.0-fast、seedance-2.0-mini 和 seedance-2.5。模型可用性取决于你的账户,请使用 GET /v1/models 获取当前模型列表。

端点

Flatkey 也支持 POST /v1/video/generations 和 GET /v1/video/generations/{task_id}。推荐使用 /v1/videos,以获得标准响应结构和原生 usage 数据。

请求

请求头

请求体参数

string
必填
Seedance 模型 ID:"seedance-2.0"、"seedance-2.0-fast"、"seedance-2.0-mini" 或 "seedance-2.5"。
array
必填
多模态输入元素。至少包含一条非空文本、图片、视频或音频。见 content 元素。
string
输出分辨率,默认 "720p"。
string
输出宽高比:"16:9"、"4:3"、"1:1"、"3:4"、"9:16"、"21:9" 或 "adaptive",默认 "adaptive"。设为 "adaptive" 时,模型根据输入的图片或视频自动选择比例。seedance-2.5 的首帧和首尾帧任务只支持 "adaptive"。
integer
视频时长(秒),默认 5。Seedance 2.0 系列支持 4 至 15;seedance-2.5 支持 4 至 30。
请始终传正数 duration。Flatkey 对 Seedance 按秒计费,-1(由模型自行决定时长)会被拒绝并返回 video_price_not_configured。唯一例外是 seedance-2.5 视频编辑,它要求传 -1。
boolean
是否在右下角添加 “AI generated” 水印,默认 false。
boolean
是否生成同步的单声道音频,默认 true。只需要画面时设为 false;生成的音频偶尔会因版权检测导致任务失败。
boolean
是否以图片形式返回生成视频的最后一帧,默认 false。设为 true 时,任务完成后响应中会带 metadata.last_frame_url,可下载与视频尺寸相同、无水印的 JPEG。把它作为下一个任务的 first_frame,即可实现多段续接。与 metadata.url 一样,下载无需鉴权头,请妥善保管该地址。
string
仅 seedance-2.5。生成视频的封装格式:"mp4" 或 "mov",默认 "mp4"。MOV 色彩精度更高,适合调色、抠像、合成等后期(H.264、YUV 4:4:4、PCM 音频),但部分播放器无法打开。MOV 结果通过内容端点下载时返回 video/quicktime。
string
仅 seedance-2.5 的参考模式任务。告诉模型你要做哪类任务:"auto"(默认)、"reference"、"edit" 或 "extend"。显式指定后,任务类型相关的校验会提前到提交时进行,不合法的组合会立即报错,而不是任务开始后才失败。"reference"、"edit"、"extend" 都要求 content 中有参考素材;只有文本却指定 "reference" 会被拒绝。详见视频编辑与延长。
integer
排队优先级,取值 0 至 9,默认 0。数值越大,越会排在同一模型下优先级更低的任务之前。Seedance 2.0 全系列和 seedance-2.5 支持。超出 0–9 会返回 400。
integer
任务从创建起最多等待和运行的秒数,超时即过期。默认 172800(48 小时)。如果结果来得太晚就没有用,可以设得更短。
string
公网 HTTPS 地址,任务状态每次变化时都会收到一次 POST,详见任务回调。必须使用 https、不能包含用户名密码、长度不超过 2048 个字符,并且解析到公网地址,否则请求返回 400。

content 元素

每个 URL 可以是公网 HTTPS 地址、data:<mime>;base64, 格式的 data URI(仅图片和音频),或者素材库中的 asset:// 引用。整个请求体不得超过 64 MB。 每个任务只能选择一种输入模式,不能混用:

视频编辑

seedance-2.5 可以在参考模式下编辑或延长已有视频。在提示词里描述要做的改动,并用 @Video1 指代该视频。
和所有带参考视频的 seedance-2.5 请求一样,编辑按对应分辨率的带视频单价、固定 30 秒计费,与输入、输出视频的实际时长无关。

样片模式

seedance-2.5 可以先生成一个便宜的 480p 样片,确认场景、镜头和动作没问题后,再花钱出正式视频。共需两次请求:
  1. 生成样片。 按正常请求发送,加上 "draft": true 和 "resolution": "480p",按普通 480p 视频计费。
  2. 生成正片。 样片完成后再发一次请求,content 中只放一个指向样片任务 ID 的 draft_task,并设置 "resolution": "1080p"。
正片会沿用样片的提示词、素材、时长、宽高比、seed、音频设置和任务类型。带 draft_task 时不能再传 duration、ratio、frames、seed、generate_audio、omni_reference_task_type、draft,也不能有其他 content 元素,否则返回 400。return_last_frame、output_format、watermark、priority、execution_expires_after 和 callback_url 仍可设置。
Seedance 不接受直接上传含真人人脸的图片或视频。请先上传为真人素材,再用 asset:// 引用。

请求示例

首尾帧输入

多模态参考

响应

响应字段

string
用于轮询任务和下载完成视频的公开任务 ID。task_id 包含相同的值。
string
任务状态:queued、in_progress、completed 或 failed。
integer
生成进度,范围为 0 至 100。
integer
任务创建时的 Unix 时间戳。

查询任务状态

任务生成过程中,响应会包含当前进度:
任务完成后,响应会包含视频地址和 token 用量:
失败任务会在任务响应中返回错误详情:
已预扣的余额会自动退还。

状态值

任务回调

设置 callback_url 后,可以接收任务状态变化通知,替代轮询或与轮询配合使用。任务进入 in_progress、completed 或 failed 时,Flatkey 会以 Content-Type: application/json 发送一次 POST。请求体与此刻调用 GET /v1/videos/{task_id} 的返回完全一致,任务完成时包含 metadata.url 和 metadata.last_frame_url。
请在 5 秒内返回任意 2xx 状态码。否则 Flatkey 会在 2 秒和 8 秒后各重试一次,之后不再发送。不跟随重定向。回调没有签名,处理结果前请先查询任务确认;回调可能丢失,请以查询接口为准。

下载视频

内容端点以流式方式返回 video/mp4 数据;任务使用 output_format: "mov" 时返回 video/quicktime。该端点不需要 Bearer token,也可以直接作为 <video> 的资源地址。
只有任务完成后才能访问内容端点,且该端点会按客户端 IP 限流。任何获得该 URL 的人都可以下载视频,请将它视为敏感信息。

错误

请求阶段的错误使用 Flatkey 标准错误结构:

端到端示例

下面的示例会创建任务、每五秒轮询一次,并在任务完成后下载视频。运行前需要安装 jq。