--- name: food-photo-upgrade description: Turn a phone photo of a dish into a restaurant menu-grade shot. The plating is cleaned, the light is appetising and the background is replaced, while the dish stays recognisably the same. metadata: type: image version: 1.0.0 category: Food & drink tagline: Use this Skill to turn a phone food photo into a menu-ready shot. made-for: Restaurants, Cafes, Food creators, Delivery sellers generates-with: PNG photo, landscape, portrait or square requires: Node.js 18 or newer, to run scripts/build-input.mjs; an image-edit model (the fal model named below with your own FAL_KEY, or any GPT-Image-class editor) outside-costs: The image-edit model charges per image, about $0.09 at the default settings (about $0.15 with the nano-banana-pro alternative). updated: 2026-10-16 title: Food photo upgrade availability: live summary: Turn a phone photo of a dish into a menu-grade shot while keeping the dish the same. command: /food-photo-upgrade my burger photo, dark moody style output: PNG ยท menu-ready photo required-input: Phone photo of a dish creator: meleon --- # Food photo upgrade Use this skill when someone has a phone photo of a real dish and wants a restaurant or menu-grade version of it. The dish stays the same; the light, the plate and the surroundings improve. ## What you need - One photo of the dish, as a public https URL or image data. The whole dish in frame. - A one-line description of the dish, with the plate and the camera angle of the photo ("side-on cheeseburger with fries on a round white plate"). State the angle: the model keeps it. - A style: `dark-moody` (default), `menu-white` or `bright-cafe`. Suggest one from `references/food-guide.md`. - Anything extra that must not change, optional. If the photo is missing, ask for it. Do not invent a dish. ## What you make One photo of the same dish, cleaned up and relit, same orientation as the input. No text or logos added. ## How to run it 1. Read `references/food-guide.md`. Pick the style and keep the input's angle. 2. Run `node scripts/build-input.mjs --image --dish "" [--style dark-moody] [--orientation landscape] [--keep "..."]`; choose the orientation that matches the input photo. It prints the request JSON. 3. Send the printed `input` as a POST to fal model `openai/gpt-image-2/edit` using your own FAL_KEY (the Skill never stores keys), or paste the `prompt` and the photo into any GPT-Image-class editor. The alternative is `fal-ai/nano-banana-pro/edit` (`image_urls`, `prompt`, `aspect_ratio`, `resolution: "1K"`), about $0.15 per image, twice the default. If you hosted the photo at a public URL, delete it afterwards. 4. View the result beside the input and check it against `references/output-spec.md`: same ingredients, same amounts, same plate, nothing added. 5. Fail path: at most 3 attempts. Change one thing per attempt and say what (dish description, style, or model; the alternative costs about twice as much). View each output beside the input. Return the best one and say what still differs. 6. Return the photo, the style used, and the prompt. ## Files - `references/food-guide.md`: styles, angles by dish, cuisines, what to clean and keep, failure modes. - `references/output-spec.md`: sizes and the pass/fail checklist. - `assets/prompt-template.md`: the prompt to fill in. - `assets/generation-input.json`: model, sizes and styles; the defaults that produced the preview. - `scripts/build-input.mjs`: prints the image-edit request; calls no API.