AI Menu Visualization
Generate consistent, appetizing menu item imagery for restaurants and food services using each::sense — the intelligent AI agent that automatically selects the best model for your request.
Quick Start
Requires an each::labs API key. Get one at eachlabs.ai.
Using curl
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": "A menu item photograph of a classic margherita pizza: thin crispy crust, fresh mozzarella, San Marzano tomato sauce, and basil leaves, slightly charred edges from a wood-fired oven, served on a round wooden board, 45-degree angle, warm ambient restaurant lighting, appetizing and inviting, consistent clean background"
}
],
"stream": false
}'
Using Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="YOUR_EACHLABS_API_KEY",
base_url="https://eachsense-agent.core.eachlabs.run/v1"
)
response = client.chat.completions.create(
model="eachsense/beta",
messages=[{
"role": "user",
"content": "A menu item photograph of a classic margherita pizza: thin crispy crust, fresh mozzarella, San Marzano tomato sauce, and basil leaves, slightly charred edges from a wood-fired oven, served on a round wooden board, 45-degree angle, warm ambient restaurant lighting, appetizing and inviting, consistent clean background"
}]
)
print(response.choices[0].message.content)
Streaming
Set "stream": true for real-time SSE responses, or "stream": false for complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.
Tips for Menu Visualization
- Use consistent style keywords across all menu items — same surface, lighting, angle, and background.
- Specify the plating and dishware — match the restaurant's actual service style.
- Include portion context — describe the plate size and garnish for realistic proportions.
- Match the cuisine aesthetic — rustic for Italian, clean for Japanese, vibrant for Mexican.
- Optimize for digital — mention "delivery app photo" or "digital menu" for clean, well-lit images.
Examples
Appetizer Section
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": "A menu item photograph of bruschetta: three pieces of toasted ciabatta topped with diced tomatoes, fresh basil, and a balsamic glaze drizzle, arranged on a small white rectangular plate, dark slate surface, soft overhead lighting, clean menu photography style, delivery app ready"
}
],
"stream": false
}'
Main Course
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": "A menu item photograph of a grilled ribeye steak: medium-rare with visible grill marks, served with a side of creamy mashed potatoes and grilled broccolini, a small ramekin of peppercorn sauce, on a large white plate, dark wooden table, warm side lighting, premium steakhouse menu photography"
}
],
"stream": false
}'
Batch Menu Generation
# Generate a consistent set of menu item photos
ITEMS=(
"Menu photo: chicken caesar salad with grilled chicken strips, romaine lettuce, croutons, parmesan shavings, and caesar dressing, white bowl, dark slate surface, soft overhead lighting, clean menu style"
"Menu photo: fish and chips with crispy beer-battered cod, thick-cut fries, mushy peas, and tartar sauce, served in a paper-lined wire basket, dark slate surface, soft overhead lighting, clean menu style"
"Menu photo: a towering gourmet cheeseburger with double patty, cheddar, lettuce, tomato, pickles, and special sauce, brioche bun, side of fries, dark slate surface, soft overhead lighting, clean menu style"
)
for ITEM in "${ITEMS[@]}"; do
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d "{
\"messages\": [{\"role\": \"user\", \"content\": \"$ITEM\"}],
\"stream\": false
}"
echo "---"
done
Workflow: Full Menu Photography
- Define the visual style — Choose surface, lighting, angle, and plate style for consistency.
- Generate appetizers — Create images for all starter items.
- Generate mains — Produce hero images for main courses.
- Generate desserts and drinks — Complete the menu coverage.
- Review for consistency — Ensure all images share the same visual language.
- Export for platforms — Prepare images for print menu, website, and delivery apps.
Related Skills
Related Models
Documentation
1---2name: ai-menu-visualization3description: Generate menu item imagery for restaurants using each::sense AI. Create consistent, appetizing photographs of dishes for digital menus, printed menus, delivery apps, and restaurant websites. Produce cohesive visual sets that match a restaurant's brand aesthetic. Use for: menu photography, restaurant menus, food delivery images, digital menu visuals, dish photography. Triggers: menu visualization, menu photo, restaurant menu, food menu, dish image, menu item, digital menu, delivery app photo, restaurant imagery, menu design4---56# AI Menu Visualization78Generate consistent, appetizing menu item imagery for restaurants and food services using [each::sense](https://docs.eachlabs.ai/sense/overview) — the intelligent AI agent that automatically selects the best model for your request.910## Quick Start1112> Requires an each::labs API key. Get one at [eachlabs.ai](https://eachlabs.ai).1314### Using curl1516```bash17curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \18 -H "Content-Type: application/json" \19 -H "X-API-Key: $EACHLABS_API_KEY" \20 -d '{21 "messages": [22 {23 "role": "user",24 "content": "A menu item photograph of a classic margherita pizza: thin crispy crust, fresh mozzarella, San Marzano tomato sauce, and basil leaves, slightly charred edges from a wood-fired oven, served on a round wooden board, 45-degree angle, warm ambient restaurant lighting, appetizing and inviting, consistent clean background"25 }26 ],27 "stream": false28 }'29```3031### Using Python (OpenAI SDK)3233```python34from openai import OpenAI3536client = OpenAI(37 api_key="YOUR_EACHLABS_API_KEY",38 base_url="https://eachsense-agent.core.eachlabs.run/v1"39)4041response = client.chat.completions.create(42 model="eachsense/beta",43 messages=[{44 "role": "user",45 "content": "A menu item photograph of a classic margherita pizza: thin crispy crust, fresh mozzarella, San Marzano tomato sauce, and basil leaves, slightly charred edges from a wood-fired oven, served on a round wooden board, 45-degree angle, warm ambient restaurant lighting, appetizing and inviting, consistent clean background"46 }]47)4849print(response.choices[0].message.content)50```5152### Streaming5354Set `"stream": true` for real-time SSE responses, or `"stream": false` for complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.5556## Tips for Menu Visualization5758- **Use consistent style keywords** across all menu items — same surface, lighting, angle, and background.59- **Specify the plating and dishware** — match the restaurant's actual service style.60- **Include portion context** — describe the plate size and garnish for realistic proportions.61- **Match the cuisine aesthetic** — rustic for Italian, clean for Japanese, vibrant for Mexican.62- **Optimize for digital** — mention "delivery app photo" or "digital menu" for clean, well-lit images.6364## Examples6566### Appetizer Section6768```bash69curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \70 -H "Content-Type: application/json" \71 -H "X-API-Key: $EACHLABS_API_KEY" \72 -d '{73 "messages": [74 {75 "role": "user",76 "content": "A menu item photograph of bruschetta: three pieces of toasted ciabatta topped with diced tomatoes, fresh basil, and a balsamic glaze drizzle, arranged on a small white rectangular plate, dark slate surface, soft overhead lighting, clean menu photography style, delivery app ready"77 }78 ],79 "stream": false80 }'81```8283### Main Course8485```bash86curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \87 -H "Content-Type: application/json" \88 -H "X-API-Key: $EACHLABS_API_KEY" \89 -d '{90 "messages": [91 {92 "role": "user",93 "content": "A menu item photograph of a grilled ribeye steak: medium-rare with visible grill marks, served with a side of creamy mashed potatoes and grilled broccolini, a small ramekin of peppercorn sauce, on a large white plate, dark wooden table, warm side lighting, premium steakhouse menu photography"94 }95 ],96 "stream": false97 }'98```99100### Batch Menu Generation101102```bash103# Generate a consistent set of menu item photos104ITEMS=(105 "Menu photo: chicken caesar salad with grilled chicken strips, romaine lettuce, croutons, parmesan shavings, and caesar dressing, white bowl, dark slate surface, soft overhead lighting, clean menu style"106 "Menu photo: fish and chips with crispy beer-battered cod, thick-cut fries, mushy peas, and tartar sauce, served in a paper-lined wire basket, dark slate surface, soft overhead lighting, clean menu style"107 "Menu photo: a towering gourmet cheeseburger with double patty, cheddar, lettuce, tomato, pickles, and special sauce, brioche bun, side of fries, dark slate surface, soft overhead lighting, clean menu style"108)109110for ITEM in "${ITEMS[@]}"; do111 curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \112 -H "Content-Type: application/json" \113 -H "X-API-Key: $EACHLABS_API_KEY" \114 -d "{115 \"messages\": [{\"role\": \"user\", \"content\": \"$ITEM\"}],116 \"stream\": false117 }"118 echo "---"119done120```121122## Workflow: Full Menu Photography1231241. **Define the visual style** — Choose surface, lighting, angle, and plate style for consistency.1252. **Generate appetizers** — Create images for all starter items.1263. **Generate mains** — Produce hero images for main courses.1274. **Generate desserts and drinks** — Complete the menu coverage.1285. **Review for consistency** — Ensure all images share the same visual language.1296. **Export for platforms** — Prepare images for print menu, website, and delivery apps.130131## Related Skills132133- [AI Food Photography](../ai-food-photography/SKILL.md) — Professional food photography134- [AI Recipe Visualization](../ai-recipe-visualization/SKILL.md) — Recipe process visuals135- [Social Media Batch](../../workflows/social-media-batch/SKILL.md) — Social media food content136- [Text to Image](../../image/text-to-image/SKILL.md) — General image generation137138## Related Models139140- [flux-2-max](../../../models/flux-2-max/SKILL.md) — Photorealistic food imagery141- [seedream-v4-5](../../../models/seedream-v4-5/SKILL.md) — Appetizing visual quality142- [nano-banana-pro](../../../models/nano-banana-pro/SKILL.md) — Rapid menu item generation143144## Documentation145146- [each::sense Overview](https://docs.eachlabs.ai/sense/overview)147- [each::labs API](https://docs.eachlabs.ai)