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.

5 min readSume
All posts

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

Reference-capable rows at 3:4, read 2026-10-03.
ModelCatalog idPer imageReferences
Grok Imaginex-ai/grok-image$0.02510
Qwen Imageqwen/qwen-image$0.02510
Seedream 4.0bytedance-seed/seedream-4$0.032510
Flux 2 Problack-forest-labs/flux.2-pro$0.037510
Seedream 5.0 Litebytedance-seed/seedream-5-lite$0.0437510
Seedream 4.5bytedance-seed/seedream-4.5$0.0510

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

All Use cases posts

Written by Sume