Continue the same shot: the violinist keeps playing as the camera dolly moves slowly forward, dust motes drifting in the same light shafts. Preserve the same performer, cathedral, lighting, and camera momentum. Native audio: the violin melody continues with the same stone-room reverb. No logos, no readable text, no products, no packaging, no prices, no CTA, no advertising, no watermark, no brand marks.
FLUX 3 Extend Video API
blackforestlabs/flux-3/extend-videoFLUX 3 Extend Video 以已有短视频的最终帧为基准无缝续写,结合文本提示词延展 5–20 秒新镜头并保持动量与原生音频连贯。延续前序画面的运动趋势、主体姿态与声景,支持多镜头连环串联。
必填。上传一条源视频,或在 JSON 中提供公开可访问的 HTTP(S) 视频 URL。
生成的视频会显示在这里
填写提示词并添加所需素材,确认设置后点击“运行”。
示例
REST API
快速开始
调用 API 时提供源视频 URL,并通过任务 ID 查询延长结果。
连接 Vidgo API
创建 API Key,仅保存在服务端,并在请求头中发送 Authorization: Bearer VIDGO_API_KEY。
- 接口
- POST
https://api.vidgo.ai/api/generate/submit - 认证
- Authorization: Bearer VIDGO_API_KEY
提交一次生成任务
按请求示例填入源视频地址与延续设置,提交后保存 task_id,用于查询进度与结果。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "blackforestlabs/flux-3/extend-video",
"input": {
"prompt": "Continue the same shot: the violinist keeps playing as the camera dolly moves slowly forward, dust motes drifting in the same light shafts. Preserve the same performer, cathedral, lighting, and camera momentum. Native audio: the violin melody continues with the same stone-room reverb. No logos, no readable text, no products, no packaging, no prices, no CTA, no advertising, no watermark, no brand marks.",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "auto",
"sound": true,
"video_url": "https://cdn.vidgo.ai/apis/models/blackforestlabs/flux-3/text-to-video/v1/01/output.mp4"
}
}
JSON
)
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")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"等待结果
用 task_id 查询状态,not_started 或 running 继续,finished 或 failed 停止。成功后读取 data.files[].file_url。
查询状态
GET https://api.vidgo.ai/api/generate/status/{task_id}以 2 秒为基准间隔轮询状态,长时间任务可适当拉长间隔。仅在 not_started 或 running 时继续,遇到 finished 或 failed 立即停止。也可以在同一请求中配置 callback_url 接收回调通知。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "task-flux3-ext-...",
"status": "running",
"created_time": "2026-09-16T10:00:00Z"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}完整可运行示例
展开后可查看包含 HTTP 与业务码检查、task_id 校验、轮询、终态处理和超时边界的完整脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "blackforestlabs/flux-3/extend-video",
"input": {
"prompt": "Continue the same shot: the violinist keeps playing as the camera dolly moves slowly forward, dust motes drifting in the same light shafts. Preserve the same performer, cathedral, lighting, and camera momentum. Native audio: the violin melody continues with the same stone-room reverb. No logos, no readable text, no products, no packaging, no prices, no CTA, no advertising, no watermark, no brand marks.",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "auto",
"sound": true,
"video_url": "https://cdn.vidgo.ai/apis/models/blackforestlabs/flux-3/text-to-video/v1/01/output.mp4"
}
}
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')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
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 "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
doneinput 参数
下表列出 input 对象的可用参数、类型与默认值;请求示例同时展示顶层必填字段 model。按当前任务准备源视频素材并配置延展规格。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | — | 描述从源视频最终帧继续发展的动作、运镜与原生声音。 |
| video_url | string | 是 | — | 提供公开可访问的 HTTP(S) 源视频 URL。 |
| duration | integer | 否 | 5 | 延长生成的视频秒数,取值范围为 5 至 20 秒。 |
| resolution | string | 否 | 720p | 输出分辨率,可选 720p 或 1080p。 |
| aspect_ratio | string | 否 | auto | 输出画幅比例,支持 auto、21:9、2:1、16:9、4:3、1:1、3:4、9:16。 |
| sound | boolean | 否 | true | 是否生成原生音频,可选 true 或 false。 |
响应字段
提交成功后返回任务 ID;状态查询提供任务进度、输出文件,以及任务失败时的错误详情。
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | 业务结果码;成功响应使用 0 或 200。 |
| message | string | 可读说明或错误详情。 |
| data.task_id | string | 用于状态查询路径的任务 ID。 |
| data.status | string | not_started、running、finished 或 failed。 |
| data.created_time | string | 任务创建时间,date-time 格式。 |
| data.progress | integer | 任务进度(0–100),以查询结果为准。 |
| data.files[] | array | 成功任务的全部输出文件,按响应顺序返回。 |
| data.files[].file_url | string | 生成视频的公开 URL。 |
| data.files[].file_type | string | 文件类型,例如 video。 |
| data.error_message | string | null | 状态为 failed 时的失败详情。 |
任务生命周期
在 not_started 或 running 状态下继续查询;收到 finished 或 failed 后结束轮询,并分别处理输出文件或错误详情。
not_started任务已接受,等待开始。
running正在生成。继续使用同一 task_id 轮询。
finished生成成功。从 data.files[].file_url 读取视频地址。
failed生成失败。读取 data.error_message 并停止轮询。
轮询与错误
- 认证收到 401 时,检查 Authorization 中的 Bearer API Key,更新凭据后重试。
- 校验收到 400 时,检查 video_url 是否为有效 HTTP(S) URL,并核对提示词和输出参数。
- 网络与超时状态查询遇到网络错误或超时时,保留原 task_id 并重试查询,再根据返回的任务状态处理结果。
- 轮询间隔以 2 秒为基准间隔发起状态查询;如任务耗时较长,可逐步增加查询间隔。
- 终态仅在 not_started 或 running 时继续。遇到 finished 或 failed 立即停止。
- 回调选项可在请求顶层提供 callback_url 接收终态任务对象;投递失败时仍可轮询。
模型规格
| 规格 | 取值 | 说明 |
|---|---|---|
| 输入模式 | 1 个源视频 + 提示词 | 提供公开可访问的 HTTP(S) 源视频 URL。 |
| 输出 | 带原生音频的延长视频 | 提交后返回异步任务 ID,生成标准 MP4 视频。 |
| 新生成时长 | 5–20 秒 | 设置延长的秒数,默认 5 秒。 |
| 分辨率 | 720p / 1080p | 默认 720p。 |
| 画幅比例 | 8 种比例(含 auto) | auto、21:9、2:1、16:9、4:3、1:1、3:4、9:16,默认 auto。 |
| 计费依据 | 新生成秒数 × 分辨率费率 | 720p 为 82 积分/秒,1080p 为 106 积分/秒。 |
FLUX 3 Extend Video
FLUX 3 Extend Video 能够无缝延展已有视频的叙事篇幅。模型读取输入视频的最终画面与运动趋势,在保持主体动作惯性、物理动量与声轨连贯的前提下,依据提示词继续推演 5–20 秒高质量新画面,轻松实现多镜头衔接与长篇情节创作。
为什么选择此端点?
末帧无缝动量继承参考源视频末尾的运动趋势与主体姿态,引导后续动作衔接。
声画轨迹连贯延续在延续视觉动态的同时持续生成同步原生音频,使环境氛围声与动作音效在镜头之间自然衔接。
支持多镜头连环串联可将生成的延长结果作为下一次延伸的源视频多次续写,逐步拓展长篇故事与多角度场景转换。
5–20 秒新时长扩展单次续写可在源视频基础上增加 5 到 20 秒全新时长,为展开下一个情节高潮提供充足篇幅。
提示词引导下阶段叙事通过 prompt 精准指引后续镜头的运镜变化、主体新动作或突发情节发展,实现受控的镜头接力。
720p 与 1080p 高清画质提供 720p 与 1080p 两种高清分辨率选择,帮助延伸部分与原始画面的质感衔接。
参数
| 参数 | 要求 | 说明 |
|---|---|---|
| prompt | 必填 | 字符串。描述从源视频最终帧开始继续发展的主体动作、新运镜方式及延续的音频线索。 |
| video_url | 必填 | 提供公开可访问的 HTTP(S) 源视频 URL。 |
| duration | 可选 | 整数。设置新生成的延长视频时长,取值范围为 5 至 20 秒;体验区默认预选 5 秒。 默认 5 |
| resolution | 可选 | 字符串。设置视频输出分辨率,可选 720p 或 1080p;体验区默认预选 720p。 默认 720p1080p |
| aspect_ratio | 可选 | 字符串。控制视频画幅比例,支持 auto 及常见横纵比例;体验区默认预选 auto。 默认 auto21:92:116:94:31:13:49:16 |
| sound | 可选 | 布尔值。控制是否随视频同步生成原生音频;体验区默认预选 true。 默认 truefalse |
如何使用
准备源视频链接提供公开可访问的 HTTP(S) 源视频 URL。
编写后续动作提示词在 prompt 中指引前段动作如何向后演进,描述运镜走向、角色动作变化及原生声音设计。
设定延长时间在 5 至 20 秒之间指定本次延伸的时长,默认预选为 5 秒。
选择分辨率与画幅指定 720p 或 1080p 输出画质,画幅比例建议选择 auto 以自动沿用源视频构图。
确认声音生成保持 sound 为 true 延续并生成同步环境声音,或设为 false 仅生成无声画面。
运行并获取加长视频确认预估积分后点击“运行”,任务完成后预览无缝接续的全新视频并下载保存。
价格
按新生成的输出视频时长秒数与分辨率阶梯计费,输入源视频仅做合法性校验不增加计费秒数。1 积分 = $0.005。
| 用量 | 费率 | 说明 |
|---|---|---|
| 720p | 82 积分 / 秒($0.41 / 秒) | 默认 5 秒 720p 为 410 积分($2.05)。 |
| 1080p | 106 积分 / 秒($0.53 / 秒) | 5 秒 1080p 为 530 积分($2.65)。 |
适用场景
精彩镜头篇幅延展为已有短镜头补充后续动作与情节展开,无需从头重调提示词即可平滑增加成片时长。
多镜头情节连环递进将前一个动作的高潮自然导向下一个场景或反转,实现连贯紧凑的镜头叙事接力。
产品细节深入展示在产品外观展示镜头后顺势推进,让镜头深入内部构造或拉开呈现全景使用环境。
运动场景长镜头跟踪保持奔跑、滑雪或车辆行驶的既有动量与速度,延续连贯壮阔的高速追随运镜。
专业建议
- 输入的源视频尽量选择尾帧主体状态稳定、动作方向明确的片段,有助于模型精准捕捉动量惯性。
- 在 prompt 开头使用承接性词汇指引动作,例如“保持奔跑节奏继续向前,镜头逐渐向斜上方拉起升空”。
- 若希望改变镜头运镜方向,建议在提示词中描写平滑的转折过渡,避免突兀的视角跳切。
- 提供公开可访问的 HTTP(S) 源视频 URL。
- 在提示词中补充与新环境契合的声音描写,例如“脚步声从草地渐变为木桥踏步声”。
使用说明
- 提供公开可访问的 HTTP(S) 源视频 URL。
- 计费仅按照本次新生成的 duration 规格核算,输入视频本身不计入生成计费时长。
- 通过 API 提交后保存返回的 task_id,查询接口将在任务完成时提供拼接好的成片 MP4 下载链接。
- 输出视频包含由深度物理引擎驱动的画面动态,sound 开启时音画同步输出。
相关端点
FLUX 3 Extend Video API 常见问题
FLUX 3 Extend Video API 是什么?
FLUX 3 Extend Video 是 Black Forest Labs 用于从已有视频片段末尾继续扩展生成连贯视频的模型。它参考源视频末尾的运动趋势、主体姿态与光影基调,在文本提示词引导下无缝续写 5 至 20 秒、最高 1080p 分辨率的新镜头,并伴随原生同步音频的自然延续。模型可用于多镜头串联与连贯叙事接力。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
FLUX 3 Extend Video 对输入的源视频有哪些具体格式限制?
提供公开可访问的 HTTP(S) 源视频 URL。
在续写过程中如何保证人物动作与摄像机运镜不断层?
模型会参考源视频结尾处的主体运动与运镜趋势。编写提示词时,建议采用承接性语言描述(如“沿当前方向加速前进”、“镜头顺畅右摇升空”),使后续动作自然衔接前文动势。
FLUX 3 Extend Video 的音频轨是如何处理衔接的?
当 sound 设为 true 时,模型会感知源视频末尾的声学情境,依据提示词中继续发生的动作和环境变化自动合成本次延长的配套音频,使背景噪音、动效及音乐在交接点平滑过渡。
FLUX 3 Extend Video 是否支持多次连续续写?
可以将生成结果的公开 HTTP(S) 视频 URL 用作下一次请求的 video_url,并用提示词描述下一段动作。
FLUX 3 Extend Video 的计费规则是如何计算的?
延长任务按本次请求中新生成的 duration 秒数及所选分辨率计费(720p 为 82 积分/秒,1080p 为 106 积分/秒)。输入的源视频仅作为续写参考,不会额外叠加计费秒数。
如果想要在延长的同时改变场景或引入新分镜,该如何编写提示词?
可以在 prompt 中明确指出分镜转折或运镜过渡,例如“跟随主体推开大门,镜头由暗调走廊穿入阳光明媚的庭院”。提示词中清晰描述转场过渡有助于模型生成自然的视角变换。



