AI tote bag mockup: design file plus blank bag as 2 references
Make a tote bag mockup with the Sume image API: send a blank-bag photo and your design as two references, keep the text yours, and compare the price per mockup.

Send two input_references to an edit-capable model: a photo of a blank tote and your artwork. Then ask for the artwork printed on the bag at a set position. On Sume that costs $0.025 per mockup on Qwen Image, $0.0375 on Flux 2 Pro and $0.05 on Seedream 4.5, all edit-capable (catalog read 2026-10-03). Check the printed art against your file, since the model repaints it.
The two-reference pattern
The docs describe input_references as an array of public HTTPS image URLs. Put the blank bag first and the artwork second, and say so in the prompt: the first image is the blank tote, the second is the print. The Image API docs note that a model whose references limit is zero rejects references, so use a row that lists them.
- Blank bag: a clean front-on photo with even light, any color you plan to sell.
- Artwork: a flat PNG on a plain ground, large enough to read.
- Prompt: say where the print sits, how big it is, and the scene around the bag.
- Ratio: 4:5 for feeds, 1:1 for shop pages.
Text on the bag
If the print has words, expect drift. OpenAI's image guide (read 2026-10-03) says its models can still struggle with precise text placement and clarity. The practical route is to keep the words in the artwork file you supply, check every letter on the result, and rerun when it is off. For a wordmark that must be exact, composite your own file on top of the render with Pillow instead of trusting the model.
Prices for a mockup
Prices are the per-image endpoint prices on the Sume catalog (read 2026-10-03). A mockup is one image, so cost per mockup equals the price.
| Model | Per mockup | Ten colorways | Edits with image_urls |
|---|---|---|---|
| Qwen Image | $0.025 | $0.25 | yes |
| Flux 2 Pro | $0.0375 | $0.375 | yes |
| Seedream 4.5 | $0.05 | $0.50 | yes |
| Nano Banana 2 | $0.10 | $0.10 x 10 = $1.00 | yes |
Script for ten colorways
This loops over blank-bag photos, one per color (two are listed; add the rest), sends the same artwork each time and saves the results by name. It stops on a non-200 so you see the status.
import os, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
ART = "https://example.com/art.png"
BAGS = {"natural": "https://example.com/bag-natural.png",
"black": "https://example.com/bag-black.png"}
for name, bag in BAGS.items():
r = requests.post("https://api.sume.com/v1/images", headers=H, timeout=120, json={
"model": "qwen/qwen-image", "aspect_ratio": "4:5",
"prompt": "Image 1 is a blank tote, image 2 is the print. Put the print "
"centered on the bag front, same size, on a plain studio floor.",
"input_references": [{"type": "image_url", "image_url": {"url": u}} for u in (bag, ART)]})
if r.status_code != 200:
raise SystemExit(f"{name}: {r.status_code} {r.text[:200]}")
img = requests.get(r.json()["data"][0]["url"], timeout=60).content
open(f"tote-{name}.png", "wb").write(img)
print(name, r.json().get("usage"))
What Sume does not do
Sume does not hold your print files or send anything to a print partner. Keep production files at the sizes your print partner asks for; a mockup is for the product page, not for the press.
Sources
Related posts
More in Use cases
- AI trading card art: generate at 2:3, then crop to a 5:7 card
Sume has no 5:7 ratio. Ask for 2:3, keep art out of the margins, and crop 6.7 percent off the height. Models, request and crop math.
- AI try-on for sunglasses, bags and scarves from a photo
ChatGPT Try On covers accessories as well as clothes. The same edit on Sume: several photos of the item as references, and what to check on scale and shape.
- AI ultrawide wallpaper and banner API: which Sume models list 21:9
Seven Sume image rows list 21:9, from Flux 2 Pro at $0.0375 to Qwen Image Max at $0.09375. Nano Banana 2 adds 4:1 and 8:1; Ideogram adds 3:1. Request example.
- AI vintage travel poster via API: 3:4 art with the headline in code
Vintage travel poster art at 3:4 from any Sume row, then the place name set in code. From $0.025; Ideogram rows if the model draws the lettering.
Written by Sume