AI photo booth strip from one selfie: a 1:4 Nano Banana 2 edit
A four-frame photo strip fits the 1:4 ratio that Nano Banana 2 lists on Sume; one selfie reference and one call cost $0.10 billed per strip.

To make an AI photo booth strip from one selfie, call google/nano-banana-2 with the selfie in input_references and aspect_ratio: "1:4", and ask for four stacked frames in one image. Nano Banana 2 is the Sume catalog row that lists 1:4 (and 4:1, 8:1, 1:8) among its ratios, and it bills $0.10 per image: $0.08 list times 1.25.
A booth strip is a tall four-frame layout, so a tall ratio is the right canvas. The facts below come from Sume's Image API page and the catalog source, read on 2026-10-05. Use a photo of yourself or someone who agreed to be in the strip; this is for party favors, not for pictures of other people.
Which ratio and cost fit a photo strip?
Most models in the catalog stop at 1:2 or 1:3. Nano Banana 2 lists 1:4 directly, and the edit call keeps the person's face as the reference. For a guest list, one call per guest is the plan.
| Item | Value | Source |
|---|---|---|
| Model id | google/nano-banana-2 | Image API page |
| Tall ratios listed | 1:4 and 1:8 | Aspect ratio list |
| Billed price per image | $0.10 | $0.08 list x 1.25 |
| Twenty guests, one strip each | $2.00 | 20 x $0.10 |
| References per call | Up to 10 | Catalog range |
How do I request the four frames?
Describe the strip as four separate frames with the same person and small pose changes. Keep the background a plain curtain so the frames read as booth shots.
import os, requests
body = {
"model": "google/nano-banana-2",
"prompt": "A vintage photo booth strip with four stacked frames of the same person from the reference photo, laughing, surprised, winking, smiling, plain red curtain, black and white film look, no text",
"aspect_ratio": "1:4",
"input_references": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/selfie.jpg"
}
}
]
}
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json=body,
timeout=60,
)
if r.status_code == 200:
out = r.json()
for img in out["data"]:
print(img["url"])
print("billed USD:", out["usage"]["cost"])
elif r.status_code == 202:
print("still running, poll:", r.json()["data"]["status_url"])
else:
print(r.status_code, r.text)What should I check on each strip?
- Count the frames; ask again if the strip has three or five.
- Check that the face matches the reference in every frame; drift is a reason to regenerate.
- Keep guest photos only as long as the event needs them, and delete the files after.
- A 202 means the job is still running: read the result from the job endpoint.
Sources
Related posts
More in Models
- AI photo edit came back a different size: four causes on Sume
A different edit size on Sume comes from four things: a shape request, a pixel string snapped to a ratio, the larger 1K edit size, or no aspect_ratio auto.
- AI podcast cover art on Flux 2 Flex: $0.0625 per image on Sume
Flux 2 Flex lists at $0.05 and bills $0.0625 on Sume; a square podcast cover takes 1:1, and eight concepts cost $0.50 at one image each.
- AI quote card backgrounds on Seedream 4: auto ratio, $0.0325 each
Seedream 4 lists at $0.026 and bills $0.0325 on Sume; its ratio list adds auto, so ten quote card backgrounds cost $0.325 in 1:1, 4:5 or 9:16.
- AI snow globe product render: Seedream 5.0 Lite at $0.04375
A snow globe render on Seedream 5.0 Lite lists at $0.035 and bills $0.04375 on Sume; n=4 gives four 1:1 takes for $0.175 with one reference photo.
Written by Sume