> ## 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.

# Wan 2.7 Reference-to-Video

Wan 2.7 Reference-to-Video model with multimodal input support (text/image/video). Can generate single-character performance or multi-character interaction videos using reference characters. Supports intelligent multi-shot generation. 720P and 1080P resolutions, duration 2\~10 seconds, billed per second. Output includes audio by default.

<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**](/docs/ja/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="seed" type="integer">
  Random seed for improving reproducibility. Range: \[0, 2147483647].

  Value range: \[0, 2147483647]
</ParamField>

<ParamField body="size" type="string" default="1920*1080">
  Output video resolution (width*height), affects pricing. 720P: 1280*720 (16:9), 720*1280 (9:16), 960*960 (1:1), 1088*832 (4:3), 832*1088 (3:4). 1080P: 1920*1080 (16:9), 1080*1920 (9:16), 1440*1440 (1:1), 1632*1248 (4:3), 1248\*1632 (3:4).

  Optional values: `1280*720`, `720*1280`, `960*960`, `1088*832`, `832*1088`, `1920*1080`, `1080*1920`, `1440*1440`, `1632*1248`, `1248*1632`
</ParamField>

<ParamField body="audio" type="boolean" default={true}>
  Whether to generate audio in the video, affects pricing. Default true (with audio).
</ParamField>

<ParamField body="media" type="object[]" required={true}>
  Reference media array for character appearance, motion and voice extraction. Items map to character1, character2 etc. in order. Images: 0-5, Videos: 0-3, Total \<= 5. Image formats: JPEG, JPG, PNG, BMP, WEBP, resolution \[240,8000]px, max 10MB. Video formats: MP4, MOV, duration 1-30s, max 100MB. Audio formats: MP3, WAV, FLAC, duration 3-30s.

  Array length: 1 - 5

  <Expandable title="properties" defaultOpen={true}>
    <ParamField body="url" type="string" required={true}>
      Media file URL.
    </ParamField>

    <ParamField body="type" type="string" required={true}>
      Media type. reference\_image: reference image for character appearance; reference\_video: reference video for character motion and appearance; first\_frame: first frame image to control video starting frame.

      Optional values: `reference_image`, `reference_video`, `first_frame`
    </ParamField>

    <ParamField body="reference_voice" type="string">
      Character reference audio URL for voice cloning. Formats: MP3, WAV, FLAC, duration 3\~30s.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="prompt" type="string" required={true}>
  Text prompt describing desired video content. Use character1, character2 etc. to reference characters from media array in order. Each reference (video or image) contains a single character. Supports Chinese and English, max 1500 characters.

  Length limit: 0 - 1500
</ParamField>

<ParamField body="duration" type="integer" default={5}>
  Video duration in seconds, billed per second. Range: \[2, 10] integer.

  Value range: \[2, 10]
</ParamField>

<ParamField body="shot_type" type="string" default="single">
  Shot type. single = one continuous shot (default), multi = multiple shots with transitions. Takes priority over prompt.

  Optional values: `single`, `multi`
</ParamField>

<ParamField body="watermark" type="boolean" default={false}>
  Add watermark to the output video (bottom-right corner).
</ParamField>

<ParamField body="negative_prompt" type="string">
  Negative prompt describing undesired content in the video. Supports Chinese and English, max 500 characters.

  Length limit: 0 - 500
</ParamField>

## Response

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