Unified generation and editing
A single architecture handles text-to-image, image-to-image, single and multi-image editing, and composition, with built-in commonsense knowledge and reasoning.
ByteDance's unified image generation and editing model (Sep 2025), built for ultra-fast output, strong bilingual text rendering, and generating consistent sets of images at once.
Integrate Seedream 4 with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.
model: "seedream-4"
A single architecture handles text-to-image, image-to-image, single and multi-image editing, and composition, with built-in commonsense knowledge and reasoning.
Its mixture-of-experts architecture produces a 2K image in roughly 1.8 seconds, more than ten times faster than Seedream 3.0.
It raised the maximum output from 2K to 4K while keeping that speed, with sharp 2K as the default on many platforms.
It can create multiple matching images in a single run, up to nine coordinated outputs, which is ideal for storyboards, product variations, and campaigns.
It renders accurate English and Chinese text and structured designs, from posters and infographics to timelines and labeled diagrams.
It accepts multiple reference images and keeps a character's features consistent across scenes, outfits, and over 30 blendable artistic styles, all with mask-free editing.
A few outputs generated through the Seedream 4 API on Apiframe.
A concert poster reading 'THE SOUND OF FRACTALS' with a shattered glass sphere refracting rainbow light, bold lettering.
A set of five elemental warriors for fire, water, earth, air, and spirit, consistent art style across all.
A history timeline of Chinese dynasties from Qin to Qing, each with a small icon and short caption.
A photorealistic rainy night street in Seoul, neon reflections on wet pavement, one person in a red coat.
Remove the boy from this photo and fill the space naturally, keeping the rest unchanged.
A clean infographic explaining the water cycle with labeled stages and English captions.
Send a single POST /v2/images/generate request with your API key to
generate with Seedream 4. The call returns a jobId you can poll or
receive via webhook.
curl -X POST https://api.apiframe.ai/v2/images/generate \
-H "X-API-Key: afk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "seedream-4",
"seedreamParams": {
"image_input": "https://example.com/input.jpg",
"output_format": "jpg",
"guidance_scale": 3,
"use_pre_llm": false
}
}'import requests
response = requests.post(
"https://api.apiframe.ai/v2/images/generate",
headers={
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
json={
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "seedream-4",
"seedreamParams": {
"image_input": "https://example.com/input.jpg",
"output_format": "jpg",
"guidance_scale": 3,
"use_pre_llm": False
}
},
)
print(response.json()) # { "jobId": "...", "status": "QUEUED" }const response = await fetch("https://api.apiframe.ai/v2/images/generate", {
method: "POST",
headers: {
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "seedream-4",
"seedreamParams": {
"image_input": "https://example.com/input.jpg",
"output_format": "jpg",
"guidance_scale": 3,
"use_pre_llm": false
}
}),
});
const { jobId } = await response.json();
console.log(jobId);Generation is asynchronous. A successful submission returns 202 Accepted with a jobId. Poll GET /v2/jobs/{id} (or supply a webhook_url) until the status is COMPLETED; the result field then holds the output URL(s).
{
"jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"status": "QUEUED"
}curl https://api.apiframe.ai/v2/jobs/JOB_ID \
-H "X-API-Key: afk_your_api_key_here"import requests, time
while True:
job = requests.get(
"https://api.apiframe.ai/v2/jobs/JOB_ID",
headers={"X-API-Key": "afk_your_api_key_here"},
).json()
if job["status"] in ("COMPLETED", "FAILED"):
break
time.sleep(2)
print(job["result"])let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
headers: { "X-API-Key": "afk_your_api_key_here" },
}).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);Request parameters accepted by the Seedream 4 endpoint. Model-specific options are nested under the params object shown below.
| Parameter | Type | Required | Default | Allowed / range | Description |
|---|---|---|---|---|---|
| prompt | string | required | — | — | Text description of what to generate. |
| model | string | required | "seedream-4" | "seedream-4" | The model identifier for this endpoint. |
| seedreamParams.image_input | string (URL) | optional | — | — | Reference image (URL) |
| seedreamParams.output_format | string | optional | "jpg" | "jpg", "png" | Output format |
| seedreamParams.guidance_scale | number | optional | 3 | min 1, max 10, step 0.5 | Guidance |
| seedreamParams.use_pre_llm | boolean | optional | false | — | Pre-process the prompt with an LLM. |
| seedreamParams.enhance_prompt | boolean | optional | false | — | Enhance prompt |
| seedreamParams.seed | number | optional | — | step 1 | Reuse a number to reproduce the same result. |
Common questions about the Seedream 4 API.
ByteDance's Seedream 4.0, a unified image generation and editing model released in September 2025.
It generates a 2K image in about 1.8 seconds, more than ten times faster than Seedream 3.0.
Up to 4K, with 2K as the default on many platforms.
Text rendering and typography, structured layouts, fast batch generation, and character consistency.
Yes. Group generation produces up to nine coordinated outputs, and it accepts multiple reference images for consistency.
Through Apiframe, as well as Dreamina and major hosting partners.
Still have questions?
Get your API key and integrate Seedream 4 in minutes — Pay-as-you-go.
Questions? Join our Discord or contact sales.