AI holiday card from your dog's photo: keep the pet, change the scene
Turn one photo of your dog or cat into a holiday card scene with a Sume image edit: keep the pet unchanged, change the setting, and add the greeting yourself.

One pet photo, one scene change
A holiday card with your own pet in a snowy cabin is a reference edit: the pet photo goes in, the setting changes, and the animal should still look like your animal. Send one clear, well-lit photo of the pet as the reference.
Use POST /v1/images with a single entry in input_references. For a fixed greeting, add the words afterwards in a design tool. OpenAI's guide says its model can still struggle with precise text placement and clarity, so lettering is safer as a separate step.
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.
Tell the model what must stay
Name the pet's features that matter: fur color and markings, ear shape, collar. Say the pose and the face must not change, and describe the new setting in one sentence. Pick a portrait ratio for a card and request it explicitly if you do not want the photo's shape.
import os
import requests
REFS = [
"https://example.com/dog.jpg",
]
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": "Keep the dog exactly as photographed, including fur "
"markings, ears and red collar. Place it on a wooden cabin "
"porch in soft snowfall at dusk with warm string lights.",
"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())Settings to try
Three settings, three calls, the same source photo each time.
| Option | Setting |
|---|---|
| A | Cabin porch, snowfall, string lights |
| B | Fireplace, knitted stockings |
| C | Pine forest clearing, low sun |
Compare the face to the photo
Put the result next to the original and check the eyes, the markings and the ears. If something changed, rerun with a more specific sentence about the feature that drifted. Then add the greeting in a design tool and export the card.
Inputs Sume checks before it spends anything
Reference and mask URLs must be public HTTPS; localhost, private-network and non-HTTPS URLs are rejected. Sume also checks every field against the model's catalog entry, so a field the model does not list returns 400 unsupported_parameter instead of being dropped without a word.
If you are unsure which fields a model accepts, GET /v1/images/models lists them, and GET /v1/images/models/{id}/endpoints returns the per-endpoint capabilities and pricing.
Timing and what a call costs
POST /v1/images on Sume waits up to 30 seconds and returns 200 with the image. If the generation is still running at that point you get 202 and a job envelope with a status URL and a result URL instead. The docs name 4K, high quality and large n as the settings most likely to degrade to 202, so branch on the status code, not on the body shape.
Billing is all-or-nothing. A completed generation is billed in full, a failed or cancelled one is not, and usage.cost in the response is the USD amount charged: the provider list price times 1.25.
Sources
Related posts
More in Use cases
- AI phone case art: tall ratios 9:16, 9:19.5 and 9:21 on Sume
Phone case art is tall and narrow. Compare the tall ratios Sume image models list, the prices per image, and a request that asks for a safe zone for the camera.
- AI phone wallpaper API: Sume models for 9:16, 9:20 and 9:21
Taller phones need more than 9:16. Grok Imagine lists 9:20 and 9:19.5; Qwen Image, both Flux rows and Recraft V4 list 9:21. Prices and a batch request.
- AI pitch video: Seedance 2.5 shots for a concept or previs
BytePlus lists previs and pitch videos as a Seedance 2.5 use. How to build a concept reel from 4-30 s shots: 480p drafts, references, one Timeline.
- AI presenter video for job postings: 25 roles, 20 seconds each
25 twenty-second hiring clips from one recruiter avatar cost $122.50 on Plus or $92.00 on Standard, plus $0.95 once, at Sume's listed rates.
Written by Sume