Character turnaround sheet on a 4:1 strip, sliced into references
One 4:1 Nano Banana 2.1 image on Sume as a four-view character sheet at $0.15 (2K), sliced into four squares and fed back as input_references. Steps and cost.

A 4:1 image fits four square views side by side (front, three-quarter, side, back), which makes a cheap character sheet: $0.15 at 2K on Sume against $0.60 for four 2K squares. Slice it into four squares and pass them as input_references on later calls so each new scene starts from the same character.
Steps and cost
| Step | Images | Price each | Total |
|---|---|---|---|
| 4:1 sheet | 1 | $0.15 | $0.15 |
| Scenes using the sliced references | 3 | $0.15 | $0.45 |
| All steps | 4 | $0.60 |
Step 1: the sheet
Ask for four evenly spaced views on a plain background so the slice lines fall on empty space.
import os, requests
body = {
"model": "google/nano-banana-2.1",
"prompt": "Character sheet, one cartoon fox in a red scarf, four views side by side: front, three-quarter, side, back, plain grey background",
"aspect_ratio": "4:1",
"resolution": "2K",
}
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json=body, timeout=60,
)
print(r.status_code) # 200 = image body, 202 = job envelope
if r.status_code == 200:
out = r.json()
print(out["data"][0]["url"], out["usage"]["cost"])Step 2: slice and reuse
Slice at width divided by four. Host the slices at public HTTPS URLs, then pass one or more as references.
from PIL import Image
img = Image.open("sheet.png")
w, h = img.size
q = w // 4
for i in range(4):
img.crop((i * q, 0, (i + 1) * q, h)).save(f"fox-{i + 1}.png")
# upload fox-*.png somewhere public (HTTPS), then:
refs = [{"type": "image_url", "image_url": {"url": u}} for u in [
"https://example.com/fox-1.png", "https://example.com/fox-3.png"]]Gotchas
- Google lists multi-turn character consistency as an improvement in Nano Banana 2.1 (Gemini API changelog, read 2026-10-09). Sume calls are independent requests, so the sliced references carry the character, not a chat history.
- Read the
input_referencesrange from the model's descriptor before you send many. - Inspect the sheet: views can drift between panels, and a drifted panel is a bad reference.
Sources
Related posts
More in Use cases
- Check a 30-second ad in 15 stills: video inspect fps 0.5 costs nothing
Review a 30-second ad as 15 stills with Sume video inspect fps 0.5. Probe and stills are free; a transcript adds $0.01 per audio minute.
- Claude Dashboards and Motion or a Sume schedule for a weekly recap
For a weekly metrics recap, Claude Dashboards plus Motion fits warehouse data and edits by hand; a Sume schedule fits footage and a $1.00 default cap per run.
- Claude Motion has no AI people: a 30-second Sume presenter costs $5.52
Claude Motion makes no AI people. A 30-second Sume avatar presenter costs $5.52 standard, $7.35 plus or $16.50 max, after a one-time $0.95 avatar.
- No Claude Motion on your plan? A 30-second Sume video from $1.875
Not on a Team or Enterprise plan? Sume generates a 30-second video by API from $1.875 (wan-3.0 480p) to $17.334 (seedance-2.5 720p). Different tool.
Written by Sume