---
title: 视频生成
description: 提交文本和公网参考素材，创建异步视频生成任务。
openapi: openapi/model-api.json POST /api/v3/contents/generations/tasks
---

`model` 没有固定值，请填写[模型列表](/api-reference/models/list)返回的实际模型 ID。

<Warning>
  参考素材必须是模型服务可以访问的公网 URL。你可以使用下方的平台上传流程获取 `public_url`，也可以直接填写自己已有的公网 URL；本接口不接收本地路径、Base64、文件二进制或预签名上传地址。
</Warning>

创建成功后保存任务 ID，并使用[获取任务状态](/api-reference/tasks/status)轮询结果。

## 支持的生成方式

| 方式 | `content` 组合 | 素材角色 |
| --- | --- | --- |
| 文生视频 | `text` | 无 |
| 首帧生视频 | `text` + 1 个 `image_url` | `first_frame` 或省略 |
| 首尾帧生视频 | `text` + 2 个 `image_url` | `first_frame`、`last_frame` |
| 多模态参考 | `text` + 图片、视频、音频 | `reference_image`、`reference_video`、`reference_audio` |
| 样片生成正式视频 | `draft_task` | 提供样片任务 ID |

首尾帧模式与多模态参考模式互斥。参考音频不可单独输入，至少同时提供一张参考图片或一个参考视频。具体素材数量、时长、分辨率和模型能力以当前模型为准。

## 参考素材的两种方式

### 方式一：使用平台上传流程

适合素材只保存在本地，或希望由平台统一管理文件的场景。完成上传后，将响应中的 `public_url` 填入请求体：

<Steps>
  <Step title="获取上传地址">调用 `POST /v1/upload/presign`，提交文件名和 MIME 类型。</Step>
  <Step title="上传文件">使用返回的 `url`、`method` 和 `headers` 完成 `PUT` 上传。</Step>
  <Step title="调用视频模型">将返回的 `public_url` 放入 `image_url.url`、`video_url.url` 或 `audio_url.url`。</Step>
</Steps>

### 方式二：直接提供公网 URL

如果素材已经部署在可公开访问的对象存储或 CDN，可跳过上传接口，直接将 URL 放入对应字段：

```json
{
  "type": "image_url",
  "image_url": { "url": "https://cdn.example.com/reference/first-frame.png" },
  "role": "first_frame"
}
```

URL 必须无需登录、无需 Cookie 或临时签名即可从公网访问，并返回正确的媒体内容类型。请确认 URL 在任务执行期间持续有效，且模型服务所在网络能够访问；浏览器能打开不代表模型服务一定能访问。

## 任务与结果

任务可能依次进入 `queued`、`running`、`succeeded`、`failed`、`cancelled` 或 `expired`。建议每 2-5 秒查询一次。生成视频和尾帧地址可能具有有效期，请及时转存。
