Table of Contents

A generated 2K hero with the headline, subline and button added as real HTML on top. The model left the left third empty, as the brief asked.
Every redesign hits the same wall. The new layout is ready, the type is set and the colours are approved, but the photos are the client’s own: phone snapshots of a cluttered counter, a reception shot on a grey afternoon, a guest room with a television bolted to the wall. A new site with old photos looks like an old site. A photo shoot is often out of budget for a small client, and stock images rarely show the client’s actual premises.
We tested how far an image model can close that gap. Our scenario is Kestrel Row Studio, a four-person web design agency we invented for this article. It is redesigning sites for three invented clients: Marlowe Street Bakery, Ashgrove Physio and The Tidewell, a small seaside guesthouse. Kestrel Row needs two things. The first is new hero images with space for headlines. The second is clean, bright edits of the client photos it already has, at a size that holds up on large screens.
The model is seedream-5-0-pro. We ran nine tests: 15 generation tasks, one of which returned 12 files, for a total of $0.71. Real client photos cannot be published, so we generated four stand-in “client snapshots” first. They were made with the same model at its cheapest 1K setting and prompted to look like ordinary phone pictures. Every other number here was measured from the files we downloaded or read from our task logs. Most conditions ran once, so treat the results as examples rather than rates.
The walkthrough
The video covers the main results in under three minutes.
The setup
One endpoint covers both jobs. You send a POST to /v1/images/generations with the model, a prompt, a size and a resolution. You get back a task ID, and you poll GET /v1/tasks/{task_id} until the image URL appears. Add image_urls and the same call becomes an edit. The model accepts up to ten reference images, and the first one is free. We uploaded local files through the upload endpoint first, which returns a public URL to pass in.
The settings that matter for web work are these:
- resolution: 1K, 1.5K or 2K. Combined with a ratio in size, it fixes the output pixels. A 16:9 frame is 1312 x 736 at 1K, 2048 x 1152 at 1.5K and 2560 x 1440 at 2K.
- size can also be auto, which follows the input image’s shape when editing, or an exact size such as 2560×1080.
- output_format is JPEG by default, or PNG.
- One image per request. Edits can target a region with <bbox> coordinates written into the prompt. A separate layer_decomposition mode splits an image into transparent layers.
Our account paid $0.0263 per image at 1K or 1.5K and $0.0527 at 2K, with $0.0018 for each reference image after the first. Those are the lowest member rates on the model page. The entry rate listed there is $0.0293 and $0.0585. One detail shapes everything below: 1.5K costs the same as 1K, and 2K costs double.
Test 1: One hero brief, three sizes
Kestrel Row’s bakery layout puts the headline on the left over the image, so the brief asked for an empty left third:
Wide website hero photograph for an artisan bakery: a rustic wooden counter on the right with sourdough loaves, croissants and a linen cloth, warm morning window light, shallow depth of field. The left third of the frame is a calm, softly blurred cream-coloured wall with nothing in it, leaving clear space for a headline. No text, no logos, no people.
We ran it three times: 2K at 21:9, 2K at 16:9 and 1.5K at 16:9. To measure how calm the headline zone was, we took the standard deviation of brightness across each image’s left third. A plain wall scores low and a busy background scores high.
The two 2K images kept the left third clear. The 1.5K image put a bakery interior there.
- 2K, 21:9: 3024 x 1296, $0.0527, 63 seconds from submit to download. Left-third score 27. The wall had a soft diagonal light band but nothing else.
- 2K, 16:9: 2560 x 1440, $0.0527, 58 seconds. Left-third score 12, the calmest of the three. This became the header image above.
- 1.5K, 16:9: 2048 x 1152, $0.0263, 46 seconds. Left-third score 68. The model filled the left side with shelves of bread and windows. It was a nice photograph, but the brief failed.
One run per size cannot prove that 1.5K ignores layout instructions. It only shows that a cheaper run can miss them. The working lesson for Kestrel Row is to check the headline zone before anything else, and to budget for a second attempt. A failed layout at 1.5K still costs half a 2K success.
For width, 2560 pixels covers a full-bleed hero on most laptop and desktop screens at 1x density. The 21:9 version gives 3024 pixels for very wide layouts, at the cost of a shallower frame that crops badly on tablets.
Test 2: From desktop hero to mobile hero
A 16:9 hero cropped for a phone usually loses the subject or the headline space. We compared a plain 9:16 crop of the desktop image with a recomposition by the model. We passed the desktop hero as a reference with this instruction:
Recompose this exact scene as a tall mobile hero image: the same loaves, croissants, linen cloth, wooden counter and warm window light. Keep the calm cream wall in the top third of the frame empty for a headline. No text.
The crop keeps the original pixels but only 810 pixels of width. The recomposed version is a new photograph of the same set.
The crop gave 810 x 1440 pixels and cut through the loaves wherever we placed it. The recomposed image came back at 1440 x 2560 for $0.0527 in 106 seconds. It used the same props, light and counter. The top third was calm wall: its edge density was 1.4, against 7.6 for the rest of the frame. It is not the same arrangement of loaves, though, so the two heroes read as one shoot rather than one photograph. For a responsive <picture> element that is usually what you want. If the client needs the identical loaf in both, crop and accept the lower resolution.
Test 3: Cleaning up a cluttered client photo
The bakery’s best counter photo had a card terminal, a receipt roll, a charger cable, sticky notes and a stack of paper cups in it. We asked for all five to go at 2K:
Remove the card payment terminal, the roll of receipt paper, the phone charger cable, the sticky notes and the stack of paper cups. Keep the loaves, the wooden boards, the shelves, the lighting and the camera angle exactly as they are.
The difference map lights up where the clutter was. The loaves and shelves barely register.
With size: “auto” and resolution: “2K”, the 1152 x 864 snapshot came back at 2368 x 1776. That is the same 4:3 shape at more than twice the width, for $0.0527 in 105 seconds. All five items were gone. The counter where the terminal and cups stood was filled with a plausible dark worktop. The loaves, boards, shelving and camera angle stayed as they were.
We scaled the edit back to the original size and compared the two. The mean brightness difference was 15 levels out of 255, and 13.6% of pixels changed by more than 20 levels, almost all of them inside the removed areas. The image got darker overall, from a mean of 83 to 72, because the white cups and paper were gone. One thing to know before using this on a client site: the upscale to 2K is generated detail, not recovered detail. The crust texture at full size is the model’s invention, which is fine for bread and not acceptable for, say, a product’s printed label.
Test 4: Relighting a dim reception photo, and does 2K pay?
Ashgrove Physio’s reception photo was taken with the lights off on a grey afternoon. We ran the same instruction at 1.5K and at 2K to see whether the extra cost buys anything:
Make this look like a bright, welcoming photo taken on a sunny morning with the room lights on: warmer white balance and brighter exposure. Do not move, add or remove any furniture or objects.
Both edits lifted the room from a mean brightness of 63 to about 150. Both also turned the blue-grey curtain white and added sun patches.
Mean brightness rose from 63 to 150 at 2K and 157 at 1.5K. The 95th percentile went from 147 to 242, so the edit used the full tonal range instead of just lifting the shadows. The desk, chairs, plant, door and poster stayed in place in both. But the model read “sunny morning” literally. It added beams of light across the floor and walls, and it changed the curtain from blue-grey to white. Both are believable, but the second is a factual change to the client’s room. We would show it to the client before publishing.
The 2K edit was 2368 x 1776 for $0.0527 in 118 seconds. The 1.5K edit was 1792 x 1344 for $0.0263 in 107 seconds. At the size the image will appear in a content column, roughly 800 to 1200 pixels wide, we could not tell them apart. At 100%, the 2K version has more pixels on the poster, but the poster’s small text is invented scribble in every version, including the original. For in-page photos Kestrel Row now uses 1.5K. It keeps 2K for full-width heroes, where the extra 576 pixels of width actually reach the screen.
Test 5: A targeted edit with coordinates
The Tidewell’s best room photo has a large black television on the wall, the first thing a guest sees. The model accepts <bbox>x1 y1 x2 y2</bbox> coordinates in the prompt, on a 0 to 1000 scale, to mark the area to change. We measured the TV’s position on the snapshot and wrote:
Replace the television inside <bbox>650 170 945 420</bbox> with a framed watercolour painting of a small seaside harbour, hung at the same height on the wall. Change nothing outside that box.
The box was respected closely: almost all the change is inside it.
The edit came back at 2368 x 1776 for $0.0527 in 53 seconds. A framed harbour watercolour hangs where the TV was, at a sensible height and in perspective with the wall. Inside the box, the mean difference from the original was 85 levels. Outside it was 3.6, and only 1.4% of outside pixels changed by more than 20. That makes it the most contained edit in our set. For agency work the coordinates are worth the extra minute it takes to measure them. They turn “change the TV” from a request the model may interpret broadly into a fenced-off job.
Before using an edit like this, the agency has a question to settle with the client. If guests will find a television in that room, the photo should not hide it. Kestrel Row only removes objects that are not part of what the customer is buying: clutter, cables, signage being replaced. When in doubt, the room stays as it is.
Test 6: Should the headline be in the image?
Image models now spell well, so it is tempting to bake the headline into the hero. We asked for exactly that at 1.5K:
Wide website hero photograph for an artisan bakery, sourdough loaves on a wooden counter in warm morning light. On the calm cream wall on the left, the headline is written in a clean dark brown serif typeface, exactly: “Fresh from the oven since 6 a.m.” and below it in smaller sans-serif type: “Marlowe Street Bakery, open daily”. No other text.
Both lines were spelled correctly, in the requested serif and sans-serif styles.
The result, 2048 x 1152 for $0.0263 in 69 seconds, was right on the first try. Both lines were correct, including the full stops in “a.m.”, and set in the two type styles we asked for. The type sat comfortably on the wall with good contrast.
We still would not ship it. Text in an image cannot be selected, translated, resized for small screens or read reliably by search engines. Screen readers only get it if someone copies it into the alt text. Changing “6 a.m.” to “7 a.m.” means a new generation. The Seedream 5.0 Pro API renders text well enough for mockups, client presentations and social images. For the live hero, Kestrel Row generates the text-free version from Test 1 and sets the headline in HTML, as in the header image of this article.
Test 7: Brand assets from three references
Redesigns often need a banner that shows the client’s product with its branding. We gave the model three references: the stand-in loaf photo, the bakery’s circular wordmark, which we drew ourselves as a flat image, and a four-colour palette swatch:
Create a wide website banner photograph: the sourdough loaf from image 1 sits on a wooden board next to a kraft paper bag printed with the circular logo from image 2, reproduced exactly. Use the colours from image 3 for the background wall and the props. Leave the left third of the frame calm and empty for a headline. No other text.
MARLOWE STREET, BAKERY and EST. 2019 all came through intact, wrapped onto the bag’s surface.
The banner came back at 2560 x 1440 for $0.0562 in 47 seconds. That is the 2K price plus two paid reference images at $0.0018 each. The logo on the bag reproduced every letter and the middle dot of “BAKERY · EST. 2019”, with the ring intact. It took on the paper’s texture, so it looks printed rather than pasted. The loaf matched the reference in shape and colour. The wall and board drew on the palette’s cream and terracotta. The left third scored 4 on our calmness measure, the cleanest headline zone in the whole test.
Exact logo reproduction is what makes this usable. A wordmark that comes back as “MARLOWF STRET” is worse than no image at all. We would still compare the logo against the vector file at 100% before every use. One good result does not guarantee the next.
Test 8: Splitting a hero into layers
For parallax effects, subtle animation or quick copy changes, a designer wants the hero in layers. We sent the Test 6 hero, the one with text baked in, through layer_decomposition: true at size: “1.5K”, with no prompt.
The base plate is clean, and the headline is its own layer. Stacked in the returned order, the cloth covered the bread.
The task took 87 seconds and returned 12 files for $0.158 in total. The first was a 2048 x 1152 base plate: the wall, counter and oven with the text and every loaf removed and the gaps filled in convincingly. The other 11 were transparent PNGs, each with a name, a description and a bounding box: the headline, the subline, five breads, a partly hidden roll, the wooden peel and the linen cloth. The peel layer even included the part of the handle that the loaves had hidden.
Two things needed work. First, the layers are not delivered at their placed size. Each PNG was between 1.45 and 7.97 times wider than its bounding box, so you must scale every layer down to its box when compositing. Second, the stacking order. The documentation says to composite in ascending z_index. Doing so put the cloth (z 10) and the peel (z 9) on top of the bread, as the fourth panel shows. When we moved those two layers to the bottom, the rebuilt image matched the source closely: mean difference 6.8 levels, down from 13.2. Check the stack visually before you build anything on it.
The files are heavy. The 11 layer PNGs came to 13.65 MB, against 255 KB for the base JPEG. For a parallax hero you would trim each layer to its visible pixels and re-encode it as WebP or AVIF with alpha. The same applies to any layered hero you ship.
Test 9: Shipping the hero
A beautiful 2K hero that weighs too much hurts the page’s Largest Contentful Paint, usually the hero itself. The 2560 x 1440 hero arrived as a 266 KB JPEG. 77 KB of that was embedded C2PA Content Credentials, a signed record that the image is AI-generated. We encoded it locally at four widths for a srcset:
At 1600 pixels, AVIF was 33 KB. Even the full 2560-pixel AVIF was 72 KB.
- 640 px: JPEG 24 KB, WebP 11 KB, AVIF 8 KB.
- 1024 px: JPEG 49 KB, WebP 23 KB, AVIF 16 KB.
- 1600 px: JPEG 103 KB, WebP 46 KB, AVIF 33 KB.
- 2560 px: JPEG 197 KB, WebP 99 KB, AVIF 72 KB.
Soft, shallow-focus photographs like this compress very well. Kestrel Row’s budget for a hero is 120 KB on desktop and 40 KB on mobile, and every size here fits as WebP or AVIF. Re-encoding drops the Content Credentials unless your tool copies them, so the agency keeps the original file in the client’s asset folder. It also adds a line to each site’s image credits saying which images were generated or AI-edited. That is a sensible default for edited photos of real premises, whatever the law where the client trades.
What it cost
| Item | Tasks | Cost |
| Four stand-in client snapshots, 1K | 4 | $0.11 |
| Test 1, three hero sizes | 3 | $0.13 |
| Test 2, mobile recomposition, 2K | 1 | $0.05 |
| Test 3, declutter, 2K | 1 | $0.05 |
| Test 4, relight at 1.5K and 2K | 2 | $0.08 |
| Test 5, coordinate edit, 2K | 1 | $0.05 |
| Test 6, text in image, 1.5K | 1 | $0.03 |
| Test 7, three references, 2K | 1 | $0.06 |
| Test 8, layer decomposition (12 files) | 1 | $0.16 |
| Test 9, encoding | 0 | $0.00 |
| Total | 15 tasks | $0.71 |
Rows are rounded. No task failed. Edits took 47 to 118 seconds and plain generations 29 to 69 seconds, so a batch of client edits is a coffee-break job, not an instant one.
A checklist for agency use
- Write the headline zone into the brief, and check it first. One of our three hero runs ignored it.
- Use 2K for full-width heroes and 1.5K for in-page images. 1.5K costs half as much and looked the same at column width.
- Recompose mobile heroes instead of cropping when resolution matters. Accept that it is a new photograph of the same set.
- Use <bbox> coordinates for targeted edits. Our boxed edit changed only 1.4% of the pixels outside the box.
- Read relighting results for invented facts, such as new sunlight or a curtain that changed colour, and get the client’s approval.
- Generate heroes without text and set headlines in HTML, even though the model spelled ours correctly.
- Check reproduced logos at 100% against the vector file every time.
- Rescale layers to their bounding boxes, check the stacking order, and re-encode every image for delivery.
The bottom line
For Kestrel Row the useful work turned out to be the unglamorous kind: removing clutter, fixing light and replacing a television in a guest room, all at a size that fits a modern full-width layout. The boxed edit and the multi-reference banner were the standout results. One kept its changes inside the marked area, and the other reproduced a client’s wordmark letter for letter. The weak points were predictable once seen. A cheaper hero run ignored its layout, relighting took small liberties with the facts, and the layer stack needed a manual fix.
The whole set cost $0.71, less than a minute of a photographer’s day. That makes it easy to try on a real redesign. Plan for a review step on every image, keep the originals, and tell visitors which images were generated or edited.


