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

# Wan 3.0 (reference-to-video) · Video to video

> Wan 3.0 all-in-one video model: quad-modal reference, native 2-30s duration, pixel-level consistency and synchronized audio.

[← Wan](/api-documentation/ai-generation/models/wan)

**Model name:** `wan3.0/reference-to-video`\
**Generation type:** `video_to_video`\
**Endpoint:** [`POST /api/asset_generator/`](/api-reference/ai-generation/post-ai-generation)

## Pricing

| Duration | 480P | 720P | 1080P |
| - | - | - | - |
| 2s | **1.5** | **2.5** | **4.5** |
| 3s | **2.0** | **3.5** | **7.0** |
| 4s | **2.5** | **4.5** | **9.0** |
| 5s | **3.0** | **5.5** | **11.0** |
| 6s | **3.5** | **7.0** | **13.5** |
| 7s | **4.0** | **8.0** | **15.5** |
| 8s | **4.5** | **9.0** | **18.0** |
| 9s | **5.5** | **10.0** | **20.0** |
| 10s | **6.0** | **11.0** | **22.0** |
| 11s | **6.5** | **12.5** | **24.5** |
| 12s | **7.0** | **13.5** | **26.5** |
| 13s | **7.5** | **14.5** | **29.0** |
| 14s | **8.0** | **15.5** | **31.0** |
| 15s | **8.5** | **16.5** | **33.0** |
| 16s | **9.0** | **18.0** | **35.5** |
| 17s | **10.0** | **19.0** | **37.5** |
| 18s | **10.5** | **20.0** | **40.0** |
| 19s | **11.0** | **21.0** | **42.0** |
| 20s | **11.5** | **22.0** | **44.0** |
| 21s | **12.0** | **23.5** | **46.5** |
| 22s | **12.5** | **24.5** | **48.5** |
| 23s | **13.0** | **25.5** | **51.0** |
| 24s | **13.5** | **26.5** | **53.0** |
| 25s | **14.0** | **27.5** | **55.0** |
| 26s | **15.0** | **29.0** | **57.5** |
| 27s | **15.5** | **30.0** | **59.5** |
| 28s | **16.0** | **31.0** | **62.0** |
| 29s | **16.5** | **32.0** | **64.0** |
| 30s | **17.0** | **33.0** | **66.0** |

Prices are per output. When a request asks for several outputs, the charge is this price times the number of outputs.

These prices assume no billable reference inputs. The charge goes up for each second of reference video (up to 15 seconds).

## Quick start

The example uses sample media from our CDN. Swap in publicly accessible URLs for your own files.

<CodeGroup>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.creatify.ai/api/asset_generator/ \
    --header 'Content-Type: application/json' \
    --header 'X-API-ID: your-api-id' \
    --header 'X-API-KEY: your-api-key' \
    --data '{
      "model_name": "wan3.0/reference-to-video",
      "input_params": {
        "prompt": "The woman from the reference image talks to the camera in a bright café, with the gestures of the reference video.",
        "image_urls": [
          "https://d35ghwdno3nak3.cloudfront.net/tutorial/avatar-aurora/recommendation-4.jpg"
        ],
        "video_urls": [
          "https://d35ghwdno3nak3.cloudfront.net/tutorial/asset-generator/sample-video.mp4"
        ],
        "audio_urls": [
          "https://d35ghwdno3nak3.cloudfront.net/user/18165/2025-09-15/2d20-req-3VV9TLO6qlTOflMMQBRe-0-s.mp3"
        ]
      }
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.creatify.ai/api/asset_generator/",
      headers={"X-API-ID": "your-api-id", "X-API-KEY": "your-api-key"},
      json={
          "model_name": "wan3.0/reference-to-video",
          "input_params": {
              "prompt": "The woman from the reference image talks to the camera in a bright café, with the gestures of the reference video.",
              "image_urls": [
                  "https://d35ghwdno3nak3.cloudfront.net/tutorial/avatar-aurora/recommendation-4.jpg"
              ],
              "video_urls": [
                  "https://d35ghwdno3nak3.cloudfront.net/tutorial/asset-generator/sample-video.mp4"
              ],
              "audio_urls": [
                  "https://d35ghwdno3nak3.cloudfront.net/user/18165/2025-09-15/2d20-req-3VV9TLO6qlTOflMMQBRe-0-s.mp3"
              ]
          },
      },
  )
  print(response.json()["id"])
  ```
</CodeGroup>

## Input parameters

Send these fields in `input_params`.

<ParamField body="prompt" type="string" required>
  Describe the video. Reference your inputs as @image1, @video1 — numbered separately per type, in the order added.

  Minimum characters: `1`.
  Maximum characters: `5000`.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Up to 10 reference images (JPEG, PNG, BMP, WEBP, max 20MB each).

  Maximum items: `10`.
</ParamField>

<ParamField body="video_urls" type="string[]">
  Up to 5 reference videos (MP4, MOV, max 15s combined, 100MB total). Reference as 'Video 1', 'Video 2'. Generated video (reference seconds + duration) is capped at 30s total.

  Maximum items: `5`.
</ParamField>

<ParamField body="audio_urls" type="string[]">
  Up to 5 reference audio clips (WAV, MP3, max 15s combined, 15MB total). Requires at least one image or video reference.

  Maximum items: `5`.
</ParamField>

<ParamField body="duration" type="string" default={"5"}>
  Duration of the generated video in seconds.

  Allowed values: `"2"`, `"3"`, `"4"`, `"5"`, `"6"`, `"7"`, `"8"`, `"9"`, `"10"`, `"11"`, `"12"`, `"13"`, `"14"`, `"15"`, `"16"`, `"17"`, `"18"`, `"19"`, `"20"`, `"21"`, `"22"`, `"23"`, `"24"`, `"25"`, `"26"`, `"27"`, `"28"`, `"29"`, `"30"`.
</ParamField>

<ParamField body="aspect_ratio" type="string" default={"adaptive"}>
  The aspect ratio of the generated video. adaptive follows the reference media.

  Allowed values: `"adaptive"`, `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"3:4"`.
</ParamField>

<ParamField body="resolution" type="string" default={"1080P"}>
  Video resolution. 1080P costs more than 720P and 480P.

  Allowed values: `"480P"`, `"720P"`, `"1080P"`.
</ParamField>

<ParamField body="generate_audio" type="boolean" default={true}>
  Generate synchronized audio for the video. Same price with or without audio.
</ParamField>

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

  Minimum: `0`.
  Maximum: `2147483647`.
</ParamField>

<Accordion title="Complete JSON schema">
  ```json theme={null}
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "prompt"
    ],
    "properties": {
      "prompt": {
        "type": "string",
        "title": "Prompt",
        "minLength": 1,
        "maxLength": 5000,
        "description": "Describe the video. Reference your inputs as @image1, @video1 — numbered separately per type, in the order added.",
        "x-support-types": [
          "mentions"
        ]
      },
      "image_urls": {
        "type": "array",
        "items": {
          "type": "string",
          "limit_description": "Max file size: 20MB. Supported formats: JPEG, PNG, BMP, WEBP."
        },
        "title": "Reference Images",
        "maxItems": 10,
        "description": "Up to 10 reference images (JPEG, PNG, BMP, WEBP, max 20MB each).",
        "max_file_size": 20971520,
        "min_width": 240,
        "max_width": 8000,
        "min_height": 240,
        "max_height": 8000,
        "min_aspect_ratio": 0.125,
        "max_aspect_ratio": 8.0,
        "x-mention-prefix": "image"
      },
      "video_urls": {
        "type": "array",
        "items": {
          "type": "string",
          "limit_description": "Max 5 clips, max 15s combined, max 100MB total. Supported formats: MP4, MOV."
        },
        "title": "Reference Videos",
        "maxItems": 5,
        "description": "Up to 5 reference videos (MP4, MOV, max 15s combined, 100MB total). Reference as 'Video 1', 'Video 2'. Generated video (reference seconds + duration) is capped at 30s total.",
        "max_file_size": 104857600,
        "min_duration": 1,
        "max_total_duration": 15,
        "x-combined-duration-limit": {
          "field": "duration",
          "max": 30
        }
      },
      "audio_urls": {
        "type": "array",
        "items": {
          "type": "string",
          "limit_description": "Max 5 clips, max 15s combined, max 15MB. Supported formats: WAV, MP3."
        },
        "title": "Reference Audio",
        "maxItems": 5,
        "description": "Up to 5 reference audio clips (WAV, MP3, max 15s combined, 15MB total). Requires at least one image or video reference.",
        "max_file_size": 15728640,
        "min_duration": 1,
        "max_total_duration": 15
      },
      "duration": {
        "enum": [
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "9",
          "10",
          "11",
          "12",
          "13",
          "14",
          "15",
          "16",
          "17",
          "18",
          "19",
          "20",
          "21",
          "22",
          "23",
          "24",
          "25",
          "26",
          "27",
          "28",
          "29",
          "30"
        ],
        "type": "string",
        "title": "Duration",
        "default": "5",
        "description": "Duration of the generated video in seconds."
      },
      "aspect_ratio": {
        "enum": [
          "adaptive",
          "16:9",
          "9:16",
          "1:1",
          "4:3",
          "3:4"
        ],
        "type": "string",
        "title": "Aspect Ratio",
        "default": "adaptive",
        "description": "The aspect ratio of the generated video. adaptive follows the reference media."
      },
      "resolution": {
        "enum": [
          "480P",
          "720P",
          "1080P"
        ],
        "type": "string",
        "title": "Resolution",
        "default": "1080P",
        "description": "Video resolution. 1080P costs more than 720P and 480P.",
        "x-advance-settings": true
      },
      "generate_audio": {
        "type": "boolean",
        "title": "Generate Audio",
        "default": true,
        "description": "Generate synchronized audio for the video. Same price with or without audio.",
        "x-advance-settings": true
      },
      "seed": {
        "type": "integer",
        "minimum": 0,
        "maximum": 2147483647,
        "title": "Seed",
        "description": "Random seed for reproducibility.",
        "x-advance-settings": true
      }
    }
  }
  ```
</Accordion>

## Response

The request returns the task with `status: "initializing"`. Poll [GET /api/asset\_generator/\{id}/](/api-reference/ai-generation/get-ai-generation-) until `status` is `done` or `failed`, or pass a `webhook_url` to be notified. A finished task lists its files in `assets` and the credits it charged in `credits_used`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.