Seedream 4.5 Image to Image API
/v1/tasks All models are called through the Unified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).
Model summary
| Model name | seedream-4.5/image-to-image |
|---|---|
| Type | Image generation (image-to-image) |
| Endpoint | POST /v1/tasks |
| Pricing | See HiAPI Pricing |
Seedream 4.5 image editing: unified generation-editing with up to 14 references for edits, scene swaps and composites, consistent subjects and text, flat per-image billing.
Production guidance
- For production, pass callback.url at the top level of the request body so HiAPI can notify your service when the task reaches a terminal state.
- GET /v1/tasks/:id is better for local debugging, low-volume jobs, or fallback reconciliation if a callback is missed.
- Use callback.when=final. Both success and fail are terminal states, so your service should deduplicate by taskId.
Best suited for
Up to 14 reference images per request, referenced by order for composites and consistency.
image_urlspromptSwap backgrounds, seasons and mood while subjects and in-image text stay intact.
promptEdited outputs keep the same generation-tier quality — no fidelity loss.
promptresolutionFlat rate independent of reference count and resolution.
resolutionRequest parameters
model string required Fixed value seedream-4.5/image-to-image.
input object required Business parameters. Put Seedream 4.5 Image to Image-specific configuration here.
prompt string required Editing instruction describing the desired output. Max 3000 characters.
image_urls string[] required Input reference images (1-14). Public URLs; jpeg/png/webp (SVG not supported), max 10MB each.
aspect_ratio enum required Width-height ratio of the generated image.
resolution enum required Output image resolution. 2K for standard quality, 4K for ultra HD.
callback object optional Optional callback configuration. When set, HiAPI notifies your service when the task reaches a terminal state.
url string required Required when callback is set; HTTPS URL that receives terminal task notifications.
when enum optional Callback trigger timing. Use final.
Example requests
Tested: storefront and calligraphy preserved, scene turned into a snowy winter night.
{
"model": "seedream-4.5/image-to-image",
"input": {
"prompt": "Change the season to heavy winter snowfall: snow accumulating on the signboard and street, warm lantern glow contrasting the cold blue night, keep the storefront layout and calligraphy text unchanged",
"image_urls": [
"https://static.hiapi.ai/gallery/2026/07/220f90f15f629434.jpg"
],
"aspect_ratio": "3:4",
"resolution": "2K"
}
}Tested: product from image 1 placed into the scene of image 2 with matched lighting.
{
"model": "seedream-4.5/image-to-image",
"input": {
"prompt": "Place the ice-carved perfume bottle from image 1 onto the rocky ledge beside the snow leopard in image 2, matching the dawn alpine lighting and cold atmosphere, seamless composite, keep both subjects photorealistic",
"image_urls": [
"https://static.hiapi.ai/gallery/2026/07/c2a64356e31c2205.jpg",
"https://static.hiapi.ai/gallery/2026/07/5d186d631d3ba69a.jpg"
],
"aspect_ratio": "16:9",
"resolution": "4K"
}
}Getting the result
- The response returns a taskId immediately without waiting for generation to finish.
- In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
- When status=success, download the generated image from output[].url.
- When status=fail, fix the request based on the returned error instead of retrying the same invalid payload.
FAQ
How many reference images?
1-14 (jpeg/png/webp, up to 10MB each), referenced by order in the prompt.
Does reference count affect price?
No — billing is per output image, 2K/4K at the same rate.
Seedream 4.5 edit vs FLUX.2 edit?
Both are multi-reference editors: Seedream takes up to 14 refs and preserves Chinese text well; FLUX.2 takes up to 8 with strong photoreal consistency.