> ## 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 Q2 Pro Start-End Frame to Video

Generate a coherent video from first and last frame images. Supports 540p, 720p, and 1080p resolutions.

<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="bgm" type="boolean" default={false}>
  Whether to add background music to the generated video. true: the system will automatically select suitable music from a preset BGM library and add it. false: no BGM is added. BGM has no duration limit; the system automatically adapts to the video duration.
</ParamField>

<ParamField body="seed" type="integer">
  Random seed. When not provided or set to 0, a random number is used. When manually set, the specified seed is used.
</ParamField>

<ParamField body="images" type="array" required={true}>
  Image array where the first image is treated as the first frame and the second image as the last frame. The model generates a video based on the images provided in this parameter. Supports two images. Note 1: The resolutions of the first and last frame images must be similar, with the first frame resolution / last frame resolution between 0.8 and 1.25. Note 2: Supports Base64-encoded images or image URLs (must be accessible). Note 3: Supported formats: png, jpeg, jpg, webp. Note 4: Image size must not exceed 50 MB. Note 5: Base64 encoding must include the appropriate content type string, e.g., data:image/png;base64,{base64_encode}.

  Array length: 2 - 2
</ParamField>

<ParamField body="is_rec" type="boolean" default={false}>
  Whether to use recommended prompts. true: the system automatically recommends a prompt and uses it to generate the video (each task consumes 10 additional credits). false: generates the video based on the input prompt.
</ParamField>

<ParamField body="prompt" type="string">
  Text prompt describing the video to generate. Note 1: Character length must not exceed 2,000 characters. Note 2: If the is\_rec recommended prompt parameter is used, the model will disregard the prompt provided in this parameter.

  Length limit: 0 - 2000
</ParamField>

<ParamField body="wm_url" type="string">
  Watermark content as an image URL. When not provided, the default watermark is used: "Content generated by AI".
</ParamField>

<ParamField body="payload" type="string">
  Pass-through parameter. No processing is performed; data is transmitted as-is. Maximum 1,048,576 characters.

  Length limit: 0 - 1048576
</ParamField>

<ParamField body="duration" type="integer" default={5}>
  Video duration (in seconds). Supports 1-8 seconds.

  Possible values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`
</ParamField>

<ParamField body="off_peak" type="boolean" default={false}>
  Off-peak mode. true: generates the video during off-peak hours (lower credit consumption, generated within 48 hours). false: generates the video immediately. Note: Tasks submitted in off-peak mode that are not completed will be automatically canceled and credits refunded. You can also manually cancel off-peak tasks.
</ParamField>

<ParamField body="meta_data" type="string">
  Metadata identifier as a JSON-formatted string. Pass-through field. You can customize the format or use the example format. When this parameter is empty, the default metadata identifier generated by Vidu is used.
</ParamField>

<ParamField body="watermark" type="boolean" default={false}>
  Whether to add a watermark. Default: no watermark. You can use the watermarked\_url parameter to retrieve the watermarked video.
</ParamField>

<ParamField body="resolution" type="string" default="720p">
  Output video resolution. Default: 720p.

  Possible values: `540p`, `720p`, `1080p`
</ParamField>

<ParamField body="wm_position" type="integer" default={3}>
  Watermark position, indicating where the watermark appears on the image. 1: top-left. 2: top-right. 3: bottom-right (default). 4: bottom-left.

  Possible values: `1`, `2`, `3`, `4`
</ParamField>

<ParamField body="movement_amplitude" type="string" default="auto">
  Movement amplitude, controlling the intensity of object motion in the video.

  Possible values: `auto`, `small`, `medium`, `large`
</ParamField>

## Response

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

<ResponseField name="provider_request_id" type="string" required={false}>
  Provider request ID (optional)
</ResponseField>
