Per generated image
40
credits / image
= $0.04 USD / image
100 images ≈ $4.00 · 1,000 images ≈ $40.00
Official: $0.045−11%
ByteDance
Available via APIImage GenerationEdit across up to 14 references with ByteDance Seedream 4.5, which keeps reference detail and renders dense text and typography more reliably than 4.0.
seedream-4.5New accounts start with $0.20 in free credits, about 5 images at the starting price.
Compare all Seedream API versionsSeedream 4.5 is developed by ByteDance. Wizzx provides API access to it and does not own the model. All trademarks belong to their respective owners.
Next: turn the image into a video with
Model Guide
Edit across up to 14 references with ByteDance Seedream 4.5, which keeps reference detail and renders dense text and typography more reliably than 4.0.
Seedream 4.5 is the scaled-up successor to Seedream 4.0. According to ByteDance Seed, the larger model accurately identifies the main subjects in multi-image editing, strictly preserves the details of reference images, and further improves typography and dense text rendering, so it can deliver professional creatives with high consistency and fidelity. On ByteDance's MagicBench evaluation, 4.5 improves on 4.0 in prompt adherence, alignment with the source image, and aesthetics.
Choose 4.5 over 4.0 when the result has to match its references closely or carry a lot of small text. Choose 4.0 when you want 1K drafts or broad knowledge-style exploration. In Wizzx both models share the same controls:
| Wizzx control | Current behavior |
|---|---|
| Prompt | Required |
| Reference images | Optional, up to 14 images for fusion or editing; references do not change the price |
| Aspect ratio | 1:1 (default), 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9 |
| Resolution | 1K, 2K (default), or 4K; resolution does not change the per-image rate |
| Number of images | 1 (default) to 15 per request; reference images plus requested images must not exceed 15 |
| Watermark | Off by default; switch on to add the upstream AI-generated mark |
| Seed | Optional integer for more reproducible iterations |
Name the main subject explicitly and say where it is, especially when several references contain similar people or products; marking a region in the source image and referring to it ("the character in the green outline") also works. Separate what changes from what stays, such as "keep the pose and the flowing shape of the dress; change only the material". For text-heavy layouts, quote every string, give its position and relative size, and list sections in reading order. Avoid conflicting style instructions in one prompt, because 4.5 follows reference detail closely and contradictions show up in the result.
Wizzx charges per generated image at a flat rate: resolution, aspect ratio, watermark, and the number of reference images do not change it, while Number of Images multiplies it. Number of Images is the upper bound for the request, and credits are settled for the images actually delivered. The live price is shown in the pricing section on this page and comes from the backend catalog.
BytePlus documents 2K and 4K as Seedream 4.5's resolution levels (4.0 also lists 1K), so use 2K or 4K for final work with this model. ByteDance's API also accepts exact pixel sizes and adds a watermark by default; Wizzx currently exposes only the eight preset aspect ratios and resolution tiers, does not offer custom pixel dimensions or an output format choice, and turns the watermark off unless you enable it.
Backend pricing
Model identity, billing unit and every price tier below are read from the backend catalog.
40
credits / image
= $0.04 USD / image
100 images ≈ $4.00 · 1,000 images ≈ $40.00
Official: $0.045−11%
| Tier | Official from | Wizzx | Savings |
|---|---|---|---|
| Per generated image | $0.045 | $0.04 | −11% |
1 credit = $0.001 USD. The final deduction returned by the API is authoritative.
Back to all modelsEvery request is asynchronous: submit the task, keep the task ID, then poll for the result. The body below uses the model's default settings.
Sign in and create a key in the dashboard. Set WIZZX_API_KEY in your server environment; never expose it in browser code.
Send a POST request to the model endpoint. A successful submission returns data.task_id; keep that ID before polling. Submission is not generation completion.
Replace YOUR_TASK_ID with the returned ID and query /api/v1/task/status. Wait for SUCCEEDED and read the output URLs. Stop on FAILED or REVIEW_REQUIRED; do not automatically resubmit an uncertain task.
curl -X POST \
https://api.wizzx.ai/api/v1/task/submit/seedream-4.5 \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"aspect_ratio": "1:1",
"resolution": "2K",
"batch_size": 1,
"watermark": false,
"prompt": "A ceramic coffee cup on a wooden table, soft morning light, product photography"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/submit/seedream-4.5", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"aspect_ratio": "1:1",
"resolution": "2K",
"batch_size": 1,
"watermark": false,
"prompt": "A ceramic coffee cup on a wooden table, soft morning light, product photography"
}),
});
const payload = await response.json();
const task = payload.data ?? payload;
const taskId = task.task_id;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/submit/seedream-4.5",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={
"aspect_ratio": "1:1",
"resolution": "2K",
"batch_size": 1,
"watermark": False,
"prompt": "A ceramic coffee cup on a wooden table, soft morning light, product photography"
},
)
payload = response.json()
task = payload.get("data", payload)
task_id = task["task_id"]curl -X POST \
https://api.wizzx.ai/api/v1/task/status \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task_id": "YOUR_TASK_ID"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/status", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ task_id: "YOUR_TASK_ID" }),
});
const payload = await response.json();
const task = payload.data ?? payload;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/status",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={"task_id": "YOUR_TASK_ID"},
)
payload = response.json()
task = payload.get("data", payload)The fields this endpoint accepts on Wizzx, read from the same schema as the Playground form.
| Parameter | Type | Default | Allowed values | Description |
|---|---|---|---|---|
promptPromptrequired | string | — | — | Describe the image you want to generate |
image_urlsReference Images | url[] ≤ 14 | — | — | Up to 14 reference images for fusion |
aspect_ratioAspect Ratio | string | 1:1 | 1:1 · 4:3 · 3:4 · 16:9 · 9:16 · 3:2 · 2:3 · 21:9 | — |
resolutionResolution | string | 2K | 1K · 2K · 4K | Choose output detail. Resolution does not change the per-image rate. |
batch_sizeNumber of Images | integer | 1 | 1 – 15 | Generate 1 to 15 variations in this request. |
watermarkWatermark | boolean | false | — | — |
seedSeed | integer | — | — | Random seed for reproducibility |
Wizzx API
New accounts get $0.20 in free credits. Pay as you go with no subscription, and failed tasks are refunded.