Introduction
Seedream 4.0 Text-to-Image turns a written art-direction brief into a new image. Use it when composition, subject hierarchy and visual style are still open creative decisions rather than properties inherited from a source image.
Choose a Seedream 4.0 mode by starting material
| Starting material | Mode |
|---|---|
| A written art direction or design brief | Seedream 4.0 Text to Image |
| An approved source image to revise | Seedream 4.0 Image Editing |
Key features & highlights
Image creation and source-led revision
Seedream 4.0 supports both starting from a written visual brief and revising supplied imagery. Keep those jobs separate: creation establishes a new composition, while editing is judged against the source elements it should retain.
Design work needs a reviewable hierarchy
For a graphic or campaign concept, provide checked copy and define the visual hierarchy before styling details. Review legibility, placement and factual accuracy at the intended delivery format.
A visual result is not a factual source
Use generated imagery to discuss a design direction. Do not treat an attractive result as proof of product details, dimensions or real-world claims that were not independently verified.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Describe subject, wardrobe, setting, palette and light in one pass, and write it for the frame you chose — a wide preset wants a composition staged across the width, not a portr… at least 1 characters |
size | No | An explicit widthheight preset, sixteen options from 10241024 to 40962304; default 20482048. |
Pricing
$0.03 / image
Use cases
Start from a written brief
Seedream 4.0 Text to Image renders a brief into a single image at a size you name. size is an explicit widthheight string rather than a ratio the model interprets. Pick one of the sixteen presets, from 10241024 up to 4096*2304, before you write, then describe the subject, composition and light for that shape.
Uncensored photo and illustration sets
Uncensored character work and editorial sets run as ordinary prompts, generated at 20482048 or 30723072 so a whole set shares one frame size.
Consistent characters from references
Send a face reference, a wardrobe reference and a background plate to the editing endpoint, name what each contributes, and get one frame back at the preset you chose.
Continuing work started on 4.0
Campaigns and character sets first made with Seedream 4.0 can stay on the same model instead of switching generations halfway and re-matching the style.
Prompt guide & pro tips
Write the brief, or name the references
For text-to-image, describe subject, wardrobe, setting and light in one prompt. For editing, send one to ten image URLs and say what each one contributes and what must stay.
Poll the task and keep the brief
Create the task, poll for a terminal state, fetch the image from platform storage. There is no seed, so store the prompt with any frame you want to extend into a series.
Adapt the included example
Start with the published example using size: 2048*2048. Replace the subject and creative direction while keeping the input contract for this mode intact.
Editorial boudoir photograph, an adult woman in an ivory silk slip sitting on the edge of an unmade linen bed, late-afternoon window light raking across her shoulders, sheer curtain glow, soft film grain, muted cream and honey palette, 50mm lens, shallow depth of field.
A square 2048*2048 window-lit portrait: fabric, light direction, palette and lens are all named, so the brief decides the mood instead of leaving it to the model.
Check the result before iterating
size is the whole framing control: there is no aspect ratio field, no seed and no file-format switch. The sixteen presets are the complete list, and anything outside them is rejected before the request leaves the platform. A portrait brief forced into a wide preset comes back with dead space.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedream-4.0/text-to-image",
"input": {
"size": "2048*2048",
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.











