功能说明

纯文本输入生成视频;input_image 可加入普通图片;需要首尾帧或视频/音频角色时使用 metadata.content。不同模型能力见模型表。

第一步:鉴权

在控制台 API 密钥取得青云 API Key。每次创建、查询和下载请求都发送以下请求头:

Authorization: Bearer YOUR_API_KEY

将 YOUR_API_KEY 替换为自己的 Key,保留 Bearer 和其后一个空格。无需先请求登录接口。

第二步:调用模型生成

POST https://top.qingyuntop.ai/v1/responses,Content-Type: application/json。

参数类型必填详细说明
modelstring是完整 Seedance 模型 ID。
inputstring 或 array是文本字符串,或含 input_text、input_image 的消息数组。参考视频请求也应带非空文本。
input[].content[].image_urlstring图片项必填可访问的 HTTPS URL 或完整 data:image/…;base64,…。
secondsinteger建议正整数秒,支持范围见模型表。
durationinteger否seconds 缺省时才使用的别名;避免同时填两个。
metadataobject否豆包生成选项,如 resolution、ratio、generate_audio。
metadata.contentobject[]否首尾帧、参考图、视频、音频;角色和结构与豆包 content 相同。
resolutionstring否会覆盖 metadata.resolution;建议只填写 metadata.resolution 一处。
sizestring否缺省 resolution 时仅推断清晰度档位,不推断比例;请显式填写 metadata.ratio。
backgroundboolean否true 后台任务;默认 false。
streamboolean否true 使用 SSE;默认 false。

其余选项与豆包创建参数一致,放入 metadata。文本请放 input,不要把唯一文本放 metadata.content。不要将视频写成 input_video:本入口不接受这种视频输入方式。

文生视频代码

cURL 使用 Bash 语法;Python 先安装 requests;Node.js 使用 22+ 并保存为 .mjs。示例中的 Key、素材 URL 和任务 ID 都需要替换。

curl --fail-with-body "https://top.qingyuntop.ai/v1/responses" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "doubao-seedance-2-5-260628",
  "input": "一只橙色的猫走过雨后屋顶,镜头缓慢推进,柔和的傍晚光线,伴随轻微雨声。",
  "seconds": 5,
  "metadata": {
    "resolution": "720p",
    "ratio": "16:9",
    "generate_audio": true
  },
  "background": true,
  "stream": false
}'

图片输入

将上面代码的请求体替换为:

{
  "model": "doubao-seedance-2-5-260628",
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "保持产品外观,镜头慢慢向前推进。"
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/product.png"
        }
      ]
    }
  ],
  "seconds": 5,
  "metadata": {
    "resolution": "720p",
    "ratio": "adaptive"
  },
  "background": true,
  "stream": false
}

URL 必须能直接读取图片;本机路径、需要登录的页面不能作为素材。data URL 要包含 MIME 和 base64 前缀,不要使用缺少该前缀的裸 Base64。顶层 image、input_reference、images 也是别名入口,但应选一种写法避免重复图片。

首尾帧、视频及音频

首尾帧用 metadata.content 中的 image_url,并设置 first_frame、last_frame。参考视频/音频使用如下完整请求体;首尾帧与多模态参考分别组织:

{
  "model": "doubao-seedance-2-5-260628",
  "input": "参考视频中的运动,配合音频节奏生成新的产品展示。",
  "seconds": 5,
  "metadata": {
    "resolution": "720p",
    "ratio": "16:9",
    "omni_reference_task_type": "reference",
    "content": [
      {
        "type": "video_url",
        "video_url": {
          "url": "https://example.com/reference.mp4"
        },
        "role": "reference_video"
      },
      {
        "type": "audio_url",
        "audio_url": {
          "url": "https://example.com/music.mp3"
        },
        "role": "reference_audio"
      }
    ]
  },
  "background": true,
  "stream": false
}

2.5 编辑时省略 seconds/duration 顶层字段,在 metadata 设置 duration: -1、ratio: adaptive、omni_reference_task_type: edit。素材和模型限制见原生格式说明。

创建结果与下一步

结构示例:

{
  "id": "resp_doubao_example",
  "object": "response",
  "status": "queued",
  "output": [],
  "metadata": {
    "task_id": "task_doubao_example"
  }
}

保存 id 与 metadata.task_id,按查询与下载处理。成功的 output_text 是视频预览文本,下载直接使用公共 task ID 的 content 接口。