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

# VIDU Q2 Turbo Start-End Frame to Video

VIDU Q2 Turbo start-end frame to video API, Turbo version balances generation speed and video quality. Quickly generates coherent video content from start and end frame images.

<Tip>
  This is an **asynchronous** API; only the **task\_id** will be returned. You should use the **task\_id** to request the [**Task Result API**](/api-reference/model-apis-task-result) to retrieve the video generation results.
</Tip>

## Request Headers

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

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

## Request Body

<ParamField body="bgm" type="boolean" default={false}>
  Whether to add background music. true: automatically select suitable music from preset BGM library; false: no BGM. BGM duration adapts to video length automatically.
</ParamField>

<ParamField body="seed" type="integer">
  Random seed. Default or 0 uses random number. Manual setting uses specified seed.
</ParamField>

<ParamField body="images" type="array" required={true}>
  Images array, first image is start frame, second image is end frame. Supports two images. Note: 1) Resolution ratio of start/end frames should be between 0.8-1.25; 2) Supports Base64 encoding or image URL; 3) Supports png, jpeg, jpg, webp formats; 4) Max size 50M per image; 5) Base64 must include proper content type, 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 prompt. true: system automatically recommends and uses prompt (consumes 10 extra credits); false: use input prompt
</ParamField>

<ParamField body="prompt" type="string">
  Text prompt describing the desired video content. Max 2000 characters. Note: If is\_rec is enabled, this parameter will be ignored

  Length limit: 0 - 2000
</ParamField>

<ParamField body="wm_url" type="string">
  Watermark content image URL. If not provided, uses default watermark: 'Generated by AI'
</ParamField>

<ParamField body="payload" type="string">
  Pass-through parameter, no processing, data transmission only. Max 1048576 characters.

  Length limit: 0 - 1048576
</ParamField>

<ParamField body="duration" type="integer" default={5}>
  Video duration in seconds, supports 1-8 seconds

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

<ParamField body="off_peak" type="boolean" default={false}>
  Off-peak mode. true: off-peak generation (lower credits, completed within 48 hours); false: immediate generation. Note: Off-peak tasks can be manually cancelled and credits refunded if not completed.
</ParamField>

<ParamField body="meta_data" type="string">
  Metadata identifier in JSON string format. Pass-through field. You can define custom format or use example format. When empty, uses Vidu-generated metadata.
</ParamField>

<ParamField body="watermark" type="boolean" default={false}>
  Whether to add watermark. Default: no watermark. Query watermarked video via watermarked\_url parameter.
</ParamField>

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

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

<ParamField body="wm_position" type="integer" default={3}>
  Watermark position: 1=top-left, 2=top-right, 3=bottom-right (default), 4=bottom-left

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

<ParamField body="movement_amplitude" type="string" default="auto">
  Movement amplitude, controls the intensity of object movement

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

## Response

<ResponseField name="task_id" type="string" required={true}>
  Use the task\_id to request the [Task Result API](/api-reference/model-apis-task-result) to retrieve the generated outputs.
</ResponseField>

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