> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myrouter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Vidu 2.0 Reference-to-Video

Vidu 2.0 Reference-to-Video generates videos using reference images and text descriptions. Supports various subjects such as characters and objects. By uploading multiple angles of a subject, you can create videos that maintain visual consistency.

<Tip>
  This is an **async** API that only returns the task\_id of the async task. Use the task\_id to call the [Get Async Task Result API](/docs/models/reference-get-async-task-result) to retrieve the generated result.
</Tip>

## Request Headers

<ParamField header="Content-Type" type="string" required={true}>
  Enum: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Bearer authentication format: Bearer \{\{API Key}}.
</ParamField>

## Request Body

<ParamField body="images" type="string[]" required={true}>
  The model will use the provided images as references to generate videos with consistent subjects.

  Image field requirements:

  * Accepts 1 to 3 images
  * Image resources can be provided via URL or Base64 encoding
  * Must use one of the following formats: PNG, JPEG, JPG, WebP
  * Image dimensions must be at least 128x128 pixels
  * Image aspect ratio must be less than 1:4 or 4:1
  * All images limited to 50MB
  * Base64 decoded length must be less than 10MB and must include the appropriate content type string. For example:

  ```
  data:image/png;base64,{base64_encode}
  ```
</ParamField>

<ParamField body="prompt" type="string" required={true}>
  Text prompt for video generation, maximum length of 1500 characters.
</ParamField>

<ParamField body="duration" type="integer" required={false}>
  Video duration (in seconds). Default: 4 seconds. Options: `4`.
</ParamField>

<ParamField body="seed" type="integer" required={false}>
  Random seed for video generation.

  * Default: Random seed value
  * Manually set values will override the default random seed
</ParamField>

<ParamField body="aspect_ratio" type="string" required={false}>
  Aspect ratio of the output video. Default: `16:9`<br />
  Possible values: `16:9`, `9:16`, `1:1`
</ParamField>

<ParamField body="resolution" type="string" required={false}>
  Resolution parameter. Default: 360p. Options: `360p` and `720p`.
</ParamField>

<ParamField body="movement_amplitude" type="string" required={false}>
  Motion amplitude of objects in the scene. Default: `auto`<br />
  Possible values: `auto`, `small`, `medium`, `large`
</ParamField>

<ParamField body="bgm" type="boolean" required={false}>
  Whether to add background music to the generated video. Default: `false`<br />
  Possible values: `true`, `false`

  When set to true, the system will automatically add suitable BGM. There is no duration limit for BGM; the system will automatically adapt it.
</ParamField>

## Response

<ResponseField name="task_id" type="string" required={true}>
  The task\_id of the async task. Use the task\_id to call the [Get Async Task Result API](/docs/models/reference-get-async-task-result) to retrieve the generated result.
</ResponseField>
