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.

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.
| Piece | Where it goes | Changes per photo? |
|---|---|---|
| Shared prompt text | prompt | No |
| Your photo | input_references | Yes |
| Output shape | aspect_ratio: "auto" | No |
| Which photo it came from | metadata | Yes |
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.txtHow 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
- Custom AI avatar from a photo: allowlist or self-serve?
Google gates Live Avatar custom avatars behind enterprise allowlisting. Sume's avatar docs list a photo input on the create route. Request and rules.
- Customer service training videos: role-plays made with AI
Customer service training videos as short AI role-plays: which scenarios to script, how to build a two-person scene, captions, and what each clip costs.
- Dental marketing videos with AI: what to make, what to skip
Dental marketing videos AI can make without a patient: a meet-the-dentist clip, first-visit and FAQ answers, and office-photo tours. What to skip, and costs.
- Does an AI video API add a C2PA record or watermark to output?
Sume's docs do not say its video output carries a C2PA record or watermark, and trim and Timeline re-encode files. How to check a file and what to do instead.
Written by Sume