All articles

From paper menu to delivery-ready photos in 60 minutes: the Menu Scanner workflow

A timed walkthrough of the FoodPic Menu Scanner: photograph a paper menu, OCR every dish, batch generate, export per platform. Real numbers, real costs.

By FoodPic Editorial Team7 min read

A paper menu is the last thing a delivery platform wants to see. Thuisbezorgd, Uber Eats, and Deliveroo all push restaurants to upload a photo per dish, and most kitchens still do not. Either they never had the photos, or they had a few from a launch shoot in 2019 that no longer reflect the menu. The gap between a printed menu in the rack and a finished platform listing is what kills the project.

The Menu Scanner closes that gap. We built it for restaurants that have not digitised their menu yet. You photograph the printed menu, the system extracts every dish, and we generate a photo for each one. Below is the timed workflow we observe across new restaurant accounts: a 60-minute path from a folded paper menu on the bar to a folder of platform-sized JPEGs.

Menu Scanner step 1: photograph the menu in 3 minutes

A flat phone shot under daylight is enough. We accept JPG, PNG, and WebP, up to 10 MB per file. If the menu runs across multiple pages or panels, take one photo per panel and upload the set together.

Three things matter. The menu is flat, no curl in the paper. The whole panel is in the frame, no edges cropped. The text is sharp at 100% zoom on the phone, which usually means standing about 40 cm above the menu with the camera lens parallel to the page. Angled shots and finger-tip shadows are the most common reasons a dish goes missing in extraction.

This step takes around three minutes for a typical two-panel menu of 25 to 35 dishes. Drop the photos into the upload zone on the Menu Scanner page and confirm.

Menu Scanner step 2: OCR extraction in 1 minute

The extraction runs on Anthropic's Claude vision model, the same family Anthropic publishes performance numbers for in its Claude 3.5 Sonnet vision benchmarks. For a clean phone shot of a printed menu, end-to-end extraction lands at 30 to 60 seconds, including network round trips.

What comes back is a structured list. Dish name, dish description, suggested category (starter, main, dessert, side, drink), and a guess at cuisine type and menu language. We auto-detect Dutch and English menus and route the description language to match. A 30-dish menu typically extracts in one pass with two or three items needing a manual fix.

Categories are inferred, not promised. If a kitchen prints "Voorgerechten" as a header, the items underneath get tagged as starters. If categories are absent or inconsistent, the model takes a guess from the dish name and you correct it in step three. The cost of OCR sits at one extraction call per upload, regardless of how many dishes are on the menu, and is included in the plan.

Menu Scanner step 3: review and edit the dish list in 10 minutes

This is the step nobody expects to need, and we will not pretend otherwise. Even at 95% extraction accuracy, a 30-dish menu produces one or two items that need attention. Common fixes:

A dish printed in two languages on the same line, where the model picks one and drops the other. Off-menu specials handwritten over a printed item. Pricing lines mistakenly captured as descriptions. Items that the kitchen no longer serves but that are still on the laminate.

The review screen lists every extracted dish with its category, description, and a check box. Edit the name in place. Fix the category from the dropdown. Delete dishes that are off-menu. Add new dishes manually. We default the description to what came out of OCR, which is fine for most cases and adjustable for any case where the printed copy is not the platform copy you want.

Ten minutes is the realistic budget for a 30-dish menu. Faster if the menu is clean, slower if half the items have inconsistent capitalisation or the kitchen has changed since the last reprint.

Menu Scanner step 4: batch generate photos in 35 minutes

Generation runs on Banana Pro, the image model that handles the actual food photography. Each dish takes 60 to 90 seconds end-to-end including upload, model inference, and storage on our CDN. For 30 dishes at one variation each, that is roughly 35 minutes of unattended runtime. The Menu Scanner runs the queue sequentially and shows a thumbnail as each dish finishes, so progress is visible without staring at a spinner.

Pick the style once, before the queue starts. The four presets we recommend for restaurants pushing to delivery platforms:

Delivery and Takeout. Clean white background, overhead shot, even lighting. This is the Thuisbezorgd default and what we recommend if the menu is heading there first. Read the Thuisbezorgd photo specs before you commit to a style, because the platform crops a square from the centre of every landscape image.

Restaurant. Warm ambient light, wooden surface, soft blur on the back third. Right for hot mains and stews where the white-background style flattens the dish.

Cafe and Coffee. Natural daylight on a marble or light wood surface. Right for breakfast plates, pastries, and anything photographed at 45 degrees.

Fine Dining. Dramatic dark background, low key lighting, editorial framing. Use this only if the menu reads that way. A burger menu in fine-dining style looks confused.

Credits are one per dish at 2K resolution and two per dish at 4K. For 30 dishes at 2K that is 30 credits. The queue runs from a single click. We recommend leaving the tab open in the background, not minimising the laptop, because some browsers throttle inactive tabs and slow the queue.

Menu Scanner step 5: export per platform in 5 minutes

Once the queue finishes, every dish has a generated image stored on our CDN at cdn.foodpic.ai. The export panel resizes and crops a single source into the formats each platform asks for: 800 by 600 for Thuisbezorgd, 1920 by 1080 for Uber Eats, 1200 by 800 for Deliveroo, 1080 by 1080 for Instagram. Pick the platforms you publish to, hit export, and a ZIP downloads with the right filename per dish.

Filename matters more than people think. We default to the dish name as printed on the menu, sanitised for filesystem safety, so "Pasta Carbonara.jpg" not "IMG_4729.jpg". Platform CMSes that auto-suggest a dish name from the filename pick up the right text.

Five minutes is the export budget for a 30-dish menu across two platforms. The bottleneck is not the resize, which runs server-side in seconds. It is selecting which platforms you want and clicking through the download.

Menu Scanner total time and cost for a 30-dish menu

Adding it up: 3 minutes to photograph, 1 minute for OCR, 10 minutes to review, 35 minutes for the generation queue, 5 minutes for export. That is 54 minutes of clock time, of which around 38 minutes is the user touching the interface and 16 minutes is the queue running unattended.

Credit cost for a 30-dish menu at 2K resolution and one variation per dish: 30 credits. On the Pro plan that is included in the monthly allotment. On the Starter plan a 30-dish run uses roughly a third of the monthly credits, and a credit pack covers the gap if it is the second restaurant of the month. Compare that to commissioning a studio shoot for the same dish count, which sits at 1,500 to 4,000 euros at a typical Dutch food photographer's rate, plus two to four weeks of scheduling.

The Menu Scanner is not the right answer for every restaurant. Fine dining where each plate is a one-off composition, or hero photography for a website that competes on craft, those still belong in a studio. The Menu Scanner is the right answer for the volume problem: 25 to 80 dishes that need to ship to a delivery platform this week, photographed consistently, and revisable when the menu changes next quarter.

Run a paper menu through the Menu Scanner

Take a flat photo of the menu, upload it to the Menu Scanner, and a delivery-ready image set lands in your account inside an hour. New accounts on the Food Photo Generator start with credits to run a small menu end to end. Sign up and try it on the menu you have on the bar.

Try FoodPic.ai free

3 free credits, no card required.

Start free

Keep reading