Uber Eats menu photo size: 5:4, one item, no text, no logos

Uber Eats menu photos should be 5:4 to 6:4, one item, no people, no text. Here is the rule list and how to prepare a crop with Sume's 5:4 aspect ratio.

5 min readSume
All posts

An Uber Eats menu photo should have an aspect ratio between 5:4 and 6:4, show a single menu item, and carry no text, logos, watermarks or people other than hands. Pixel limits are generous: 550 to 10,000 pixels wide, 440 to 10,000 tall, JPG, PNG or GIF, up to 10 MB. Uber's page does not mention AI-generated images, so the practical rule is the same as for any photo: it must show the item as it is served.

All numbers here come from Uber's Store submitted menu photo guidelines, read on 2026-10-02.

What are the Uber Eats menu photo rules?

The aspect ratio is marked as recommended. The content rules are phrased as things a photo cannot do.

Uber Eats menu photo rules, read 2026-10-02 from Uber's help page.
TopicWhat the page says
Aspect ratioBetween 5:4 and 6:4 (recommended)
Width and heightWidth 550-10,000 px; height 440-10,000 px
File type and sizejpg, png or gif; max 10 MB
Single itemCannot contain more than one single item
PeopleCannot depict people, except hands
QualityCannot be blurry, out of focus, strongly shadowed or poorly lit
MarksNo logos, watermarks or text, with exceptions for marks on the food or its packaging
HygieneCannot depict an unsanitary environment
AINot mentioned on the page

How do I get a 5:4 photo without cutting off the dish?

Frame for 5:4 when you shoot: landscape, dish centered, a little space on every side. If you already have a 3:2 or square photo, a crop is the least invasive fix, and it keeps every pixel of the food. Do the crop in any photo editor first; reach for generation only when the plate is cut off and you have to extend the background.

If you do extend a background with Sume, send the original as a reference and ask for aspect_ratio 5:4. Sume's Image API lists 5:4 among its normalized ratios, and a model only accepts the ratios its catalog descriptors list, so an unsupported pair returns 400 unsupported_parameter instead of a silent crop. On edits, the docs advise aspect_ratio: "auto" to match the reference, and note that omitting the field is not the same as auto.

import os, requests

r = requests.post(
    "https://api.sume.com/v1/images",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    json={
        "model": "sume/auto",
        "prompt": "Extend the plain wooden table on the left and right so the bowl sits centered. Do not change the food, portions or plate.",
        "input_references": [
            {"type": "image_url", "image_url": {"url": "https://example.com/menu/bowl.jpg"}}
        ],
        "aspect_ratio": "5:4",
    },
    timeout=60,
)
body = r.json()
if r.status_code == 200:
    print(body["data"][0]["url"])
else:  # 202: poll the job
    print(body["data"]["status_url"])

Check the result against the rules, not the prompt

Whatever tool made the file, open it at full size and run through Uber's list: one item, no extra garnish that is not served, no text, nothing at the edges. A photo that looks better than the real dish is a customer complaint waiting to happen, and Uber's list is built around showing one menu item as it is served.

Sume bills a completed image generation in full and does not bill a failed or cancelled one, according to the Image API billing section, so a discarded attempt that completed still costs money. Generate two or three, keep the most faithful, and delete the rest.

What about cover photos and ads?

This post covers only the store-submitted menu photo page. Cover images and other placements are documented on other Uber pages, so read the matching page before you reuse a file; ratio and size can differ by placement.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume