guides/photo/product-photography/SKILL.md
AI product photography with studio lighting, lifestyle shots, and packshot conventions. Covers angles, backgrounds, shadow types, hero shots, and e-commerce image requirements. Use for: product photos, e-commerce images, Amazon listings, packshots, lifestyle photography. Triggers: product photography, product photo, packshot, e-commerce photography, product shot, product image, studio photography, lifestyle product, amazon product photo, product listing image, hero shot, product mockup, commercial photography
npx skillsauth add inference-sh/agent-skills-registry product-photographyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create professional product images with AI via inference.sh CLI.
Requires inference.sh CLI (
belt). Install instructions
belt login
# Clean studio packshot
belt app run bytedance/seedream-4-5 --input '{
"prompt": "professional product photography, single premium wireless headphone on clean white background, soft studio lighting with subtle shadow, commercial e-commerce style, sharp focus, 4K quality",
"size": "2K"
}'
The main image customers see first. Clean, focused, aspirational.
belt app run bytedance/seedream-4-5 --input '{
"prompt": "hero product shot, premium smartwatch floating at slight angle, clean gradient background transitioning from white to light grey, dramatic rim lighting, subtle reflection below, commercial photography, magazine quality, sharp details",
"size": "2K"
}'
| Rule | Why | |------|-----| | Product fills 80% of frame | Maximizes visual impact | | Slight angle (15-30 degrees) | Adds dimension vs flat front-on | | One hero light + fill | Creates depth without harsh shadows | | Neutral or brand-color background | Keeps focus on product |
Amazon, Shopify, and most marketplaces require pure white backgrounds.
# Pure white background packshot
belt app run bytedance/seedream-4-5 --input '{
"prompt": "product packshot, leather wallet standing upright at slight angle on pure white background #FFFFFF, soft even studio lighting, no shadows, e-commerce product photography, Amazon listing style, clean sharp focus",
"size": "2K"
}'
Amazon Requirements:
Product in context — shows how it's used or where it belongs.
belt app run bytedance/seedream-4-5 --input '{
"prompt": "lifestyle product photography, premium coffee mug on rustic wooden table beside an open book and reading glasses, morning sunlight streaming through window, cozy home atmosphere, shallow depth of field, warm tones, editorial style",
"size": "2K"
}'
Shows product size relative to familiar objects or human hands.
belt app run falai/flux-dev-lora --input '{
"prompt": "product scale photography, compact portable speaker held in one hand, person showing how small and portable it is, clean blurred background, natural lighting, lifestyle tech photography",
"width": 1024,
"height": 1024
}'
Highlights texture, material quality, or specific features.
belt app run bytedance/seedream-4-5 --input '{
"prompt": "extreme close-up product detail, premium leather bag stitching and grain texture, macro photography, shallow depth of field, soft directional lighting highlighting texture, luxury product photography, editorial quality",
"size": "2K"
}'
Multiple products or variants together.
belt app run bytedance/seedream-4-5 --input '{
"prompt": "product collection flat lay photography, three skincare bottles arranged in triangular composition on marble surface, minimal props, soft overhead lighting, beauty product photography, editorial style, coordinated brand aesthetic",
"size": "2K"
}'
| Angle | Best For | Prompt Keyword | |-------|----------|---------------| | Eye level | Most products, relatable | "eye level shot", "straight on" | | Slight above (30°) | Flat lay, food, cosmetics | "overhead angle", "45 degree angle" | | Bird's eye (90°) | Flat lay compositions | "flat lay", "top down", "overhead" | | Low angle | Making products look powerful/premium | "low angle", "looking up at product" | | 3/4 angle | Most versatile, shows depth | "three-quarter view", "slight angle" |
| Setup | Look | Prompt Keywords | |-------|------|----------------| | Soft box (diffused) | Even, minimal shadows | "soft studio lighting", "diffused light" | | Rim/edge lighting | Dramatic outline glow | "rim lighting", "edge light", "backlit" | | Natural window | Warm, authentic, lifestyle | "natural window light", "golden hour" | | Hard directional | Strong shadows, editorial | "dramatic directional lighting", "hard shadow" | | Flat/even | E-commerce, no shadows | "even lighting", "no shadows", "flat light" |
| Shadow | Effect | When to Use | |--------|--------|-------------| | No shadow | Clean, floating | Amazon/e-commerce requirements | | Contact shadow | Tiny shadow where product meets surface | Grounded but clean | | Drop shadow | Soft shadow below product | Adds depth, professional | | Dramatic shadow | Long, directional shadow | Editorial, luxury, mood | | Reflection | Mirror-like surface below | Tech, luxury, premium feel |
| Background | Best For | Prompt Keywords | |------------|----------|----------------| | Pure white (#FFFFFF) | E-commerce, marketplaces | "pure white background" | | Light grey gradient | Hero shots, premium | "gradient background white to grey" | | Marble/stone | Luxury, beauty, jewelry | "marble surface" | | Wood/rustic | Artisan, food, natural products | "rustic wooden table" | | Colored (brand) | Brand consistency | "background color [hex]" | | Lifestyle environment | Context shots | "kitchen counter", "desk", "bathroom shelf" |
| Rule | Application | |------|------------| | Rule of thirds | Place product at intersection points for lifestyle shots | | Center dominant | E-commerce/packshots — product dead center | | Negative space | Leave room for text overlay if marketing use | | Leading lines | Use table edges, shadows to draw eye to product | | Odd numbers | Groups of 3 or 5 products look better than 2 or 4 | | Triangle composition | Arrange 3 items in a triangle for balance |
A complete product listing needs 7-9 images in this order:
| Position | Image Type | Purpose | |----------|-----------|---------| | 1 | Hero / packshot | Primary listing image, white background | | 2 | Lifestyle | Product in use/context | | 3 | Feature callout | Key feature highlighted | | 4 | Scale reference | Size in hand or next to known object | | 5 | Detail close-up | Material quality, craftsmanship | | 6 | Alternate angle | Back or side view | | 7 | Infographic | Dimensions, specs, what's included | | 8 | Packaging | Unboxing experience | | 9 | Social proof | Rating overlay or lifestyle with caption |
# Generate a complete e-commerce set
# 1. Hero packshot
belt app run bytedance/seedream-4-5 --input '{
"prompt": "product packshot, premium bluetooth speaker on pure white background, slight angle, soft studio lighting, subtle contact shadow, e-commerce photography, sharp, 4K",
"size": "2K"
}' --no-wait
# 2. Lifestyle
belt app run bytedance/seedream-4-5 --input '{
"prompt": "lifestyle product photography, bluetooth speaker on poolside table, summer setting, sunglasses and drink nearby, warm natural light, vacation vibes, editorial style",
"size": "2K"
}' --no-wait
# 3. Detail
belt app run bytedance/seedream-4-5 --input '{
"prompt": "extreme close-up of speaker grille texture and premium materials, macro product photography, soft lighting, showing build quality, sharp detail",
"size": "2K"
}' --no-wait
# 4. Scale
belt app run falai/flux-dev-lora --input '{
"prompt": "person holding compact bluetooth speaker in one hand, showing portable size, clean blurred background, natural light, lifestyle tech photography",
"width": 1024,
"height": 1024
}' --no-wait
Key: overhead angles, natural light, visible texture, steam/freshness cues
Prompt add: "food photography, appetizing, fresh, natural daylight, shallow depth of field"
Avoid: artificial-looking colors, perfectly symmetrical plating (looks fake)
Key: macro detail, reflective surfaces, black or gradient backgrounds
Prompt add: "jewelry photography, macro, sparkle, reflective surface, luxury"
Avoid: flat lighting (kills sparkle), busy backgrounds
Key: clean lines, dark or gradient backgrounds, rim lighting
Prompt add: "tech product photography, sleek, modern, rim lighting, premium"
Avoid: warm/rustic backgrounds (wrong aesthetic)
Key: flat lay or slight angle, marble/clean surfaces, soft pastels
Prompt add: "beauty product photography, clean, minimal, soft light, editorial"
Avoid: harsh shadows, dark moody lighting (unless luxury/niche)
Key: on model or flat lay, lifestyle context, brand mood
Prompt add: "fashion photography, editorial, styled, natural pose"
Avoid: pure white background for lifestyle (save for e-commerce only)
# Generate base product image
belt app run bytedance/seedream-4-5 --input '{
"prompt": "premium headphones on white background, studio product photography",
"size": "2K"
}'
# Edit: change background to lifestyle
belt app run bytedance/seededit-3-0-i2i --input '{
"prompt": "change the background to a modern minimalist desk setup with warm afternoon light, keep the headphones exactly the same",
"image": "headphones-white.png"
}'
# Upscale for print
belt app run falai/topaz-image-upscaler --input '{
"image": "headphones-lifestyle.png"
}'
| Mistake | Problem | Fix | |---------|---------|-----| | Busy backgrounds | Product gets lost | Clean, simple backgrounds — product is the star | | Flat front-on angle | Looks like a mugshot | Slight 15-30° angle adds dimension | | Wrong lighting for category | Tech on rustic wood, food in cold light | Match lighting to product category conventions | | Too many props | Distracts from product | Max 2-3 supporting props for lifestyle shots | | Inconsistent style across set | Looks unprofessional | Same lighting setup, same background family | | No scale reference | Customers can't judge size | Include at least one shot with hands or known objects | | Low resolution | Can't zoom, looks amateur | Generate at 2K+ and upscale if needed | | Perfectly centered everything | Static, boring layout | Use rule of thirds for lifestyle, center only for packshots |
npx skills add inference-sh/skills@ai-image-generation
npx skills add inference-sh/skills@flux-image
npx skills add inference-sh/skills@prompt-engineering
Browse all apps: belt app list
development
Declarative UI widgets from JSON for React/Next.js from ui.inference.sh. Render rich interactive UIs from structured agent responses. Capabilities: forms, buttons, cards, layouts, inputs, selects, checkboxes. Use for: agent-generated UIs, dynamic forms, data display, interactive cards. Triggers: widgets, declarative ui, json ui, widget renderer, agent widgets, dynamic ui, form widgets, card widgets, shadcn widgets, structured output ui
tools
Tool lifecycle UI components for React/Next.js from ui.inference.sh. Display tool calls: pending, progress, approval required, results. Capabilities: tool status, progress indicators, approval flows, results display. Use for: showing agent tool calls, human-in-the-loop approvals, tool output. Triggers: tool ui, tool calls, tool status, tool approval, tool results, agent tools, mcp tools ui, function calling ui, tool lifecycle, tool pending
development
Chat UI building blocks for React/Next.js from ui.inference.sh. Components: container, messages, input, typing indicators, avatars. Capabilities: chat interfaces, message lists, input handling, streaming. Use for: building custom chat UIs, messaging interfaces, AI assistants. Triggers: chat ui, chat component, message list, chat input, shadcn chat, react chat, chat interface, messaging ui, conversation ui, chat building blocks
tools
Batteries-included agent component for React/Next.js from ui.inference.sh. One component with runtime, tools, streaming, approvals, and widgets built in. Capabilities: drop-in agent, human-in-the-loop, client-side tools, form filling. Use for: building AI chat interfaces, agentic UIs, SaaS copilots, assistants. Triggers: agent component, agent ui, chat agent, shadcn agent, react agent, agentic ui, ai assistant ui, copilot ui, inference ui, human in the loop