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

# Seedance-1-0-Lite-T2v-250428 - Text To Video

> Simple text to video via seedance 1.0 lite. Efficient AI video generation for social media and fast content prototyping.

## Authentication

1. Sign up for a GPTProto account at [https://gptproto.com](https://gptproto.com)
2. Navigate to the API Keys section in your dashboard
3. Generate a new API key (sk-xxxxx)
4. Copy and securely store your API key
   For authentication details, please refer to the [Authentication](https://docs.gptproto.com/authentication) section.

## Initiate Request

<CodeGroup>
  ```bash cURL theme={null}
  curl --location --request POST 'https://gptproto.com/api/v3/contents/generations/tasks' \
  --header 'Authorization: GPTPROTO_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "model": "seedance-1-0-lite-t2v-250428",
      "content": [
          {
              "type": "text",
              "text": "Multiple shots. A detective enters a dimly lit room. He examines the clues on the table and picks up an item. The camera shifts to him deep in thought."
          }
      ],
      "resolution": "720p",
      "ratio": "16:9",
      "duration": 12
  }'
  ```

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

  url = "https://gptproto.com/api/v3/contents/generations/tasks"

  headers = {
      "Authorization": "GPTPROTO_API_KEY",
      "Content-Type": "application/json"
  }

  payload = {
      "model": "seedance-1-0-lite-t2v-250428",
      "content": [
          {
              "type": "text",
              "text": "Multiple shots. A detective enters a dimly lit room. He examines the clues on the table and picks up an item. The camera shifts to him deep in thought."
          }
      ],
      "resolution": "720p",
      "ratio": "16:9",
      "duration": 12
  }

  response = requests.post(url, headers=headers, data=json.dumps(payload))
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const url = "https://gptproto.com/api/v3/contents/generations/tasks";

  const headers = {
      "Authorization": "GPTPROTO_API_KEY",
      "Content-Type": "application/json"
  };

  const payload = {
      model: "seedance-1-0-lite-t2v-250428",
      content: [
          {
              type: "text",
              text: "Multiple shots. A detective enters a dimly lit room. He examines the clues on the table and picks up an item. The camera shifts to him deep in thought."
          }
      ],
      resolution: "720p",
      ratio: "16:9",
      duration: 12
  };

  fetch(url, {
      method: "POST",
      headers: headers,
      body: JSON.stringify(payload)
  })
  .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/contents/generations/tasks"

      payload := map[string]interface{}{
          "model": "seedance-1-0-lite-t2v-250428",
          "content": []map[string]string{
              {
                  "type": "text",
                  "text": "Multiple shots. A detective enters a dimly lit room. He examines the clues on the table and picks up an item. The camera shifts to him deep in thought.",
              },
          },
          "resolution": "720p",
          "ratio":      "16:9",
          "duration":   12,
      }

      jsonPayload, _ := json.Marshal(payload)

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

      client := &http.Client{}
      resp, err := client.Do(req)
      if err != nil {
          fmt.Println("Error:", err)
          return
      }
      defer resp.Body.Close()

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

## Response Example

```json theme={null}
{
    "id": "cgt-20251225201056-abc"
}
```

## Query Result

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://gptproto.com/api/v3/contents/generations/tasks/{id}" \
    -H "Authorization: GPTPROTO_API_KEY" \
    -H "Content-Type: application/json"
  ```

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

  url = "https://gptproto.com/api/v3/contents/generations/tasks/{id}"
  headers = {
      "Authorization: GPTPROTO_API_KEY",
      "Content-Type": "application/json"
  }

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

  ```javascript JavaScript theme={null}
  const url = "https://gptproto.com/api/v3/contents/generations/tasks/{id}";
  const headers = {
    "Authorization: GPTPROTO_API_KEY",
    "Content-Type": "application/json"
  };

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

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

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

  func main() {
      url := "https://gptproto.com/api/v3/contents/generations/tasks/{id}"

      req, _ := http.NewRequest("GET", url, nil)
      req.Header.Set("Authorization", "GPTPROTO_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

```json theme={null}
{
    "id": "cgt-20251225195352-123",
    "model": "doubao-seedance-1-5-pro-251215",
    "status": "succeeded",
    "content": {
        "video_url": "https://example.com/video.mp4"
    },
    "usage": {
        "completion_tokens": 260100,
        "total_tokens": 260100
    },
    "seed": "16108",
    "resolution": "720p",
    "duration": 12,
    "ratio": "16:9",
    "created_at": "1766663633",
    "updated_at": "1766663715",
    "framespersecond": 24
}
```

## Parameters

### Core Parameters

| Parameter                 | Type    | Required                      | Default | Range                                                  | Description                                                                                                                                                                                                                                                                         |
| ------------------------- | ------- | ----------------------------- | ------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `model`                   | string  | ✅ Yes                         | -       | -                                                      | The ID of the model you want to call. You need to enable model service and query the Model ID. You can also call the model through Endpoint ID to get advanced capabilities such as rate limiting, billing type (prepaid/postpaid), running status query, monitoring, and security. |
| `content`                 | array   | ✅ Yes                         | -       | -                                                      | Information input to the model for video generation, supporting text and image information.                                                                                                                                                                                         |
| >`content.type`           | string  | ✅ Yes                         | -       | `text`<br />`image_url`                                | Type of input content. Use `text` for text input, `image_url` for image input (supports image URL or Base64 encoding).                                                                                                                                                              |
| >`content.text`           | string  | ✅ Yes (if type is text)       | -       | -                                                      | Text content input to the model, describing the expected video to be generated.                                                                                                                                                                                                     |
| >`content.image_url`      | object  | ✅ Yes (if type is image\_url) | -       | -                                                      | Image object input to the model.                                                                                                                                                                                                                                                    |
| >>`content.image_url.url` | string  | ✅ Yes (if image\_url is used) | -       | -                                                      | Image information, which can be an image URL or Base64 encoded image.                                                                                                                                                                                                               |
| >`content.role`           | string  | ❌ No                          | -       | `first_frame`<br />`last_frame`<br />`reference_image` | Position or purpose of the image. Different roles correspond to different video generation scenarios. See [Video Generation Scenarios](#video-generation-scenarios) for details.                                                                                                    |
| `generate_audio`          | boolean | ❌ No                          | true    | -                                                      | Whether to include synchronized sound with the video. Only supported by Seedance 1.5 pro.                                                                                                                                                                                           |

### Advanced Parameters

> **Note:** Different models may support different parameter options. For more details, please refer to the [Model Field Compatibility](#model-field-compatibility) table.

| Parameter               | Type    | Required | Default       | Range                                                                           | Description                                          |
| ----------------------- | ------- | -------- | ------------- | ------------------------------------------------------------------------------- | ---------------------------------------------------- |
| `resolution` (rs)       | string  | ❌ No     | 720p/1080p    | `480p`<br />`720p`<br />`1080p`                                                 | Video resolution. Default values vary by model.      |
| `ratio` (rt)            | string  | ❌ No     | 16:9/adaptive | `16:9`<br />`4:3`<br />`1:1`<br />`3:4`<br />`9:16`<br />`21:9`<br />`adaptive` | Aspect ratio of the generated video.                 |
| `duration` (dur)        | integer | ❌ No     | 5             | \[2, 12]                                                                        | Duration of the generated video in seconds.          |
| `frames` (frames)       | integer | ❌ No     | -             | \[29, 289] (25+4n)                                                              | Number of frames of the generated video.             |
| `framespersecond` (fps) | integer | ❌ No     | 24            | 24                                                                              | Frame rate of the video in frames per second.        |
| `seed` (seed)           | integer | ❌ No     | -1            | \[-1, 2^32-1]                                                                   | Seed integer for controlling randomness.             |
| `camerafixed` (cf)      | boolean | ❌ No     | false         | -                                                                               | Whether to fix the camera.                           |
| `watermark` (wm)        | boolean | ❌ No     | false         | -                                                                               | Whether to include watermark in the generated video. |

#### Model Field Compatibility

***

**resolution (rs):** Video resolution

> Seedance 1.5 pro, Seedance 1.0 lite default value: `720p`
> Seedance 1.0 pro\&pro-fast default value: `1080p`

Enumeration values:

* 480p
* 720p
* 1080p: Not supported in reference image scenario; temporarily not supported by Seedance 1.5 pro

***

**ratio (rt):** Aspect ratio of the generated video. See [Aspect Ratio & Resolution](#aspect-ratio--resolution) for pixel values corresponding to different aspect ratios.

> Default for Text-to-Video is generally `16:9`
> Default for Image-to-Video is generally `adaptive`. Note: Default for Reference Image Video Generation is `16:9`
> Seedance 1.5 pro default is `adaptive`

Enumeration values:

* 16:9
* 4:3
* 1:1
* 3:4
* 9:16
* 21:9
* adaptive: Automatically selects the most appropriate aspect ratio based on the ratio of the uploaded first frame image.

***

**duration (dur) or frames (frames):**

> Seedance 1.5 pro does not support `frames` temporarily
> Choose either duration or frames; frames has higher priority than duration. If you want to generate videos with fractional seconds, it is recommended to specify frames.

***

#### Video Generation Scenarios

First frame video generation, first and last frame video generation, and reference image video generation are three mutually exclusive scenarios and cannot be mixed.

<CodeGroup>
  ```json Text-to-Video theme={null}
  {
      "content": [
          {
              "type": "text",
              "text": "Multiple shots. A detective enters a dimly lit room. He examines the clues on the table and picks up an item. The camera shifts to him deep in thought. --ratio 16:9"
          }
      ]
  }
  ```

  ```json First Frame theme={null}
  {
      "content": [
          {
              "type": "text",
              "text": "A girl holding a fox opens her eyes and looks gently at the camera. The fox is held affectionately. The camera slowly pulls back as the girl's hair is blown by the wind. Wind sounds can be heard. --ratio adaptive --dur 5"
          },
          {
              "type": "image_url",
              "image_url": {
                  "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
              }
          }
      ],
  }
  ```

  ```json First & Last Frame theme={null}
  {
      "model": "doubao-seedance-1-5-pro-251215",
      "content": [
           {
              "type": "text",
              "text": "The girl in the picture says 'cheese' to the camera with 360-degree surrounding camera movement"
          },
          {
              "type": "image_url",
              "image_url": {
                  "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg"
              },
              "role": "first_frame"
          },
          {
              "type": "image_url",
              "image_url": {
                  "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
              },
              "role": "last_frame"
          }
      ],
      "generate_audio": true
  }
  ```

  ```json Reference Images theme={null}
  {
      "content": [
           {
              "type": "text",
              "text": "[Image 1] A boy wearing glasses and a blue T-shirt with [Image 2] a corgi puppy, sitting on [Image 3] a lawn, in 3D cartoon style"
          },
          {
              "type": "image_url",
              "image_url": {
                  "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_1.png"
              },
              "role": "reference_image"
          },
          {
              "type": "image_url",
              "image_url": {
                  "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_2.png"
              },
              "role": "reference_image"
          },
          {
              "type": "image_url",
              "image_url": {
                  "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seelite_ref_3.png"
              },
              "role": "reference_image"
          }
      ]
  }
  ```
</CodeGroup>

| Scenario                            | `content.role`                                           | Supported Models                                                                                                        | Description                                                                                               |
| ----------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| Text-to-Video                       | Not applicable (text only)                               | Seedance 1.5 pro<br />Seedance 1.0 pro<br />Seedance 1.0 pro fast<br />Seedance 1.0 lite (doubao-seedance-1-0-lite-t2v) | Generate video from text prompts only.                                                                    |
| Image-to-Video (First Frame)        | Optional, or `first_frame`                               | All image-to-video models                                                                                               | Generate video from a first frame image. Requires 1 image\_url object.                                    |
| Image-to-Video (First & Last Frame) | First frame: `first_frame`<br />Last frame: `last_frame` | Seedance 1.5 pro<br />Seedance 1.0 pro<br />Seedance 1.0 lite (doubao-seedance-1-0-lite-i2v)                            | Generate video from first and last frame images. Requires 2 image\_url objects with both roles specified. |
| Image-to-Video (Reference Images)   | `reference_image`                                        | Seedance 1.0 lite (doubao-seedance-1-0-lite-i2v)                                                                        | Generate video from reference images. Requires 1-4 image\_url objects, all with reference\_image role.    |

For First & Last Frame scenario

* You can pass the same image for both first and last frame.
* If the aspect ratios of first and last frame images are inconsistent, the system will prioritize the first frame and automatically crop the last frame to match.

### Aspect Ratio & Resolution

| Resolution | Aspect Ratio | Width x Height (Seedance 1.0) | Width x Height (Seedance 1.5 pro) |
| ---------- | ------------ | ----------------------------- | --------------------------------- |
| 480p       | 16:9         | 864×480                       | 864×496                           |
| 480p       | 4:3          | 736×544                       | 752×560                           |
| 480p       | 1:1          | 640×640                       | 640×640                           |
| 480p       | 3:4          | 544×736                       | 560×752                           |
| 480p       | 9:16         | 480×864                       | 496×864                           |
| 480p       | 21:9         | 960×416                       | 992×432                           |
| 720p       | 16:9         | 1248×704                      | 1280×720                          |
| 720p       | 4:3          | 1120×832                      | 1112×834                          |
| 720p       | 1:1          | 960×960                       | 960×960                           |
| 720p       | 3:4          | 832×1120                      | 834×1112                          |
| 720p       | 9:16         | 704×1248                      | 720×1280                          |
| 720p       | 21:9         | 1504×640                      | 1470×630                          |
| 1080p      | 16:9         | 1920×1088                     | -                                 |
| 1080p      | 4:3          | 1664×1248                     | -                                 |
| 1080p      | 1:1          | 1440×1440                     | -                                 |
| 1080p      | 3:4          | 1248×1664                     | -                                 |
| 1080p      | 9:16         | 1088×1920                     | -                                 |
| 1080p      | 21:9         | 2176×928                      | -                                 |

### Text Command Parameters

You can append `--[parameters]` after the text prompt to control video output specifications, including aspect ratio, frame rate, resolution, etc.

<CodeGroup>
  ```json Example with text commands theme={null}
  {
    "content": [
      {
        "type": "text",
        "text": "A kitten yawning at the camera. --rs 720p --rt 16:9 --dur 5 --fps 24 --wm true --seed 11 --cf false"
      }
    ]
  }
  ```
</CodeGroup>

## Error Codes

### Common Error Codes

| Error Code | Error Name               | Description                                                                                                       |
| ---------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| 401        | Unauthorized             | API key is missing or invalid                                                                                     |
| 403        | Forbidden                | Your API key doesn't have permission to access this resource, or insufficient balance for the requested operation |
| 429        | Too Many Requests        | You've exceeded your rate limit                                                                                   |
| 500        | Internal server error    | An internal server error occurred                                                                                 |
| 503        | Content policy violation | Content blocked due to safety concerns (actual status code is 400)                                                |
