> ## Documentation Index
> Fetch the complete documentation index at: https://runpod-b18f5ded-docs-runpod-allow-ip.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

# Seedream 4.0 T2I

> New-generation image creation with unified generation and editing architecture. See model inputs and outputs on Runpod Public Endpoints.

Seedream 4.0 T2I is ByteDance's new-generation image creation model that integrates both generation and editing capabilities within a unified architecture. It produces high-quality images with excellent prompt adherence.

<Card title="Try in playground" icon="play" href="https://console.runpod.io/hub/playground/image/seedream-v4-t2i" horizontal>
  Test Seedream 4.0 T2I in the Runpod Hub playground.
</Card>

|              |                                                    |
| ------------ | -------------------------------------------------- |
| **Endpoint** | `https://api.runpod.ai/v2/seedream-v4-t2i/runsync` |
| **Pricing**  | \$0.027 per image                                  |
| **Type**     | Image generation                                   |

## Request

All parameters are passed within the `input` object in the request body.

<ParamField body="input.prompt" type="string" required>
  Text description of the desired image.
</ParamField>

<ParamField body="input.negative_prompt" type="string">
  Elements to exclude from the generated image.
</ParamField>

<ParamField body="input.size" type="string" default="1024*1024">
  Image dimensions in format "width\*height".
</ParamField>

<ParamField body="input.seed" type="integer" default="-1">
  Seed for reproducible results. Set to -1 for random.
</ParamField>

<ParamField body="input.enable_safety_checker" type="boolean" default="true">
  Enable content safety checking.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.runpod.ai/v2/seedream-v4-t2i/runsync" \
    -H "Authorization: Bearer $RUNPOD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "input": {
        "prompt": "American retro 1950s illustration style, diner scene",
        "negative_prompt": "",
        "size": "2048*2048",
        "seed": -1,
        "enable_safety_checker": true
      }
    }'
  ```

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

  response = requests.post(
      "https://api.runpod.ai/v2/seedream-v4-t2i/runsync",
      headers={
          "Authorization": f"Bearer {RUNPOD_API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "input": {
              "prompt": "American retro 1950s illustration style, diner scene",
              "negative_prompt": "",
              "size": "2048*2048",
              "seed": -1,
              "enable_safety_checker": True,
          }
      },
  )

  result = response.json()
  print(result["output"]["image_url"])
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.runpod.ai/v2/seedream-v4-t2i/runsync",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${RUNPOD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        input: {
          prompt: "American retro 1950s illustration style, diner scene",
          negative_prompt: "",
          size: "2048*2048",
          seed: -1,
          enable_safety_checker: true,
        },
      }),
    }
  );

  const result = await response.json();
  console.log(result.output.image_url);
  ```
</RequestExample>

## Response

<ResponseField name="id" type="string">
  Unique identifier for the request.
</ResponseField>

<ResponseField name="status" type="string">
  Request status. Returns `COMPLETED` on success, `FAILED` on error.
</ResponseField>

<ResponseField name="delayTime" type="integer">
  Time in milliseconds the request spent in queue before processing began.
</ResponseField>

<ResponseField name="executionTime" type="integer">
  Time in milliseconds the model took to generate the image.
</ResponseField>

<ResponseField name="workerId" type="string">
  Identifier of the worker that processed the request.
</ResponseField>

<ResponseField name="output" type="object">
  The generation result containing the image URL and cost.

  <ResponseField name="output.image_url" type="string">
    URL of the generated image. This URL expires after 7 days.
  </ResponseField>

  <ResponseField name="output.cost" type="float">
    Cost of the generation in USD, calculated based on the output megapixels.
  </ResponseField>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "COMPLETED",
    "delayTime": 16,
    "executionTime": 5234,
    "workerId": "oqk7ao1uomckye",
    "output": {
      "image_url": "https://image.runpod.ai/abc123/output.png",
      "cost": 0.113246
    }
  }
  ```

  ```json 400 theme={null}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "FAILED",
    "error": "Invalid parameter: size format must be width*height"
  }
  ```
</ResponseExample>

<Warning>
  Image URLs expire after 7 days. Download and store generated images immediately if you need to keep them.
</Warning>

## Cost calculation

Seedream 4.0 T2I charges \$0.027 per image generated.
