Pinterest visual search ads: a transparent-background product cutout
Visual search ads match your product by its look. Ask for background: transparent on openai/gpt-image-2.5 and keep a clean PNG cutout of each item.

For a clean product cutout to use in Pinterest visual search ads, call POST /v1/images with model: "openai/gpt-image-2.5", background: "transparent" and output_format: "png". The Image API page lists background: auto|transparent|opaque for ChatGPT Image 2.5 on Sume. A trade tracker lists Pinterest visual search ads as a planned beta (read 2026-10-06), so I do not claim any Pinterest requirement for the format; the point here is a clean, reusable asset.
Sume facts: Image API: generate and edit images. Pinterest note: Social media platform updates, October 2026 (read 2026-10-06).
Why a cutout helps a visual-search format
A search that matches by appearance rewards an image where the product is the clear subject. A cutout removes the room, the hand and the props, and you can then place the same item on any backdrop later without regenerating it. It also gives your design tools one master per SKU instead of one image per scene.
How to send it
Send the real product photo as an input_references item (a public HTTPS URL), tell the model to keep the object unchanged and remove everything around it, and set the background field. If the model or endpoint you choose does not list background in its catalog descriptors, Sume answers 400 unsupported_parameter instead of quietly ignoring it, so check GET /v1/images/models for the model first. The image doc also points to Image 1.0 with transparency: true as the other route for transparent stills.
import json, os, urllib.request
body = {
"model": "openai/gpt-image-2.5",
"prompt": "Cut this exact product out. Keep shape, colour and label "
"unchanged. Remove everything else.",
"input_references": [
{"type": "image_url",
"image_url": {"url": "https://media.sume.com/img/demo/lamp-photo.jpg"}}
],
"background": "transparent",
"output_format": "png",
"aspect_ratio": "auto",
}
req = urllib.request.Request(
"https://api.sume.com/v1/images",
data=json.dumps(body).encode(),
headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Content-Type": "application/json"},
)
with urllib.request.urlopen(req) as r:
res = json.load(r)
print(res["data"][0]["url"], res["data"][0]["media_type"])
Format and size choices
The Image API page lists output_format as png, jpeg, webp or svg, and a sample response in the docs returns media_type next to each URL. Use png for a transparent cutout: jpeg has no alpha channel, so a transparent request saved as jpeg would defeat the purpose. Read media_type on the response rather than trusting the file extension in the URL (Image API: generate and edit images).
For sizes, GPT Image 2.5 on Sume takes image_size as a named preset, auto, or custom pixels where both edges are multiples of 16, the longest edge is at most 3840, the ratio is at most 3:1 and the image holds 655,360 to 8,294,400 pixels. For a master cutout, a square at a moderate size is enough; you can regenerate a larger one for the few SKUs that need it.
Quality defaults to high when omitted, with low, medium, xhigh and max available. For a plain object on a transparent field, medium is a sensible first test, and you raise it only if edges look soft. Pricing for the model is token-based, so check the Image API page for the current rates before you run a catalogue.
Checking the edges
Open the PNG on a dark and a light background. Fringes of the old backdrop show against the opposite colour. Check that thin parts, such as handles, cords and chain links, were not cut away, and that the label text is the same as in the source. If one edge is wrong, rerun that single SKU rather than the whole set.
| Parameter | Value | If unsupported |
|---|---|---|
| background | transparent | 400 unsupported_parameter |
| output_format | png | Pick a listed format |
| aspect_ratio | auto on edits | Omitting it is not the same as auto |
| input_references | 1 product photo | Public HTTPS URL only |
| Response | 200 with data[].url, or 202 job | Branch on status code |
Where the cutout goes next
Once you have the transparent PNG, you can reuse it for other things: a lifestyle backdrop through a second image call with the cutout as the reference, a first frame for a short video, or a catalogue tile. For a whole catalogue, run SKUs through one queue with a stable key per SKU so a restart does not make you pay twice. A stored post covers 25 Etsy-style listings cut out and restyled in one go.
Sources
Related posts
More in Use cases
- Plan a Black Friday spot free: billable minutes and cost in micros
Sume timeline-1.0 plan compiles a Black Friday spot without a job or a charge and returns segment_count, billable_minutes, and estimated_cost_usd_micros.
- Podcast network: transcripts, cover art and stings for 12 episodes
12 episodes of 45 minutes, four Ideogram 4.5 cover options each and three music stings each cost about $14.24 a month on Sume. Unit prices and the sum.
- Podcast trailer clip at 480p: 15 seconds on Wan, H3 or Seedance
A 15-second 480p podcast trailer clip costs $0.94 on Wan 3.0 or MiniMax H3 and $2.11 on Seedance 2.0 Fast on Sume, all with audio.
- Pop-up holiday market video: 3 phone clips for 16 cents
Turn three phone clips from a pop-up holiday market stall into one 24-second video on Sume: three trims at $0.02 and one timeline minute at $0.10, $0.16 in all.
Written by Sume