AI Food Photography Generator
Generate professional, appetizing food photography for menus, blogs, and marketing 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 professional food photograph of a perfectly seared salmon fillet on a bed of wild rice with roasted asparagus and a drizzle of lemon butter sauce, ceramic plate on a dark slate surface, soft side lighting with gentle shadows, shallow depth of field, restaurant-quality plating, editorial food photography"
}
],
"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 professional food photograph of a perfectly seared salmon fillet on a bed of wild rice with roasted asparagus and a drizzle of lemon butter sauce, ceramic plate on a dark slate surface, soft side lighting with gentle shadows, shallow depth of field, restaurant-quality plating, editorial food photography"
}]
)
print(response.choices[0].message.content)
With Reference Image
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": [
{"type": "text", "text": "Create a professional food photograph in the same style and lighting as this reference: match the color temperature, depth of field, and surface texture, but feature a different dish — a bowl of ramen with a soft-boiled egg, nori, and green onions"},
{"type": "image_url", "image_url": {"url": "https://example.com/food-style-reference.jpg"}}
]
}
],
"stream": false
}'
Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.
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 Food Photography
- Describe the plating — arrangement, garnishes, sauces, and plate style.
- Specify the angle — "overhead flat lay," "45-degree angle," "eye level," or "close-up macro."
- Include the surface — marble, wood, slate, linen, rustic table.
- Define the lighting — "soft natural window light," "moody side lighting," "bright and airy."
- Add props — utensils, napkins, herbs, ingredients, glasses for a styled scene.
- Mention texture — "crispy crust," "glistening glaze," "steam rising" for appetite appeal.
Examples
Overhead Flat Lay
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": "An overhead flat lay food photograph of a full breakfast spread: avocado toast with poached eggs, a bowl of fresh berries, a cup of latte with art, fresh orange juice, and a croissant, all arranged on a white marble surface with linen napkins and small potted herbs, bright natural morning light, food blog aesthetic"
}
],
"stream": false
}'
Dessert Close-Up
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 dramatic close-up food photograph of a chocolate lava cake being cut open, molten chocolate flowing out onto the white plate, a dusting of powdered sugar, a single mint leaf, dark moody background with a single warm spotlight, macro detail showing the cake texture, fine dining dessert photography"
}
],
"stream": false
}'
Beverage Photography
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 professional beverage photograph of a craft cocktail: a copper Moscow mule mug with condensation droplets, fresh lime wedge and mint sprig garnish, crushed ice visible at the top, dark bar counter background with warm ambient bokeh lights, commercial beverage photography"
}
],
"stream": false
}'
Workflow: Food Photography Production
- Plan the dish and composition — Choose the dish, angle, and styling approach.
- Generate the hero shot — Create the primary food image.
- Create angle variants — Overhead, 45-degree, and close-up for different placements.
- Add lifestyle context — Generate dining scene versions with hands, settings, and ambiance.
- Batch for the menu — Generate matching-style images for all menu items.
Related Skills
Related Models
Documentation
1---2name: ai-food-photography3description: Generate professional food photography using each::sense AI. Create appetizing, restaurant-quality images of dishes, ingredients, beverages, and culinary scenes. Supports overhead flat lays, 45-degree angles, close-up macro shots, and lifestyle dining scenes. Use for: food photography, restaurant menus, food blogs, cookbook visuals, food marketing. Triggers: food photography, food photo, dish photo, restaurant photography, culinary photo, food styling, food shot, meal photo, plate photo, food image4---56# AI Food Photography Generator78Generate professional, appetizing food photography for menus, blogs, and marketing 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 professional food photograph of a perfectly seared salmon fillet on a bed of wild rice with roasted asparagus and a drizzle of lemon butter sauce, ceramic plate on a dark slate surface, soft side lighting with gentle shadows, shallow depth of field, restaurant-quality plating, editorial food photography"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 professional food photograph of a perfectly seared salmon fillet on a bed of wild rice with roasted asparagus and a drizzle of lemon butter sauce, ceramic plate on a dark slate surface, soft side lighting with gentle shadows, shallow depth of field, restaurant-quality plating, editorial food photography"46 }]47)4849print(response.choices[0].message.content)50```5152### With Reference Image5354```bash55curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \56 -H "Content-Type: application/json" \57 -H "X-API-Key: $EACHLABS_API_KEY" \58 -d '{59 "messages": [60 {61 "role": "user",62 "content": [63 {"type": "text", "text": "Create a professional food photograph in the same style and lighting as this reference: match the color temperature, depth of field, and surface texture, but feature a different dish — a bowl of ramen with a soft-boiled egg, nori, and green onions"},64 {"type": "image_url", "image_url": {"url": "https://example.com/food-style-reference.jpg"}}65 ]66 }67 ],68 "stream": false69 }'70```7172> Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.7374### Streaming7576Set `"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.7778## Tips for Food Photography7980- **Describe the plating** — arrangement, garnishes, sauces, and plate style.81- **Specify the angle** — "overhead flat lay," "45-degree angle," "eye level," or "close-up macro."82- **Include the surface** — marble, wood, slate, linen, rustic table.83- **Define the lighting** — "soft natural window light," "moody side lighting," "bright and airy."84- **Add props** — utensils, napkins, herbs, ingredients, glasses for a styled scene.85- **Mention texture** — "crispy crust," "glistening glaze," "steam rising" for appetite appeal.8687## Examples8889### Overhead Flat Lay9091```bash92curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \93 -H "Content-Type: application/json" \94 -H "X-API-Key: $EACHLABS_API_KEY" \95 -d '{96 "messages": [97 {98 "role": "user",99 "content": "An overhead flat lay food photograph of a full breakfast spread: avocado toast with poached eggs, a bowl of fresh berries, a cup of latte with art, fresh orange juice, and a croissant, all arranged on a white marble surface with linen napkins and small potted herbs, bright natural morning light, food blog aesthetic"100 }101 ],102 "stream": false103 }'104```105106### Dessert Close-Up107108```bash109curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \110 -H "Content-Type: application/json" \111 -H "X-API-Key: $EACHLABS_API_KEY" \112 -d '{113 "messages": [114 {115 "role": "user",116 "content": "A dramatic close-up food photograph of a chocolate lava cake being cut open, molten chocolate flowing out onto the white plate, a dusting of powdered sugar, a single mint leaf, dark moody background with a single warm spotlight, macro detail showing the cake texture, fine dining dessert photography"117 }118 ],119 "stream": false120 }'121```122123### Beverage Photography124125```bash126curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \127 -H "Content-Type: application/json" \128 -H "X-API-Key: $EACHLABS_API_KEY" \129 -d '{130 "messages": [131 {132 "role": "user",133 "content": "A professional beverage photograph of a craft cocktail: a copper Moscow mule mug with condensation droplets, fresh lime wedge and mint sprig garnish, crushed ice visible at the top, dark bar counter background with warm ambient bokeh lights, commercial beverage photography"134 }135 ],136 "stream": false137 }'138```139140## Workflow: Food Photography Production1411421. **Plan the dish and composition** — Choose the dish, angle, and styling approach.1432. **Generate the hero shot** — Create the primary food image.1443. **Create angle variants** — Overhead, 45-degree, and close-up for different placements.1454. **Add lifestyle context** — Generate dining scene versions with hands, settings, and ambiance.1465. **Batch for the menu** — Generate matching-style images for all menu items.147148## Related Skills149150- [AI Recipe Visualization](../ai-recipe-visualization/SKILL.md) — Visualize recipes and cooking steps151- [AI Menu Visualization](../ai-menu-visualization/SKILL.md) — Menu item imagery for restaurants152- [AI Stock Photo](../../photography/ai-stock-photo/SKILL.md) — General stock photography153- [Text to Image](../../image/text-to-image/SKILL.md) — General image generation154155## Related Models156157- [flux-2-max](../../../models/flux-2-max/SKILL.md) — Photorealistic food detail158- [seedream-v4-5](../../../models/seedream-v4-5/SKILL.md) — Appetizing visual styles159- [nano-banana-pro](../../../models/nano-banana-pro/SKILL.md) — Quick concept shots160161## Documentation162163- [each::sense Overview](https://docs.eachlabs.ai/sense/overview)164- [each::labs API](https://docs.eachlabs.ai)