AI ice cream flavor photos on Imagen 4 Fast: 40 images for $1.00

Imagen 4 Fast lists at $0.02 and bills $0.025 on Sume; ten flavors at four takes each is 40 images and $1.00, in 1:1, 4:3 or 3:4.

5 min readSume
All posts

For AI ice cream flavor photos, call google/imagen-4-fast with n: 4 once per flavor: Sume lists Imagen 4 Fast at $0.02 per image, billed at list times 1.25 as $0.025, so ten flavors at four takes each is 40 images and $1.00. It is text-to-image only and lists five ratios: 1:1, 16:9, 9:16, 4:3 and 3:4.

Scoops melt, drip and reflect light, and a menu board needs many flavors; both argue for a cheap, fast model. Prices and limits are from Sume's Image API page and the catalog source, read on 2026-10-05. Because the model takes no reference image, the pictures show an imagined scoop, not your tub: keep them for menus and social posts, and describe the real flavor accurately.

What does a flavor board cost?

Imagen 4 Fast has no resolution tier on Sume and no 4:5 ratio, so a square or 3:4 crop is the closest to an Instagram portrait post; for an exact 4:5, pick a model that lists it.

Flavor photos on Imagen 4 Fast (read 2026-10-05)
ItemValueSource
Model idgoogle/imagen-4-fastImage API page
Billed price per image$0.025$0.02 list x 1.25
One flavor, four takes$0.104 x $0.025
Ten flavors, four takes$1.0040 x $0.025
Ratios1:1, 16:9, 9:16, 4:3, 3:4Catalog aspect ratios
ReferencesNone (text only)Catalog constraints

How do I generate one flavor?

Vary the flavor and toppings per call and keep the cone, bowl and light the same, so the board looks like one shoot.

import os, requests

body = {
    "model": "google/imagen-4-fast",
    "prompt": "A waffle cone with two scoops of pistachio ice cream, light green with nut crumbs, on a white marble counter, soft window light, shallow depth of field, no text",
    "aspect_ratio": "3:4",
    "n": 4
}
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?

  • Compare color and toppings against the real flavor, and drop takes that show the wrong ones.
  • Sending input_references returns a 400, because the row is text-only.
  • If your menu needs 4:5, generate 3:4 and crop in your layout tool.
  • Read usage.cost on each response when you total the batch.

Sources

Related posts

More in Models

All Models posts

Written by Sume