视频生成 API

本文介绍 Seedance 2.0 & 2.0 fast 模型相较于存量模型 **新增/配置有区别 **的 API 参数介绍,存量 API 参数的完整介绍参见 视频生成 API

使用千木 API 生成时,base url 为 https://silvamux.tingyutech.com/api/v3

模型能力

Seedance 2.0 和 Seedance 2.0 fast 提供的模型能力一致, 追求最高生成品质,推荐使用 Seedance 2.0;更注重成本与生成速度,不要求极限品质,推荐使用 Seedance 2.0 fast

Seedance 2.0 & 2.0 fast (有声视频/无声视频)

  • 多模态参考生视频:输入参考图片(09)+参考视频(03)+ 参考音频(0~3)+ 文本提示词(可选)生成 1 个目标视频。支持生成全新视频、编辑视频、延长视频。

注意:不可单独输入音频,应至少包含 1 个参考视频或图片。

  • 图生视频-首尾帧:输入首帧图片+尾帧图片+文本提示词(可选)生成 1 个目标视频。

  • 图生视频-首帧:输入首帧图片+文本提示词(可选)生成 1 个目标视频。

  • 文生视频:输入文本提示词生成 1 个目标视频。

模型能力对比表:

模型名称 Seedance 2.0 / 2.0 Fast
文生视频
图生视频\-首帧
图生视频\-首尾帧
多模态参考【New】 图片参考
视频参考

组合参考

  • 图片 + 音频
  • 图片 + 视频
  • 视频 + 音频
  • 图片 + 视频 + 音频
编辑视频【New】
延长视频【New】
生成有声视频
联网搜索增强【New】
样片模式
返回视频尾帧
输出视频规格 输出分辨率 480p, 720p
输出宽高比 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
输出时长 4~15 秒
输出视频格式 mp4

Create-创建视频生成任务

POST https://silvamux.tingyutech.com/api/v3/contents/generations/tasks

请求参数

content object[] 必选

输入给模型,生成视频的信息,支持文本、图片、音频、视频、样片任务 ID。支持以下几种组合:

  • 文本
  • 文本(可选)+ 图片
  • 文本(可选)+ 视频
  • 文本(可选)+ 图片 + 音频
  • 文本(可选)+ 图片 + 视频
  • 文本(可选)+ 视频 + 音频
  • 文本(可选)+ 图片 + 视频 + 音频

信息类型:

  • 文本信息object

输入给模型的提示词信息。

content.type string 必选

输入内容的类型,此处应为 text

content.textstring 必选

输入给模型的文本提示词,描述期望生成的视频。 支持中英文。建议中文不超过 500 字,英文不超过 1000 词。字数过多信息容易分散,模型可能因此忽略细节,只关注重点,造成视频缺失部分元素。提示词的更多使用技巧请参见 提示词指南

  • 图片信息 object

输入给模型的图片信息。

content.type string 必选

输入内容的类型,此处应为 image_url

content.image_url object 必选

输入给模型的图片对象。

content.image_url.url string 必选

图片 URL 、图片 Base64 编码、素材 ID。

  • 图片 URL:填入图片的公网 URL。
  • Base64 编码:**【不建议使用】**将本地文件转换为 Base64 编码字符串,然后提交给大模型。遵循格式:data:image/<图片格式>;base64,<Base64 编码>,注意 <图片格式> 需小写,如 data:image/png;base64,{base64_image}。
  • 素材 ID:用于视频生成的预置素材及虚拟人像的 ID,遵循格式:asset://<ASSET_ID>,可从 素材&虚拟人像库 获取,详细使用请参见文档

传入单张图片要求

  • 格式:jpeg、png、webp、bmp、tiff、gif
  • 宽高比(宽/高): (0.4, 2.5)
  • 宽高长度(px):(300, 6000)
  • 大小:单张图片小于 30 MB。请求体大小不超过 64 MB。大文件请勿使用 Base64 编码。
  • 图片数量:
    • 图生视频-首帧:1 张
    • 图生视频-首尾帧:2 张
    • Seedance 2.0 & 2.0 fast 多模态参考生视频:1~9 张

content.role string 条件必填

图片的位置或用途。

注意

  • 图生视频-首帧图生视频-首尾帧多模态参考生视频(包括参考图、视频、音频)为 3 种互斥场景,不可混用

  • 多模态参考生视频可通过提示词指定参考图片作为首帧/尾帧,间接实现“首尾帧+多模态参考”效果。若需严格保障首尾帧和指定图片一致,优先使用图生视频-首尾帧(配置 role 为 first_frame / last_frame)。

图生视频-首帧

需要传入 1 个 image_url 对象

  • 字段 role 取值:
    • first_frame 或不填

图生视频-首尾帧

需要传入 2 个 image_url 对象

  • 字段 role 取值:
    • 首帧图片对应的字段 role 为:first_frame,必填
    • 尾帧图片对应的字段 role 为:last_frame,必填

**图生视频-参考图 **

可传入 1~9 个 image_url 对象

  • 字段 role 取值

    • 每张参考图对应的字段 role 均为:reference_image,必填
  • 视频信息 object 输入给模型的视频信息。仅 Seedance 2.0 & 2.0 fast 支持输入视频。2026 年 3 月 11 日起,支持使用本账号下 Seedance 2.0 & 2.0 fast 模型产出的视频作为输入素材,进行视频编辑或延长,其中的真人人脸可正常使用,不会触发审核拦截。

content.type string 必选

输入内容的类型,此处应为 video_url

content.video_url object 必选

输入给模型的视频对象。

content.video_url.url string 必选

视频 URL、素材 ID。

  • 视频 URL:填入视频的公网 URL。
  • 素材 ID:用于视频生成的预置素材及虚拟人像视频的 ID,遵循格式:asset://<ASSET_ID>。

传入单个视频要求

  • 视频格式:mp4、mov。
  • 分辨率:480p、720p
  • 时长:单个视频时长 [, 15] s,最多传入 3 个参考视频,所有视频总时长不超过 15s。
  • 尺寸:
    • 宽高比(宽/高):[.4, 2.5]
    • 宽高长度(px):[00, 6000]
    • 画面像素(宽 × 高):[09600, 927408] ,示例:
      • 画面尺寸 640×640=409600 满足最小值 ;
      • 画面尺寸 834×1112=927408 满足最大值。
  • 大小:单个视频不超过 50 MB。
  • 帧率 (FPS):[4, 60]

content.role string 条件必填

视频的位置或用途。当前仅支持 reference_video

  • 音频信息 object 输入给模型的音频信息。仅 Seedance 2.0 & 2.0 fast 支持输入音频。注意不可单独输入音频,应至少包含 1 个参考视频或图片。

content.type string 必选

输入内容的类型,此处应为 audio_url

content.audio_url object 必选

输入给模型的音频对象。

content.audio_url.url string 必选

音频 URL 、音频 Base64 编码、素材 ID。

  • 音频 URL:填入音频的公网 URL。
  • Base64 编码:**【不建议使用】**将本地文件转换为 Base64 编码字符串,然后提交给大模型。遵循格式:data:audio/<音频格式>;base64,<Base64 编码>,注意 <音频格式> 需小写,如 data:audio/wav;base64,{base64_audio}。
  • 素材 ID:用于视频生成的虚拟人的音频素材 ID,遵循格式:asset://<ASSET_ID>。可从素材&虚拟人像库获取。

传入单个音频要求

  • 格式:wav、mp3
  • 时长:单个音频时长 [, 15] s,最多传入 3 段参考音频,所有音频总时长不超过 15 s。
  • 大小:单个音频不超过 15 MB,请求体大小不超过 64 MB。大文件请勿使用 Base64 编码。

content.role string 条件必填

音频的位置或用途。当前仅支持 reference_audio

service_tier string

Seedance 2.0 & 2.0 fast 暂不支持

**generate_audio **boolean

Seedance 2.0 & 2.0 fast 默认值: true

控制生成的视频是否包含与画面同步的声音。

  • true:模型输出的视频包含同步音频。模型会基于文本提示词与视觉内容,自动生成与之匹配的人声、音效及背景音乐。建议将对话部分置于双引号内,以优化音频生成效果。例如:男人叫住女人说:“你记住,以后不可以用手指指月亮。”
  • false:模型输出的视频为无声视频。

说明

生成的有声视频均为单声道,和传入的音频声道数无关。

draft boolean

Seedance 2.0 & 2.0 fast 暂不支持

tools object[]

仅 Seedance 2.0 & 2.0 fast 支持 配置模型要调用的工具。

tools.type string

指定使用的工具类型。

  • web_search:联网搜索工具。当前仅文生视频支持。

说明

  • 开启联网搜索后,模型会根据用户的提示词自主判断是否搜索互联网内容(如商品、天气等)。可提升生成视频的时效性,但也会增加一定的时延。

  • 实际搜索次数可通过 查询视频生成任务 API 返回的 usage.tool_usage.web_search 字段获取,如果为 0 表示未搜索。

resolution string

Seedance 2.0 & 2.0 fast 默认值:720p

视频分辨率,取值范围:

  • 480p
  • 720p

ratio string

Seedance 2.0 & 2.0 fast 默认值: adaptive

生成视频的宽高比例。不同宽高比对应的宽高像素值见下方表格。

  • 16:9
  • 4:3
  • 1:1
  • 3:4
  • 9:16
  • 21:9
  • adaptive:根据输入自动选择最合适的宽高比

adaptive 适配规则

当配置 ratio 为 adaptive 时,模型会根据生成场景自动适配宽高比;实际生成的视频宽高比可通过 查询视频生成任务 API 返回的 ratio 字段获取。

  • 文生视频:根据输入的提示词,智能选择最合适的宽高比。
  • 首帧 / 首尾帧生视频:根据上传的首帧图片比例,自动选择最接近的宽高比。
  • 多模态参考生视频:根据用户提示词意图判断,如果是首帧生视频/编辑视频/延长视频,以该图片/视频为准选择最接近的宽高比;否则,以传入的第一个媒体文件为准(优先级:视频>图片)选择最接近的宽高比。

不同宽高比对应的宽高像素值:

分辨率 宽高比 宽高像素值
480p 16:9 864×496
4:3 752×560
1:1 640×640
3:4 560×752
9:16 496×864
21:9 992×432
720p 16:9 1280×720
4:3 1112×834
1:1 960×960
3:4 834×1112
9:16 720×1280
21:9 1470×630
#### duration `integer`

Seedance 2.0 & 2.0 fast 默认值:5

生成视频时长,仅支持整数,单位:秒。

取值范围:

  • [,15] 或设置为-1

配置方法

  • 指定具体时长:支持有效范围内的任一整数。

  • 智能指定:设置为 -1,表示由模型在有效范围内自主选择合适的视频长度(整数秒)。实际生成视频的时长可通过 查询视频生成任务 API 返回的 duration 字段获取。注意视频时长与计费相关,请谨慎设置。

frames integer

Seedance 2.0 & 2.0 fast 暂不支持

camera_fixed boolean

Seedance 2.0 & 2.0 fast 暂不支持

Get/List-查询视频生成任务/列表

查询视频生成任务:GET https://silvamux.tingyutech.com/api/v3/contents/generations/tasks/\{id\}

响应参数

**tools **object[]

仅 Seedance 2.0 & 2.0 fast 支持 配置模型要调用的工具。

tools.type string

指定使用的工具类型。

  • web_search:联网搜索工具。

usage object

本次请求的 token 用量。

usage.completion_tokens integer

模型输出视频花费的 token 数量。

usage.total_tokens integer

本次请求消耗的总 token 数量。

usage.tool_usage object

仅 Seedance 2.0 & 2.0 fast 支持 使用工具的用量信息。

usage.tool_usage.web_search integer

实际调用联网搜索工具的次数,仅开启联网搜索时返回。

调用简介及示例

流程简介

任务接口是异步接口,视频生成任务流程

  1. 创建视频生成任务接口创建视频生成任务
  2. 定时使用查询接口查询视频生成任务状态
    1. 任务 running,过段时间再查询任务状态
    2. 任务完成,返回视频链接,在 24 小时内下载生成的视频文件

创建视频生成任务

以下示例仅展示 Seedance 2.0 & 2.0 fast 新增能力,更多视频生成示例详见 创建视频生成任务 API

多模态参考

curl https://silvamux.tingyutech.com/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "goldsaucer/advanced-video-generation-2-0",
    "content": [
         {
            "type": "text",
            "text": "全程使用**视频1**的第一视角构图,全程使用**音频1**作为背景音乐。第一人称视角果茶宣传广告,Seedance牌「苹苹安安」苹果果茶限定款;首帧为**图片1**,你的手摘下一颗带晨露的阿克苏红苹果,轻脆的苹果碰撞声;2-4 秒:快速切镜,你的手将苹果块投入雪克杯,加入冰块与茶底,用力摇晃,冰块碰撞声与摇晃声卡点轻快鼓点,背景音:「鲜切现摇」;4-6 秒:第一人称成品特写,分层果茶倒入透明杯,你的手轻挤奶盖在顶部铺展,在杯身贴上粉红包标,镜头拉近看奶盖与果茶的分层纹理;6-8 秒:第一人称手持举杯,你将**图片2**中的果茶举到镜头前(模拟递到观众面前的视角),杯身标签清晰可见,背景音「来一口鲜爽」,尾帧定格为**图片2**。背景声音统一为女生音色。"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg"
            },
            "role": "reference_image"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg"
            },
            "role": "reference_image"
        },
        {
          "type": "video_url",
          "video_url": {
              "url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4"
          },
          "role": "reference_video"
        },
        {
          "type": "audio_url",
          "audio_url": {
              "url": "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3"
          },
          "role": "reference_audio"
        }
    ],
    "generate_audio":true,
    "ratio": "16:9",
    "duration": 11,
    "watermark": false
}'

编辑视频

curl https://silvamux.tingyutech.com/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "goldsaucer/advanced-video-generation-2-0",
    "content": [
        {
            "type": "text",
            "text": "将**视频1**礼盒中的香水替换成**图片1**中的面霜,运镜不变"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_edit_pic1.jpg"
            },
            "role": "reference_image"
        },
        {
            "type": "video_url",
            "video_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_edit_video1.mp4"
            },
            "role": "reference_video"
        }
    ],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 5,
    "watermark": true
}'

延长视频

curl https://silvamux.tingyutech.com/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "goldsaucer/advanced-video-generation-2-0",
    "content": [
        {
            "type": "text",
            "text": "**视频1**中的拱形窗户打开,进入美术馆室内,接**视频2**,之后镜头进入画内,接视频3"
        },
        {
            "type": "video_url",
            "video_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video1.mp4"
            },
            "role": "reference_video"
        },
        {
            "type": "video_url",
            "video_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4"
            },
            "role": "reference_video"
        },
        {
            "type": "video_url",
            "video_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"
            },
            "role": "reference_video"
        }
    ],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 8,
    "watermark": true
}'

使用联网搜索

仅支持文本生视频

curl https://silvamux.tingyutech.com/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "goldsaucer/advanced-video-generation-2-0",
    "content": [
         {
            "type": "text",
            "text": "微距镜头对准叶片上翠绿的玻璃蛙。焦点逐渐从它光滑的皮肤,转移到它完全透明的腹部,一颗鲜红的心脏正在有力地、规律地收缩扩张。"
        }
    ],
    "generate_audio":true,
    "ratio": "16:9",
    "duration": 11,
    "watermark": true,
    "tools": [
         {
             "type": "web_search"
         }
     ]
}'

查询视频生成任务

//请将 cgt-2026****hzc2z 替换为创建视频生成任务时获得的任务ID
curl -X GET https://silvamux.tingyutech.com/api/v3/contents/generations/tasks/cgt-2026****hzc2z \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY"

最佳实践

使用自有虚拟人像素材生成视频

Seedance 2.0 及 2.0 fast 模型具有完备的防范 Deepfake 和侵犯版权风险能力。在生成视频时,会对有风险的参考素材输入进行拦截,最大限度保证生成视频合规和安全性。

为确保创作者能充分利用 Seedance 2.0 系列模型强大的视频生成能力高效生成视频内容,同时规避 AI 生成内容的潜在风险,千木推出了私域可信素材库,支持创作者自助上传虚拟人像素材。完成入库的可信素材将进入您的私域素材库,在视频生成中使用。

请参考素材管理 API 文档将素材录入。

使用模型产物进行二创

Seedance 2.0 及 2.0 fast 模型生成的视频为受信素材。您可使用本组织下由上述模型生成的视频,进行视频编辑、视频延长等二次创作,素材中的人脸可正常参与生成,不会触发审核拦截。

2026 年 3 月 11 日起,使用 Seedance 2.0 及 2.0 fast 模型生成的视频,支持二次创作。

import os
import time
# Install SDK:  pip install 'volcengine-python-sdk[ark]'
from volcenginesdkarkruntime import Ark
client = Ark(
    # The base URL for model invocation
    base_url='https://silvamux.tingyutech.com/api/v3',
    # Get API Key:https://console.volcengine.com/ark/region:ark+cn-beijing/apikey
    api_key=os.environ.get("ARK_API_KEY"),
)
if __name__ == "__main__":
    print("----- create request -----")
    create_result = client.content_generation.tasks.create(
        model="goldsaucer/advanced-video-generation-2-0", # Replace with Model ID
        content=[
            {
                "type": "text",
                # 注意:素材图片指代需使用“图片N”( N 表示传入素材图片/图片的序号,如“图片1”、“图片2”)
                "text": "**图片1**中美妆博主用中文进行介绍,妆容改为明艳大气,去掉脸部反光,笑容甜美,近景镜头,手持**图片2**的面霜面向镜头展示,清新简约背景,元气甜美风格。博主台词:挖到本命面霜了!质地像云朵一样软糯,一抹就吸收,熬夜急救、补水保湿全搞定,素颜都自带柔光感。"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "asset://asset-20260224200602-qn7wr"
                },
                "role": "reference_image"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_edit_pic1.jpg"
                },
                "role": "reference_image"
            },
        ],
        generate_audio=True,
        ratio="16:9",
        duration=11,
        watermark=True,
    )
    print(create_result)
    print("----- polling task status -----")
    task_id = create_result.id
    while True:
        get_result = client.content_generation.tasks.get(task_id=task_id)
        status = get_result.status
        if status == "succeeded":
            print("----- task succeeded -----")
            print(get_result)
            break
        elif status == "failed":
            print("----- task failed -----")
            print(f"Error: {get_result.error}")
            break
        else:
            print(f"Current status: {status}, Retrying after 30 seconds...")
            time.sleep(30)
  1. 对首次生成的视频进行再次编辑。

视频原始 URL 的有效期仅 24 小时,实际使用时,建议您转存视频文件。

import os
import time
# Install SDK:  pip install 'volcengine-python-sdk[ark]'
from volcenginesdkarkruntime import Ark
client = Ark(
    # The base URL for model invocation
    base_url='https://silvamux.tingyutech.com/api/v3',
    # Get API Key:https://console.volcengine.com/ark/region:ark+cn-beijing/apikey
    api_key=os.environ.get("ARK_API_KEY"),
)
if __name__ == "__main__":
    print("----- create request -----")
    create_result = client.content_generation.tasks.create(
        model="goldsaucer/advanced-video-generation-2-0", # Replace with Model ID
        content=[
            {
                "type": "text",
                "text": "将**视频1**中的背景修改为室内,房间布置温馨,包括白色的沙发,梳妆台和鲜花。"
            },
            {
                "type": "video_url",
                "video_url": {
                    "url": "https://....."
                },
                "role": "reference_video"
            },
        ],
        generate_audio=True,
        ratio="16:9",
        duration=11,
        watermark=True,
    )
    print(create_result)
    print("----- polling task status -----")
    task_id = create_result.id
    while True:
        get_result = client.content_generation.tasks.get(task_id=task_id)
        status = get_result.status
        if status == "succeeded":
            print("----- task succeeded -----")
            print(get_result)
            break
        elif status == "failed":
            print("----- task failed -----")
            print(f"Error: {get_result.error}")
            break
        else:
            print(f"Current status: {status}, Retrying after 30 seconds...")
            time.sleep(30)