# Vidu Video Generation

> Vidu source documentation.

Canonical URL: https://docs.uniall.ai/models/video/vidu
Locale: en

video generationusercall

Updated: 2026-06-03, this site Vidu Q3 Pro / Q3 Turbo video model call. user requires using this site stable model and video task endpoint, do not upstream or Field.

## 1. Model

| Model | | text-to-video | single-image-to-video | first-and-last-frame | multiple reference images |
| --- | --- | --- | --- | --- | --- |
| `viduq3p-540p`| Q3 Pro | supports | supports | supports, use `image`+`last_image`| supports, use `reference_image_urls`, up to 4 |
| `viduq3p-720p`| Q3 Pro | supports | supports | supports, use `image`+`last_image`| supports, use `reference_image_urls`, up to 4 |
| `viduq3p-1080p`| Q3 Pro | supports | supports | supports, use `image`+`last_image`| supports, use `reference_image_urls`, up to 4 |
| `viduq3t-540p`| Q3 Turbo | supports | supports | supports, use `image`+`last_image`| supports, use `reference_image_urls`, up to 4 |
| `viduq3t-720p`| Q3 Turbo | supports | supports | supports, use `image`+`last_image`| supports, use `reference_image_urls`, up to 4 |
| `viduq3t-1080p`| Q3 Turbo | supports | supports | supports, use `image`+`last_image`| supports, use `reference_image_urls`, up to 4 |

Note:

- Modellist 6 Model.
- Create Task use Model.
- Q3 Turbo or use; multiple reference images use Q3 Pro.

## 2. Endpoint

### 2.1 Create Video Task

```http
POST /v1/video/generations
```

request headers:

```http
Authorization: Bearer sk-***
Content-Type: application/json
```

### 2.2 Query Video Task

```http
GET /v1/video/generations/{task_id}
```

compatibilityqueryEndpoint:

```http
GET /v1/videos/{task_id}
```

## 3. Parameter Reference

| Parameters | Type | Required | Note |
| --- | --- | --- | --- |
| `model` | string | Yes | use 6 Modelone of |
| `prompt` | string | Yes | video generationprompt |
| `duration`| integer/string | Yes | Output video duration, recommended to pass `1-16` integer |
| `aspect_ratio`| string | recommended to pass | Ratio,`16:9`, `9:16`, `1:1` |
| `image` | string | /first-and-last-frame required | public image URL; single-image-to-video only pass one |
| `last_image`| string | first-and-last-frame required | image URL; and `image` use, legacy Field |
| `reference_image_urls` | string[] | multiple reference imagesRequired | Q3 Pro multiple reference imagesField, up to 4 public image URL |
| `extra_body.audio`| boolean | No | Whether to generate; requires pass `false` |
| `extra_body.seed` | integer | No | random seed |
| `extra_body.bgm`| boolean | No | Whether music; requires pass `false` |

Fielduseconstraints:

- text-to-video: only pass `prompt`, `model`, `duration`, Optional values `aspect_ratio`.
- single-image-to-video: pass `image`, do not pass both array.
- first-and-last-frame: pass `image`+`last_image`, do not use first-and-last-frame `images` array.
- multiple reference images: pass `reference_image_urls`, do not pass both `images`, `image_urls` or pass image.
- `reference_image_urls` recommended `viduq3p-*`, do not `viduq3t-*`.

## 4. Request Examples

In the examples below, `{BASE_URL}` can be replaced with `https://api.aijisu.cn`.

### 4.1 text-to-video

```bash
curl -X POST "{BASE_URL}/v1/video/generations" \
 -H "Authorization: Bearer sk-***" \
 -H "Content-Type: application/json" \
 -d '{"model": "viduq3p-720p",
 "prompt": " camera, and, slow camera push-in. ",
 "aspect_ratio": "16:9",
 "duration": 5,
 "extra_body": {"audio": false,
 "seed": 42,
 "bgm": false}}'
```

### 4.2 single-image-to-video

```bash
curl -X POST "{BASE_URL}/v1/video/generations" \
 -H "Authorization: Bearer sk-***" \
 -H "Content-Type: application/json" \
 -d '{"model": "viduq3t-540p",
 "prompt": " camera, natural motion, camera. ",
 "image": "https://example.com/source.png",
 "duration": 5,
 "extra_body": {"seed": 42}}'
```

### 4.3 first-and-last-frame video

```bash
curl -X POST "{BASE_URL}/v1/video/generations" \
 -H "Authorization: Bearer sk-***" \
 -H "Content-Type: application/json" \
 -d '{"model": "viduq3p-720p",
 "prompt": ", keep identity stable, action. ",
 "image": "https://example.com/head.png",
 "last_image": "https://example.com/tail.png",
 "duration": 6,
 "extra_body": {"seed": 42}}'
```

### 4.4 reference-image-to-video

```bash
curl -X POST "{BASE_URL}/v1/video/generations" \
 -H "Authorization: Bearer sk-***" \
 -H "Content-Type: application/json" \
 -d '{"model": "viduq3p-720p",
 "prompt": "A @Image1 walking through a beach in the visual style of @Image2",
 "reference_image_urls": ["https://example.com/ref-1.png",
 "https://example.com/ref-2.png"],
 "aspect_ratio": "16:9",
 "duration": 5,
 "extra_body": {"audio": false,
 "seed": 42,
 "bgm": false}}'
```

## 5. Response Examples

Create TaskSuccess:

```json
{
  "id": "task_xxxxx",
  "task_id": "task_xxxxx",
  "object": "video.generation.job",
  "model": "viduq3p-720p",
  "status": "queued",
  "progress": 0,
  "created_at": 1774507626
}
```

Query Task completed:

```json
{
  "id": "task_xxxxx",
  "task_id": "task_xxxxx",
  "object": "video.generation.job",
  "model": "viduq3p-720p",
  "status": "completed",
  "progress": 100,
  "video_url": "https://example.com/output.mp4",
  "created_at": 1774507626
}
```

 Status:

| Status | |
| --- | --- |
| `queued` | |
| `in_progress` | generation |
| `completed` | completed |
| `failed` | Failed |

## 6. Common Errors

### 6.1 to change `images`

do not pass:

```json
{
  "model": "viduq3p-720p",
  "prompt": "first-and-last-frame ",
  "images": [
    "https://example.com/head.png",
    "https://example.com/tail.png"
  ],
  "duration": 6
}
```
`images` reference. first-and-last-frame use `image`+`last_image`; multiple reference images use `reference_image_urls`.

### 6.2 Q3 Turbo use multiple reference images

do not `viduq3t-*` pass `reference_image_urls`. Q3 Turbo or use.

### 6.3 use Model

Create Task use Model 6 Model. Model Model do not `model` Parameterspass in.

## 7. and legacy

| | legacy | |
| --- | --- | --- |
| text-to-videoNote | `prompt` Fielddescription "only pass prompt image-to-video" | only pass `prompt` text-to-video |
| RequiredField | OpenAPI schema to change `image`, `last_image`, `reference_image_urls`, `aspect_ratio`, `extra_body` Required | only `model`, `prompt`, `duration` Required; imageField scenarioConditional |
| first-and-last-frame field | use `image`+`last_image`|`image`+`last_image`, user requires Field |
| first-and-last-framepass | Notedo not pass `images`| do not use first-and-last-frame `images` array;`images` Yesfirst-and-last-frame |
| multiple reference imagesModel | legacyExample Model Model | use `viduq3p-*`+`reference_image_urls` |
| multiple reference images | Note | recommendedup to 4 |
| Q3 Turbo multiple reference images | constraints | `viduq3t-*` multiple reference images |
| ExampleModel | legacyExample Model Model | user reserved 6 Model |
| `duration` Type | schema string, Examplepass number | recommended to passinteger; compatibility string |
| `extra_body.bgm` Type | schema string | boolean use |
| Query Task | createEndpoint | `GET /v1/video/generations/{task_id}` andcompatibility `GET /v1/videos/{task_id}` |
