mcpField
F
Food Photography Generation

Food Photography Generation

github.com/eachlabsクリエイティブ・メディア44241 回インストール今日更新
リポジトリ

Food Photography Generation について

テキストプロンプトから each::sense API で料理写真を生成する方法を扱うスキルです。メニュー、ブログ、デリバリー掲載、SNS向けに、撮影スタイルやプロンプト、生成モード、セッションによる統一方法を説明します。

主な機能

  1. 01プロンプトから料理画像を生成
  2. 02俯瞰からアクションまでの撮影スタイル
  3. 03照明と構図のガイド
  4. 04max・eco 生成モード
  5. 05セッションでメニューのスタイルを維持

活用シーン

  1. 01レストランメニュー画像の作成
  2. 02デリバリー掲載用サムネイルの準備
  3. 03レシピブログ記事への画像追加
  4. 04料理関連のSNSコンテンツ制作

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/eachlabs/skills --skill food-photography-generation

インストール後、Claude Code で/food-photography-generationを入力して読み込まれたか確認します。

同梱ファイルreferences/SSE-EVENTS.md

詳細

食べ物の写真生成

each::sense API を使用して、魅力的で食欲をそそる料理写真を生成します。レストランのメニュー、フードデリバリープラットフォーム、レシピブログ、SNS の料理コンテンツ向けに、プロ品質の画像を作成できます。

概要

each::sense API を使うと、AI を活用した料理写真を生成できます。

  • レストランのメニュー:印刷用・デジタル用メニューに適した高品質な料理の写真
  • フードデリバリーアプリ:注文につながる、食欲をそそるサムネイル
  • レシピブログ:メイン画像や手順を追ったビジュアル
  • SNS コンテンツ:見る人の心をつかむ、Instagram にぴったりの料理写真

クイックスタート

curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Generate a professional food photo of a gourmet burger with melted cheese, fresh lettuce, and crispy bacon on a rustic wooden board, warm lighting, shallow depth of field"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

料理写真のスタイル

スタイル説明最適な用途
真上からのフラットレイ真上からの90度のアングルピザ、サラダ、盛り合わせ、食材のレイアウト
45度アングル定番の斜めからの視点盛り付けた料理、ボウル料理、層状の料理
ヒーローショット目線の高さからドラマチックに見せる構図看板メニュー、メニューの表紙
アクションショット動き(注ぐ、切る、立ち上る湯気)を捉える構図動きのあるSNSコンテンツ
食材の盛り合わせ生の食材を芸術的に配置レシピブログ、料理チュートリアル

ユースケースの例

レストランのメニュー項目
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Professional restaurant menu photo of grilled salmon fillet with lemon butter sauce, asparagus, and roasted potatoes on a white ceramic plate, elegant fine dining presentation, soft natural lighting, clean background"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
フードデリバリーアプリの掲載画像
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Appetizing food delivery app photo of a loaded pepperoni pizza with stretchy melted mozzarella cheese, fresh basil leaves, in a pizza box, overhead angle, bright even lighting, looks delicious and ready to order"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
レシピブログのメイン画像
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Beautiful recipe blog hero image of homemade chocolate chip cookies, stack of warm cookies with melted chocolate chips visible, cookie crumbs scattered on marble surface, rustic kitchen background, cozy warm tones, food photography style"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
コーヒーと飲み物の写真
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Professional coffee shop photo of a latte with intricate leaf latte art in a ceramic cup on a wooden saucer, steam rising gently, coffee beans scattered nearby, morning light from window, cafe atmosphere"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
デザートの写真
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Elegant dessert photography of a layered tiramisu in a glass, visible coffee-soaked ladyfinger layers and mascarpone cream, dusted with cocoa powder, silver spoon beside it, dark moody background, dramatic lighting"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
動きを捉えたアクションショット
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Dynamic food action shot of maple syrup being poured over a stack of fluffy pancakes with fresh blueberries, syrup caught mid-pour creating a golden stream, steam rising, breakfast table setting, warm morning light"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
食材のフラットレイ
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Overhead flat lay food photography of Italian pasta recipe ingredients: fresh tomatoes, basil leaves, garlic cloves, olive oil in a glass bottle, parmesan wedge, dried pasta, arranged artfully on a dark slate surface, natural lighting"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
テーブルセッティングと料理の盛り合わせ
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Beautiful brunch table spread photography featuring avocado toast, fresh fruit bowl, croissants, orange juice glasses, and a French press coffee, rustic wooden table with linen napkins, overhead angle, bright natural daylight, lifestyle food photography"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
ファストフード商品の写真
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Commercial fast food photography of crispy fried chicken bucket meal with golden brown pieces, seasoned fries in a red container, coleslaw cup, on a branded tray, clean studio lighting, appetizing and crave-worthy presentation"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'
健康的なミールプレップ
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Clean healthy meal prep photography showing glass containers with grilled chicken breast, quinoa, roasted vegetables including broccoli and sweet potato, colorful and nutritious, organized kitchen counter, bright lighting, fitness lifestyle aesthetic"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }'

料理写真のベストプラクティス

料理をおいしそうに見せる
  • 湯気と熱:できたて感を伝えるため、温かい料理には目に見える湯気を加えます
  • 水分とツヤ:魅力を高めるため、光沢のあるソース、とろけたチーズ、またはオイルの照りを加えます
  • 色のコントラスト:色鮮やかな食材を組み合わせ、視覚的な変化をつけます
  • 質感の詳細:カリカリ、クリーミー、またはザクザクとした質感を際立たせます
スタイリングと小道具
  • 飾り付け:フレッシュハーブ、柑橘類の皮、食用花で仕上げのアクセントを加えます
  • 背景:木材、大理石、スレートなど、料理に合う素材を使います
  • カトラリー類:状況を伝えるため、カトラリー、ナプキン、またはサービングボードを加えます
  • 余白:マーケティングでテキストを重ねる場合は、そのためのスペースを確保します
照明のガイドライン
  • 自然光:柔らかな昼光で、温かみのある親しみやすい画像になります
  • サイドライティング:質感を強調し、奥行きを生み出します
  • 強い影を避ける:均一な露出にするため、拡散光を使います
  • 暖色系:料理をよりおいしそうに見せます

プロンプトのヒント

効果的な料理写真のプロンプトには、次の内容を含めます。

  1. 料理の説明:具体的な料理名と主な食材
  2. 盛り付けのスタイル:皿への盛り付け、飾り付け、配置
  3. カメラアングル:真上、45度、目線の高さ、またはクローズアップ
  4. 照明:自然光、スタジオ照明、暖色系、ドラマチック、またはソフト
  5. 小道具と撮影面:皿、カトラリー、背景の素材
  6. 雰囲気:居心地のよい、エレガント、素朴、モダン、または商業的

プロンプトの構成例:

"[Photography style] of [dish name] with [key ingredients/toppings],
[presentation details], [surface/background], [lighting description],
[mood/aesthetic]"

モードの選択

モード説明最適な用途
max最高品質で、詳細にレンダリングメニューの表紙、メイン画像、印刷物
eco生成が速く、品質も良好SNS の投稿、素早い試行、テスト

メニューの一貫性を保つための複数ターンのセッション

session_id を使うと、メニューシリーズ全体でスタイルの一貫性を保てます。

# First dish in menu series
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Professional restaurant menu photo of beef tenderloin steak with red wine reduction, roasted garlic mashed potatoes, and grilled asparagus on a white plate, elegant fine dining style, soft lighting, dark wood table background"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "menu-series-001",
    "mode": "max"
  }'

# Second dish maintaining consistent style
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Now create a matching menu photo of pan-seared duck breast with cherry glaze, wild rice pilaf, and sauteed spinach, same elegant fine dining style and plating"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "menu-series-001",
    "mode": "max"
  }'

# Third dish in the series
curl -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Continue with a dessert photo in the same style: chocolate lava cake with vanilla ice cream and raspberry coulis, elegant presentation matching the previous dishes"}],
    "model": "eachsense/beta",
    "stream": true,
    "session_id": "menu-series-001",
    "mode": "max"
  }'

エラー処理

エラーコード説明解決方法
401API キーが無効ですEACHLABS_API_KEY が正しいことを確認します
400リクエストが無効ですJSON 形式と必須パラメーターを確認します
429レート制限を超過しました指数バックオフを実装します
500サーバーエラーです指数バックオフを使って再試行します

エラー処理を含む例:

response=$(curl -s -w "\n%{http_code}" -X POST "https://eachsense-agent.core.eachlabs.run/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -H "Accept: text/event-stream" \
  -d '{
    "messages": [{"role": "user", "content": "Professional food photo of a sushi platter with various nigiri and maki rolls, fresh wasabi and pickled ginger, elegant Japanese presentation on a black lacquer tray"}],
    "model": "eachsense/beta",
    "stream": true,
    "mode": "max"
  }')

http_code=$(echo "$response" | tail -n1)
body=$(echo "$response" | sed '$d')

if [ "$http_code" -eq 200 ]; then
  echo "Success: $body"
else
  echo "Error $http_code: $body"
fi

関連スキル

コメント