AI nursery wall art set of three via API: matching style on Sume
Three prints that match: make one in 3:4, then pass it as a reference for the other two. Eligible Sume rows, cost of a set at $0.0375 per image, print checks.

A set of three nursery prints should share a palette, linework and mood. The Sume image API gives you no seed to repeat a style, so the dependable method is an anchor: generate the first print, then pass its URL in input_references for the second and third with a prompt that changes only the subject. Flux 2 Pro lists 3:4, takes up to 10 references and costs $0.0375 per image (read 2026-10-03), so a set is three calls, $0.1125, plus rerolls.
Keep the content simple and text-free; letters and numbers on a wall print are where generated art fails first, and you can add them later in your layout tool.
Rows
| Model | Catalog id | Per image | References |
|---|---|---|---|
| Grok Imagine | x-ai/grok-image | $0.025 | 10 |
| Qwen Image | qwen/qwen-image | $0.025 | 10 |
| Seedream 4.0 | bytedance-seed/seedream-4 | $0.0325 | 10 |
| Flux 2 Pro | black-forest-labs/flux.2-pro | $0.0375 | 10 |
| Seedream 5.0 Lite | bytedance-seed/seedream-5-lite | $0.04375 | 10 |
| Seedream 4.5 | bytedance-seed/seedream-4.5 | $0.05 | 10 |
Anchor and two matches
This is the same helper pattern used for a character set: one anchor call, then one referenced call per new print. A call that is still running after the 30-second wait returns 202 with a job envelope instead of 200, so check the status code before reading data; see Jobs and results.
import os
import requests
HEADERS = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
URL = "https://api.sume.com/v1/images"
MODEL = "black-forest-labs/flux.2-pro"
def make(prompt, refs=None):
body = {"model": MODEL, "prompt": prompt, "aspect_ratio": "3:4"}
if refs:
body["input_references"] = [
{"type": "image_url", "image_url": {"url": u}} for u in refs
]
r = requests.post(URL, headers=HEADERS, json=body, timeout=60)
r.raise_for_status()
if r.status_code == 202:
raise RuntimeError("still running, poll " + r.json()["data"]["status_url"])
return r.json()["data"][0]["url"]
anchor = make("soft watercolor nursery print of a sleeping fox in a meadow, muted sage and peach palette, lots of white space, no text")
print(anchor)
for subject in ["a rabbit under a crescent moon", "a bear holding a balloon"]:
print(subject, make("same style as the reference, new subject: " + subject, [anchor]))Print checks
- Open each file at full size and check the edges and small details.
- Compare the three side by side for matching palette; re-roll the one that drifts.
- Ask the print shop for its required pixel size and upscale if the generated image is smaller.
- Keep the prompts so you can extend the set later.
Sources
Related posts
More in Use cases
- AI outfit builder: three garments, one model, reference order
Put a top, trousers and shoes from three separate product photos onto one model in a single gpt-image-2.5 edit on Sume, with a reference order that holds.
- AI phone case art: tall ratios 9:16, 9:19.5 and 9:21 on Sume
Phone case art is tall and narrow. Compare the tall ratios Sume image models list, the prices per image, and a request that asks for a safe zone for the camera.
- AI phone wallpaper API: Sume models for 9:16, 9:20 and 9:21
Taller phones need more than 9:16. Grok Imagine lists 9:20 and 9:19.5; Qwen Image, both Flux rows and Recraft V4 list 9:21. Prices and a batch request.
- AI pitch video: Seedance 2.5 shots for a concept or previs
BytePlus lists previs and pitch videos as a Seedance 2.5 use. How to build a concept reel from 4-30 s shots: 480p drafts, references, one Timeline.
Written by Sume