AI hoodie logo mockup: put your logo on a blank hoodie photo
Show your logo on a real blank hoodie photo with one Sume image edit: the hoodie first, the logo second, and a prompt that keeps the folds and the color.

The hoodie photo plus the logo file
Before ordering a run of printed hoodies, a small brand wants to see the logo on the garment. You have a photo of a blank hoodie and a logo file. Two references and one edit call produce a mockup you can share with a printer.
Send the hoodie photo first and the logo second in input_references. Name them in the prompt as image 1 and image 2 so the model knows which is the garment and which is the artwork.
Sume Image API docs list ChatGPT Image 2.5 as openai/gpt-image-2.5 (Flare) and openai/gpt-image-2.5-sunburst. OpenAI's guide says to choose Sunburst where editing precision matters most and Flare for fast everyday generation, so these edits use Sunburst.
Say where and how big
Give a position and a size in plain words: centered on the chest, about a hand-width wide, flat print. Tell the model to follow the fabric folds without changing the garment color or the background. If the logo has text, check it letter by letter in the result, because OpenAI's guide says its image model can still struggle with precise text placement and clarity.
import os
import requests
REFS = [
"https://example.com/hoodie.jpg",
"https://example.com/logo.png",
]
resp = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={
"model": "openai/gpt-image-2.5-sunburst",
"prompt": "Image 1 is a blank black hoodie photo, image 2 is a logo. "
"Print image 2 centered on the chest, about a hand-width "
"wide, following the fabric folds. Keep the hoodie color "
"and background unchanged.",
"aspect_ratio": "auto",
"input_references": [
{"type": "image_url", "image_url": {"url": u}} for u in REFS
],
},
timeout=60,
)
print(resp.status_code)
print(resp.json())What to send and in what order
Sume's docs say ChatGPT Image 2.5 takes up to 16 references, so a hoodie photo, a logo and a few extra views all fit. Reference URLs must be public HTTPS.
| Field | Value |
|---|---|
| model | openai/gpt-image-2.5-sunburst |
| input_references[0] | Blank hoodie photo |
| input_references[1] | Logo file |
| aspect_ratio | auto, so the result keeps the photo's shape |
Treat it as a placement mockup
A render shows size and position, not print method. Ink behavior, embroidery thread and color matching are for the printer's proof. Keep the original logo file as the artwork of record and use the render to agree on placement with your customer.
What happens when a call runs long
Most image calls finish inside the 30-second wait that POST /v1/images holds open. When one does not, Sume answers 202 with a job envelope, and you poll GET /v1/jobs/{id}/status and read GET /v1/jobs/{id}/result. That result uses the standard job shape, not the image body, so check the status code first.
You only pay for a finished image. Failed and cancelled generations are not billed, and a request that ends early because the client disconnected is treated as a failed generation. The charged amount, provider list price times 1.25, comes back in usage.cost.
Sources
Related posts
More in Use cases
- AI image slideshow Shorts on YouTube: what narrative to add
YouTube's inauthentic content policy lists image slideshows with minimal narrative as not allowed. Turn stills into a Short with a real story, using Sume.
- AI isometric illustration generator: a matching set through an API
Make a set of isometric illustrations that match: one style anchor, fixed camera words, and a per-item prompt. Model, ratio and cost per image on Sume.
- AI jigsaw puzzle image via API: 4:3 art and quality checks on Sume
Puzzle art needs detail everywhere. Generate at 4:3 on Sume, ask for dense scenes, check resolution and upscale before printing. From $0.025.
- AI kitchen backsplash tile preview with a tile sample photo
Preview a backsplash tile before you buy: the kitchen photo, a photo of the tile sample as a second reference, and a Sume edit that changes only the backsplash.
Written by Sume