Recipe from a photo: how dish identification becomes a method you can cook

Published: 2026-08-25 · Updated: 2026-08-25 · 8 min read

You saw the plate. You did not get the recipe. Restaurant kitchens rarely share gram weights, and a social post rarely names the fond or the rest. Cook EZ treats the photo as evidence: identify the dish, confirm the name with you, then generate a home method against your Taste Profile. This page is the identification half of that loop, plus the kitchen checks that keep a pretty photo from becoming an uncookable card.

Fill the frame with the food, then shoot

Hold the phone so the plate, bowl, or ingredient pile occupies most of the frame. Overhead works for composed plates. A 45-degree angle works for height (a burger, a stack of pancakes, a bowl of ramen). Dim restaurant lighting is usable if the dish is in focus. A flash that turns sauce into a white sheet is worse than a slightly noisy image. The model receives a downscaled view for identification. It does not need a 12-megapixel hero shot. It needs the garnish, the starch, and the protein visible as separate regions.

A menu photo is a different job. Shoot the line item, not the whole laminated page. If the type is bilingual, include both lines. Identification from a menu is OCR plus dish knowledge. Identification from a plated dish is visual classification. Mixing them (a photo of a table with a menu in the corner) makes the model guess which object you meant. Crop before you upload if the library image includes a wine glass, a stranger's arm, and three plates.

Fridge-shelf and pantry photos work when you want "what can I cook with these ingredients" rather than a named dish. That path is covered in a sibling guide. For a recipe-from-a-photo request, the expected output is one dish name. If the shelf shows milk, eggs, and leftover rice, say so in a caption or switch to the pantry flow. Otherwise the identifier may pick a single object (the kimchi jar) and ignore the rest.

Identification is a draft title. Confirm it.

The first model pass returns a dish name, a short description, and sometimes a cuisine tag. "Mapo tofu," "chicken katsu curry," "chopped salad with tahini." That string is the generate prompt. If it is wrong, you will get a fluent recipe for the wrong food. Tap to edit. "Looks like dan dan but it was sesame noodles" is a useful correction. "Idk food" is not. The confirm screen exists because a 92 percent classifier still confuses katsu and schnitzel, biryani and pilaf, shakshuka and menemen.

Regional names help. "Tacos al pastor" is better than "pork tacos." "Khao soi" is better than "coconut noodle soup." If you know the restaurant's cuisine, add it in the optional note. The generator uses that note as a constraint, the same way it uses your allergy list. A note that says "no peanuts, street-style, weeknight" will change garnish, sauce, and time even if the photo looks like a 3-hour braise.

Share-intent photos (an image sent from another app) land in the same confirm step. The stash is local until you choose identify or generate. If you abandon the flow, nothing is uploaded. If you proceed, the image is stored as a food photo with a source tag (camera, library, or share). That tag is for your history, not for a public feed.

From a name to a home method

A restaurant birria may have started as a 6-hour consommé. Your Taste Profile may say 45 minutes and a 12-inch skillet. The honest generate is a shortcut: pressure-cooker consommé, or a concentrated stock plus a hard sear, or a "use rotisserie and a quick consume" path if you marked beginner skill. The card should say which shortcut it took. A recipe that pretends a 20-minute skillet is a fiesta-weekend birria will taste like taco meat in watery broth. Naming the shortcut is craft. Hiding it is a bait title.

Equipment from the photo is inferred poorly. A clay cazuela in the image does not mean you own one. Taste Profile equipment wins. If you listed a Dutch oven, the braise can live there. If you listed only a sheet pan and a skillet, the method should stay in those two vessels. Oven temperature on the card should match a real home oven, not a pizza deck. Use the oven-temperature converter on this site if a recipe you photographed used a European gas mark and you think in Fahrenheit.

Allergies rewrite the method, the garnish, and the sauce. A photo of pad thai with crushed peanuts cannot become "pad thai" for a peanut-allergic cook unless the peanut is fully removed and the tamarind-fish-sauce-lime balance is restated. The generate should retitle if the dish is no longer the thing in the photo. "Pad thai-style rice noodles, no peanuts" is honest. Serving the photo as a promise of the restaurant plate is not.

Cook Mode after a photo generate

The card you cook from is the generated method, not the photograph. Keep the photo on the recipe for memory and for the Cook Journal when you plate your version. Cook Mode still runs timers, keep-awake, serving scaler, and unit toggle. Scale before you shop. A photo of a two-person restaurant entrée generated at your default of four servings will look sparse on the plate if you forget to scale the garnish and the sauce. Sauce is the usual miss. Double the noodles and leave the nam jim at two-person volume, and the dish tastes dry.

Doneness cues should be physical. Poultry to 165 °F in the thickest part, as USDA Keep Food Safe and FSIS poultry guidance require. Fish to 145 °F or until the flesh turns opaque and flakes. A photo of a restaurant medium-rare steak does not license you to ignore carryover cooking on a thick home cut. Pull, rest, then slice. If you are cooking for someone who needs the FSIS leftover reheat of 165 °F the next day, plan the first-night doneness so the leftover is not leather.

Log the plate from the finished photo if you want diary numbers. Recipe nutrition on the card is a FoodData Central estimate for the generated ingredients, not a lab test of the restaurant original. The restaurant used a different oil weight. Your home version used the grams on the card. Log the home version.

Recipe photo versus calorie-plate photo

Two camera paths exist in Cook EZ. Recipe-from-a-photo asks "what is this and how do I make it?" Food-photo calorie counting asks "what is on this plate and how do I log it?" Use the recipe path when you want steps. Use the calorie path when the food is already cooked and you need macros. Running recipe generate on tonight's leftover lasagna wastes a credit you could have spent on tomorrow's dinner. Running calorie analysis on a menu photo of a dish you have not cooked yet gives you a log entry for food you did not eat.

You can do both, in order. Identify and generate on Monday from a restaurant photo. Cook on Tuesday. Photograph Tuesday's plate into the diary. The second photo is a log, with portion sliders. The first photo is a project. Keep them straight in your history so you do not "eat" the restaurant photo in the diary by accident.

Barcode remains the right tool for packaged food. A photo of a granola bar is a worse log than the GTIN on the wrapper. Open Food Facts and the on-device cache exist for that scan. The FDA Nutrition Facts label on the wrapper is still the serving-size authority if the database serving differs from the box in your hand.

Allergens the camera cannot see

A glossy brown sauce can be soy, Worcestershire, oyster, hoisin, molasses, or a wheat-thickened gravy. The identifier may say "beef and broccoli." The generate may write "2 tbsp soy sauce." If wheat is in your allergy list, that line is a decision, not a done deal. Choose a labeled gluten-free tamari, or skip the recipe. The model does not taste the sauce. It does not read the restaurant's prep list. Hidden wheat in sauces is the warning we repeat because it is the miss that sends people to the ER.

Dairy in "creamy" is the same class of problem. Coconut milk, cashew cream, heavy cream, yogurt, and silken tofu all photograph as pale and opaque. Confirm in the generate preview. If you listed milk as an allergy, the card must not include butter, ghee, cream, or yogurt under a different name. If it does, do not cook it. Report the card. Regenerate with an explicit "no dairy, no ghee."

Cross-contact in the restaurant photo is not modeled. Shared fryers, shared cutting boards, and garnish bins are invisible. A "recipe from a photo" is a home recreation. It is not a certified duplicate of the restaurant allergen profile. If you have a diagnosed allergy, cook from labeled ingredients in your kitchen. Do not treat a successful recreate as proof that the restaurant plate was safe.

Lighting, steam, and the limits of a phone camera

Steam washes out edges. Wipe the lens. Wait one second after the lid comes off. A ramen photo full of vapor will be classified as "soup" with low confidence. That is a photography problem, not a model personality. If confidence is low, the app should say so. Add a text note: "tonkotsu, chashu, ajitama, bamboo." Those four words will save the generate.

Very dark cuisines (black garlic, squid ink, burnt-ends bark) need a note because color is a weak signal. Very white cuisines (congee, unsweetened yogurt bowls, steamed fish with ginger) need a note because the camera sees porridge. You already know what you ate. Type it. Use the photo for plating memory and for the journal, not as the only input.

If you are photographing someone else's plate to cook later, do it with consent and without including faces. The upload is your account's food photo. It is not a social network. Identification does not require a geotag. Leave location off.

Photograph the plate with the protein and starch both in frame, confirm the name, then generate for the minutes you have tonight. Set Cook Mode to the first timer while the pan is still cold. You want the fond, not a grey steam-stew.

Questions

Can I photograph a menu instead of a plated dish?

Yes. Crop to the line item. Confirm the dish name before you generate. A full-page menu photo is a poor identifier.

Does the generated recipe match the restaurant exactly?

No. It is a home method constrained by your time, equipment, and allergies. The card should name any shortcut (pressure cooker, rotisserie, concentrated stock).

What if the dish name is wrong?

Edit it on the confirm screen before you generate. Generation from a wrong title spends a credit on a recipe you will not cook.

Is a recipe photo the same as logging calories from a photo?

No. Recipe-from-a-photo produces steps. The calorie-plate path produces a diary entry. Use each for its job.

Sources

Cook it in Cook EZ

Photograph the dish or type the name. The app writes the recipe for your allergies, equipment, and time, then logs the plate if you want the calories.