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

# Wan-2.2-Plus - Image To Video - gptproto

> Wan-2.2-Plus — Image To Video (gptproto). GPTProto API reference.

Generate videos from input images using Qwen's wan-2.2-plus model with GPTProto format API.

<CodeGroup>
  ```bash cURL theme={null}
  curl --location 'https://gptproto.com/api/v3/alibaba/wan-2.2-plus/image-to-video' \
  --header 'Authorization: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
      "duration": 5,
      "image": "https://d1q70pf5vjeyhc.cloudfront.net/media/fb8f674bbb1a429d947016fd223cfae1/images/1758167279419187099_bdfkyyQf.jpeg",
      "prompt": "A young woman sits by a sun-drenched window, the gentle breeze softly blowing her hair as she focuses on reading a book, a calm and content smile on her face. The lighting is soft, creating a warm, tranquil atmosphere. Cinematic close-up shot.\n\n",
      "enable_sync_mode": false,
      "seed": -1,
      "resolution": "1080p"
  }'
  ```

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

  url = "https://gptproto.com/api/v3/alibaba/wan-2.2-plus/image-to-video"
  headers = {
      "Authorization": "YOUR_API_KEY",
      "Content-Type": "application/json"
  }

  data = {
      "duration": 5,
      "image": "https://d1q70pf5vjeyhc.cloudfront.net/media/fb8f674bbb1a429d947016fd223cfae1/images/1758167279419187099_bdfkyyQf.jpeg",
      "prompt": "A young woman sits by a sun-drenched window, the gentle breeze softly blowing her hair as she focuses on reading a book, a calm and content smile on her face. The lighting is soft, creating a warm, tranquil atmosphere. Cinematic close-up shot.\n\n",
      "enable_sync_mode": False,
      "seed": -1,
      "resolution": "1080p"
  }

  response = requests.post(url, headers=headers, json=data)
  result = response.json()
  print(json.dumps(result, indent=2))
  ```

  ```javascript JavaScript theme={null}
  const url = "https://gptproto.com/api/v3/alibaba/wan-2.2-plus/image-to-video";
  const headers = {
    "Authorization": "YOUR_API_KEY",
    "Content-Type": "application/json"
  };

  const data = {
    "duration": 5,
    "image": "https://d1q70pf5vjeyhc.cloudfront.net/media/fb8f674bbb1a429d947016fd223cfae1/images/1758167279419187099_bdfkyyQf.jpeg",
    "prompt": "A young woman sits by a sun-drenched window, the gentle breeze softly blowing her hair as she focuses on reading a book, a calm and content smile on her face. The lighting is soft, creating a warm, tranquil atmosphere. Cinematic close-up shot.\n\n",
    "enable_sync_mode": false,
    "seed": -1,
    "resolution": "1080p"
  };

  fetch(url, {
    method: "POST",
    headers: headers,
    body: JSON.stringify(data)
  })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error("Error:", error));
  ```

  ```go Go theme={null}
  package main

  import (
      "bytes"
      "encoding/json"
      "fmt"
      "io/ioutil"
      "net/http"
  )

  func main() {
      url := "https://gptproto.com/api/v3/alibaba/wan-2.2-plus/image-to-video"

      payload := []byte(`{
      "duration": 5,
      "image": "https://d1q70pf5vjeyhc.cloudfront.net/media/fb8f674bbb1a429d947016fd223cfae1/images/1758167279419187099_bdfkyyQf.jpeg",
      "prompt": "A young woman sits by a sun-drenched window, the gentle breeze softly blowing her hair as she focuses on reading a book, a calm and content smile on her face. The lighting is soft, creating a warm, tranquil atmosphere. Cinematic close-up shot.\n\n",
      "enable_sync_mode": false,
      "seed": -1,
      "resolution": "1080p"
  }`)

      req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
      req.Header.Set("Authorization", "YOUR_API_KEY")
      req.Header.Set("Content-Type", "application/json")

      client := &http.Client{}
      resp, err := client.Do(req)
      if err != nil {
          panic(err)
      }
      defer resp.Body.Close()

      body, _ := ioutil.ReadAll(resp.Body)
      fmt.Println(string(body))
  }
  ```
</CodeGroup>

## Response

<CodeGroup>
  ```json 200 - Success theme={null}
  {
    "task_id": "abc123def456",
    "status": "processing",
    "message": "Video generation task submitted successfully"
  }
  ```

  ```json 401 - Invalid signature theme={null}
  {
    "error": {
      "message": "Invalid signature",
      "type": "401"
    }
  }
  ```

  ```json 403 - Insufficient balance theme={null}
  {
    "error": {
      "message": "Insufficient balance",
      "type": "403"
    }
  }
  ```

  ```json 500 - Internal server error theme={null}
  {
    "error": {
      "message": "Internal server error",
      "type": "500"
    }
  }
  ```

  ```json 503 - Content policy violation theme={null}
  {
    "error": {
      "message": "Input may not meet the guidelines. Please adjust and try again.",
      "type": "503"
    }
  }
  ```
</CodeGroup>

## Parameters

| Parameter          | Type    | Required | Default   | Range                | Description                                                                                                                       |
| ------------------ | ------- | -------- | --------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `image`            | string  | ✅ Yes    | -         | -                    | URL of the input image to be used as the starting frame for video generation                                                      |
| `prompt`           | string  | ✅ Yes    | -         | -                    | Text description for the video generation, describing the desired scene, actions, and style                                       |
| `duration`         | integer | ❌ No     | `5`       | -                    | Duration of the generated video in seconds                                                                                        |
| `resolution`       | string  | ❌ No     | `"1080p"` | `1080p`, `480p`      | Video resolution. Available options: `1080p` for high definition or `480p` for standard definition                                |
| `enable_sync_mode` | boolean | ❌ No     | `false`   | -                    | Enable synchronous mode. When set to `true`, the API will wait for the video generation to complete before returning the response |
| `seed`             | integer | ❌ No     | `-1`      | `-1` \~ `2147483647` | Random seed for generation reproducibility. Set to `-1` for random generation                                                     |
