Bytedance Seedream V3
Playground
Try it on WavespeedAI!ByteDance Seedream V3 is a state-of-the-art text-to-image model that creates photorealistic, high-detail images with artistic flair. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Seedream v3 — bytedance/seedream-v3
Seedream v3 is a high-quality text-to-image model built for fast, photorealistic generation with strong composition and detail. Write a clear prompt describing subject, scene, lighting, and style, and it produces clean, lifelike images suitable for marketing creatives, portraits, lifestyle photography concepts, and general visual production.
Key capabilities
- Text-to-image generation with strong realism and fine detail
- Reliable composition across custom sizes (set width/height directly)
- Good lighting and material rendering for lifelike results
- Efficient for rapid iteration with controllable randomness via seed
Use cases
- Lifestyle and street-style photography concepts
- Portrait generation with realistic skin, hair, and fabric detail
- Marketing creatives and ad-style key visuals
- Product and brand imagery with controlled lighting
- Rapid ideation for concepts, thumbnails, and mood boards
Pricing
| Output | Price |
|---|---|
| Per image | $0.027 |
Parameters
- prompt (required): Text description of what to generate
- width / height: Output size
- guidance_scale: Prompt adherence strength (higher = stricter; too high may reduce naturalness)
- seed: Random seed (-1 for random; fixed value for reproducible results)
Prompting guide
A stable prompt structure:
- Subject: who/what is in frame
- Action: what they are doing
- Scene: location + background details
- Lighting: time of day, key light, contrast
- Style: photorealistic, street photography, cinematic, etc.
Template: A [subject] [action] in [scene], [lighting], [camera/framing], [style], high detail.
Example prompts
- A young girl with curly hair eating ice cream, colorful city background, realistic lighting, street-style photography look, lifelike details, shallow depth of field.
- Close-up portrait of a man in soft window light, natural skin texture, 85mm lens look, subtle film grain, photorealistic.
- Studio product photo of a minimalist sneaker on a clean backdrop, softbox lighting, crisp shadow, premium advertising style.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/bytedance/seedream-v3" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"size": "1024*1024",
"guidance_scale": 2.5,
"seed": -1,
"enable_base64_output": false,
"enable_sync_mode": false
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The positive prompt for the generation. | |
| size | string | No | 1024*1024 | 512 ~ 2048 per dimension | The size of the generated media in pixels (width*height). |
| guidance_scale | number | No | 2.5 | 0.0 ~ 20.0 | The guidance scale to use for the generation. |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
| enable_base64_output | boolean | No | false | - | If enabled, the output will be encoded into a BASE64 string instead of a URL. This property is only available through the API. |
| enable_sync_mode | boolean | No | false | - | If set to true, the function will wait for the result to be generated and uploaded before returning the response. It allows you to get the result directly in the response. This property is only available through the API. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |