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

# Image to Video

> Animate a static image into a video using Vidu.

<Note>
  Check out [Vidu pricing](/pricing#video-models) — enable `off_peak: true` for **50% off**.
</Note>

## Body Parameters

<ParamField body="model" type="string" required>
  Vidu model to use. Options:

  * `viduq3-pro` — Latest flagship, supports audio sync (1–16s), \$0.07–\$0.16/sec
  * `viduq3-turbo` — Fast Q3, supports audio sync (1–16s), \$0.04–\$0.08/sec

  Pricing varies by resolution. Enable `off_peak: true` for 50% off.
</ParamField>

<ParamField body="input" type="object" required>
  Provider-specific parameters for the generation request.

  <Expandable title="properties">
    <ParamField body="images" type="string[]" required>
      Image array for the start frame. Only 1 image is accepted. Supports public URL or base64 format.

      * Formats: `png`, `jpeg`, `jpg`, `webp`
      * Aspect ratio must be between 1:4 and 4:1
      * Max image size: 50 MB
    </ParamField>

    <ParamField body="prompt" type="string">
      Text description to guide the video generation. Max 5,000 characters.

      Note: If `is_rec` is enabled, the model will ignore this prompt.
    </ParamField>

    <ParamField body="duration" type="number">
      Video length in seconds (1–16).
    </ParamField>

    <ParamField body="resolution" type="string" default="720p">
      Output resolution. Options: `540p`, `720p`, `1080p`
    </ParamField>

    <ParamField body="audio" type="boolean">
      Enable audio-video sync output. Default `true` for Q3 models.

      When enabled, the video will include dialogue and sound effects.
    </ParamField>

    <ParamField body="voice_id" type="string">
      Voice ID for audio generation. Only effective when `audio` is `true`.

      See [Vidu Voice List](https://shengshu.feishu.cn/sheets/WM45sosS7hEj2mtAATvclDAWnNb) for available voices. You can also use the Voice Clone API to create custom voices.
    </ParamField>

    <ParamField body="is_rec" type="boolean" default={false}>
      Use Vidu's recommended prompt instead of user-provided prompt.

      Note: Enabling this consumes an additional 10 credits per task.
    </ParamField>

    <ParamField body="bgm" type="boolean" default={false}>
      Add background music to the generated video.

      Note: Not available for Q3 models. Ineffective when Q2 duration is 9–10s.
    </ParamField>

    <ParamField body="movement_amplitude" type="string" default="auto">
      Movement amplitude of objects in the frame. Options: `auto`, `small`, `medium`, `large`

      Note: Ineffective for Q2 and Q3 models.
    </ParamField>

    <ParamField body="seed" type="number">
      Random seed for reproducibility.
    </ParamField>

    <ParamField body="off_peak" type="boolean" default={false}>
      Enable off-peak mode for 50% discount. Tasks complete within 48 hours.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="webhookUrl" type="string">
  URL to receive a webhook when the task completes.
</ParamField>

<ParamField body="metadata" type="object">
  Custom key-value metadata to attach to the task.
</ParamField>

<ResponseExample>
  ```json 202 theme={null}
  {
    "success": true,
    "data": {
      "id": "task_abc123",
      "status": "pending",
      "type": "image-to-video",
      "provider": "vidu",
      "model": "viduq3-turbo",
      "created_at": "2025-01-15T10:00:00Z",
      "estimated_seconds": 30
    }
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": {
      "code": "VALIDATION_ERROR",
      "message": "Invalid request parameters"
    }
  }
  ```
</ResponseExample>
