ChatGPT Images shared prompt: reuse it on your own photos via API

A shared image prompt is only text. Save it in a file, then run it over your own photos with input_references on Sume and match each result to its source.

4 min readSume
All posts

To reuse someone's shared image prompt on your own photos through Sume, paste the prompt text into a file, then call POST /v1/images once per photo with model set to openai/gpt-image-2.5, the prompt in prompt and the photo in input_references. The prompt is plain text, so nothing about it is tied to the app where you found it. Photos must be public HTTPS URLs.

Request fields are from Sume's Image API docs, read 2026-09-29.

What do I change when I swap in my own photo?

Only the reference. Keep the prompt byte for byte, so differences between results come from the photos and not from rewording. The 2.5 ids accept up to 16 references, so a prompt that expects two photos, for example a person and a product, can send both in one request.

Reusing one saved prompt over many photos on Sume, read 2026-09-29.
PieceWhere it goesChanges per photo?
Shared prompt textpromptNo
Your photoinput_referencesYes
Output shapeaspect_ratio: "auto"No
Which photo it came frommetadataYes

How do I run it over a folder of photos?

Build the JSON with jq so quotes in the prompt cannot break the request. Set aspect_ratio to auto so each result follows its own photo; the docs note that leaving the field out is not the same as auto. metadata is stored on the job and never sent to the provider, which makes it a safe place for the source URL.

PROMPT=$(cat shared-prompt.txt)
while read -r url; do
  body=$(jq -n --arg p "$PROMPT" --arg u "$url" '{
    model: "openai/gpt-image-2.5", prompt: $p, aspect_ratio: "auto",
    input_references: [{type: "image_url", image_url: {url: $u}}],
    metadata: {source: $u}}')
  out=$(curl -s -X POST https://api.sume.com/v1/images \
    -H "Authorization: Bearer $SUME_API_KEY" \
    -H "Content-Type: application/json" -d "$body" \
    | jq -r '.data[0].url')
  echo "$url -> $out"
done < photos.txt

How do I keep track of cost and slow jobs?

Each finished response has usage.cost, the USD amount billed, so sum it across the loop before you scale up. A blocking call waits 30 seconds at most; a slower one returns a 202 job with no image URL, and that photo prints an empty result in the script above. Rerun those photos with mode: "async" and poll the job.

Is there a way to share the prompt itself?

Sume's request table has no template or share field, so the file is the template. Put shared-prompt.txt in version control and review changes to it like code. That gives you the reuse without any product feature behind it.

Which photos should not go through a URL?

Reference images must be public HTTPS URLs, so each photo has to be reachable by anyone who has the link. Do not upload private pictures of other people to a public bucket just to run a prompt. Use photos you own or have permission to use, and take the links down when the batch is done.

Keep a short log beside the results: the prompt file version, the source URL and the output URL. If you later change the prompt, you can tell which results came from which version, and rerun only the photos that matter.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume