Saved favorites to a lookbook sheet: one gpt-image-2.5 call
Turn up to 16 saved product images into one lookbook sheet with openai/gpt-image-2.5 on Sume. Reference numbering, layout wording and what to check.

To turn a shopper's saved items into a single lookbook sheet, send up to 16 product images as input_references to openai/gpt-image-2.5 on Sume and describe the layout in words: a grid of four by four, a hero item with a row beneath, or a styled outfit board. The docs list 16 references for this model, so a saved folder of that size fits in one call.
ChatGPT's launch on October 1, 2026 added Favorites, saved to the Library with folders, next to its Try on button (read 2026-10-03, OpenAI release notes and help page). A saved list is a natural thing to turn into a shareable board, and a shop can offer the same thing with its own catalogue, using only product photos it controls.
Write the layout, number the items
The model sees images in the order you send them. Say what each position holds: image 1 is the hero, images 2 to 5 are tops, images 6 to 9 are bottoms. Then describe the sheet: a clean off-white background, even spacing, each item the same scale, a small gap between items, no text. Avoid asking for prices or labels inside the image, since text in generated images is the least reliable part.
Keep items on a plain background in your inputs. A packshot with a cluttered scene makes the model carry clutter into the sheet. If your catalogue photos are all on white, the result will look consistent without much prompting.
| Field | Value | Note |
|---|---|---|
model | openai/gpt-image-2.5 | Up to 16 references |
input_references | Hero first, then items in groups | Public HTTPS only |
aspect_ratio | 4:5 or 1:1 | Pick for the destination |
quality | high | Use xhigh only for the final |
background | opaque | Plain sheet background |
The call
Use a template so the numbering stays consistent across shoppers or collections, and generate the input_references list from your own data.
import os, requests
urls = [f"https://cdn.example.com/fav/{i:02d}.jpg" for i in range(1, 9)]
refs = [{"type": "image_url", "image_url": {"url": u}} for u in urls]
prompt = ("Make a clean lookbook board on an off-white background. "
"Image 1 is the hero item, large, upper left. Images 2 to 8 are smaller, "
"arranged in an even grid beside and below it. Same scale rules for all, "
"no text, no labels. Keep every item's colour and shape exactly as shown.")
r = requests.post("https://api.sume.com/v1/images", timeout=120,
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={"model": "openai/gpt-image-2.5", "prompt": prompt, "aspect_ratio": "4:5",
"quality": "high", "background": "opaque", "input_references": refs})
print(r.status_code, r.json())What to check and what to avoid
Count the items on the sheet. A board of eight requested items that shows seven, or nine, is a common failure, and the reason is that the model composes rather than pastes. Compare each item with its source for colour and shape. If one item is wrong, run a targeted edit for that item rather than regenerating the whole sheet.
This is not a product listing image. It is a mood board, and you should label it as generated. For listing images, use a direct edit of one product at a time. For a video made from several items, a Format run takes up to 30 images, as the attachments post explains, and the QC checklist covers checks you can reuse. For aspect ratio on edits, see auto versus omitted.
Last, a saved list belongs to a shopper. Decide what you keep, for how long and who can see it before you build the feature, because that is your decision and not something Sume or this post settles for you.
If the sheet is too busy
More than about nine items on one sheet starts to shrink each item below the point where details survive. Split a long list into two sheets of eight rather than one of sixteen. You keep the 16-reference limit as headroom, not as a target.
Use quality high only after the layout is right. A first pass at a lower setting shows whether the numbering and grid work, which is the part that usually needs a change. Then pay for the final once.
Sources
Related posts
More in Use cases
- School announcement video in two languages for parents: captions
One clean announcement clip, two caption jobs: English and your second language. Language hints, Korean styles and a human check on the translation.
- Screen-recording tutorial Shorts: what YouTube expects you to add
A screen recording with no voice is thin under YouTube's originality rules. How to cut a tutorial Short from your own recording with trim and caption cues.
- Section 508 caption display rules: two lines, 45 characters, burned in
Section508.gov asks for two lines, 45 characters per line, white text on a translucent black box. How each rule maps to Sume's caption design fields.
- Seedance 2.5 or Avatar video for a 30-second product ad?
Sume's Video Router lists seedance-2.5 for 4-30 s clips; Avatar Video plans 4-60 s of a talking presenter. How to choose for a product ad.
Written by Sume