product-photography

We need to translate the given text from English to French. The text describes an AI product photography skill. We must preserve the name "product-photography" but it's not in the text, so we don't include it. We translate only the text inside <text>. No extra labels. Keep technical terms like "packshot", "hero shot", "lifestyle shots", "e-commerce", "Amazon" as is or with appropriate French translation? The instruction says preserve product names, protocol names, URLs, numbers, technical terms. "Amazon" is a product name, keep as is. "packshot" is a technical term, often kept in English in French contexts, but could be translated? The instruction says preserve technical terms, so keep "packshot". "hero shot" is also technical, keep. "lifestyle shots" - "lifestyle" is often used in French, but "shots" might be translated as "photos" or kept. I'll keep "lifestyle shots" as is. "studio lighting" - "éclairage studio".

npx skills add https://github.com/halt-catch-fire/skills --skill product-photography

Install the belt CLI skill: npx skills add belt-sh/cli

Product Photography

Create professional product images with AI via inference.sh CLI.

Quick Start

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"
}'

Shot Types

1. Hero Shot (Primary Image)

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"
}'
RuleWhy
Product fills 80% of frameMaximizes visual impact
Slight angle (15-30 degrees)Adds dimension vs flat front-on
One hero light + fillCreates depth without harsh shadows
Neutral or brand-color backgroundKeeps focus on product

2. Packshot (E-Commerce White Background)

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:

  • Pure white background (RGB 255, 255, 255)
  • Product fills 85%+ of frame
  • No props, text, logos, or watermarks
  • Minimum 1000px on longest side (1600px+ recommended for zoom)
  • JPEG or PNG, sRGB color

3. Lifestyle Shot

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"
}'

4. Scale Shot

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
}'

5. Detail / Close-Up Shot

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"
}'

6. Group / Collection Shot

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"
}'

Camera Angles

AngleBest ForPrompt Keyword
Eye levelMost 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 angleMaking products look powerful/premium"low angle", "looking up at product"
3/4 angleMost versatile, shows depth"three-quarter view", "slight angle"

Lighting Setups

SetupLookPrompt Keywords
Soft box (diffused)Even, minimal shadows"soft studio lighting", "diffused light"
Rim/edge lightingDramatic outline glow"rim lighting", "edge light", "backlit"
Natural windowWarm, authentic, lifestyle"natural window light", "golden hour"
Hard directionalStrong shadows, editorial"dramatic directional lighting", "hard shadow"
Flat/evenE-commerce, no shadows"even lighting", "no shadows", "flat light"

Shadow Types

ShadowEffectWhen to Use
No shadowClean, floatingAmazon/e-commerce requirements
Contact shadowTiny shadow where product meets surfaceGrounded but clean
Drop shadowSoft shadow below productAdds depth, professional
Dramatic shadowLong, directional shadowEditorial, luxury, mood
ReflectionMirror-like surface belowTech, luxury, premium feel

Background Guide

BackgroundBest ForPrompt Keywords
Pure white (#FFFFFF)E-commerce, marketplaces"pure white background"
Light grey gradientHero shots, premium"gradient background white to grey"
Marble/stoneLuxury, beauty, jewelry"marble surface"
Wood/rusticArtisan, food, natural products"rustic wooden table"
Colored (brand)Brand consistency"background color [hex]"
Lifestyle environmentContext shots"kitchen counter", "desk", "bathroom shelf"

Composition Rules

RuleApplication
Rule of thirdsPlace product at intersection points for lifestyle shots
Center dominantE-commerce/packshots — product dead center
Negative spaceLeave room for text overlay if marketing use
Leading linesUse table edges, shadows to draw eye to product
Odd numbersGroups of 3 or 5 products look better than 2 or 4
Triangle compositionArrange 3 items in a triangle for balance

E-Commerce Image Set

A complete product listing needs 7-9 images in this order:

PositionImage TypePurpose
1Hero / packshotPrimary listing image, white background
2LifestyleProduct in use/context
3Feature calloutKey feature highlighted
4Scale referenceSize in hand or next to known object
5Detail close-upMaterial quality, craftsmanship
6Alternate angleBack or side view
7InfographicDimensions, specs, what's included
8PackagingUnboxing experience
9Social proofRating 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

Product Categories

Food & Beverage

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)

Jewelry & Accessories

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

Electronics & Tech

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)

Cosmetics & Beauty

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)

Apparel & Fashion

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)

Image Editing Workflow

# 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"
}'

Common Mistakes

MistakeProblemFix
Busy backgroundsProduct gets lostClean, simple backgrounds — product is the star
Flat front-on angleLooks like a mugshotSlight 15-30° angle adds dimension
Wrong lighting for categoryTech on rustic wood, food in cold lightMatch lighting to product category conventions
Too many propsDistracts from productMax 2-3 supporting props for lifestyle shots
Inconsistent style across setLooks unprofessionalSame lighting setup, same background family
No scale referenceCustomers can't judge sizeInclude at least one shot with hands or known objects
Low resolutionCan't zoom, looks amateurGenerate at 2K+ and upscale if needed
Perfectly centered everythingStatic, boring layoutUse rule of thirds for lifestyle, center only for packshots

Related Skills

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

Plus de skills de halt-catch-fire

ai-image-generation
halt-catch-fire
Générez des images IA avec GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve et plus de 50 modèles via l'interface CLI inference.sh. Modèles : GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capacités : texte vers image, image vers image, inpainting, LoRA, édition d'image, upscaling, rendu de texte. Utilisation pour : art IA, maquettes de produits, concept art, graphiques pour réseaux sociaux, visuels marketing, illustrations. Déclencheurs : flux, génération d'image, image IA, texte vers...
creativemediaimage
ai-video-generation
halt-catch-fire
We need to translate the given text from English to French. The text describes an AI video generation skill. We must preserve the name "ai-video-generation" but it's not in the text, so we ignore. Preserve product names, protocol names, URLs, numbers, technical terms. So "Google Veo", "Seedance 2.0", "HappyHorse", "Wan", "Grok", "inference.sh CLI", "Veo 3.1", "Veo 3", "Seedance 2.0", "HappyHorse 1.0", "Wan 2.5", "Grok Imagine Video", "OmniHuman", "Fabric", "HunyuanVideo", "text-to-video", "image-to-video", "reference-to-video", "video editing", "lipsync", "avatar animation", "video upscaling", "foley sound", "social media videos", "marketing content", "explainer videos", "product demos", "AI avatars",
creativevideomedia
twitter-automation
halt-catch-fire
Automatisez Twitter/X avec publication, engagement et gestion des utilisateurs via l'interface CLI inference.sh. Applications : x/post-tweet, x/post-create (avec média), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capacités : publier des tweets, planifier du contenu, aimer des publications, retweeter, envoyer des messages directs, suivre des utilisateurs, obtenir des profils. Utilisation pour : automatisation des réseaux sociaux, planification de contenu, bots d'engagement, croissance d'audience, API X. Déclencheurs : twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x...
marketingapicommunication
ai-avatar-video
halt-catch-fire
We need to translate the given text from English to French, preserving the name "ai-avatar-video" and other technical terms. The text describes creating AI avatar and talking head videos via inference.sh CLI. It recommends P-Video-Avatar, and lists other options: OmniHuman, Fabric, PixVerse. Audio options: Inworld TTS-2, ElevenLabs, Kokoro. Capabilities: audio-driven avatars, text-to-avatar, lipsync videos, talking head generation, virtual presenters, UGC content. Use for: AI presenters, explainer videos, virtual influencers, dubbing, marketing videos, UGC ads, gaming avatars,... We must not include the name "ai-avatar-video" unless it appears in the source text. It does not appear in the source text, so we omit it. We translate the rest naturally. Keep product names, protocol names, URLs, numbers, technical terms as is. So "inference.sh CLI" stays, "P-Video-Avatar", "OmniHuman", "F
videocreativemedia
agent-browser
halt-catch-fire
Automatisation de navigateur pour agents IA via inference.sh. Naviguer sur des pages web, interagir avec des éléments en utilisant les références @e, prendre des captures d'écran, enregistrer des vidéos. Capacités : scraping web, remplissage de formulaires, clics, saisie, glisser-déposer, téléchargement de fichiers, exécution JavaScript. Utilisation pour : automatisation web, extraction de données, tests, navigation agent, recherche. Déclencheurs : navigateur, automatisation web, scraping, navigation, clic, remplissage de formulaire, capture d'écran, navigation web, playwright, navigateur headless, agent web, surf internet, enregistrement vidéo
browser-automationweb-scrapingtesting
web-search
halt-catch-fire
Recherche web et extraction de contenu avec Tavily et Exa via l'interface en ligne de commande inference.sh. Applications : Tavily Search, Tavily Extract, Exa Search, Exa Answer, Exa Extract. Capacités : recherche assistée par IA, extraction de contenu, réponses directes, recherche documentaire. Utilisation pour : recherche, pipelines RAG, vérification des faits, agrégation de contenu, agents. Déclencheurs : recherche web, tavily, exa, api de recherche, extraction de contenu, recherche, recherche internet, recherche IA, assistant de recherche, scraping web, rag, alternative à perplexity
researchweb-scrapingapi
infsh-cli
halt-catch-fire
We need to translate the given text from English to French, preserving the name "infsh-cli" and other technical terms, product names, protocol names, URLs, numbers, etc. The instruction says: "Do not include the name unless it appears in the source text." The name "infsh-cli" is not in the source text, so we don't include it. The source text has "inference.sh CLI" - that should be preserved as is? The instruction says preserve product names, so "inference.sh CLI" should stay. Also "FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter" are product names, keep them. "Twitter" is a product name. "AI" is a term, keep as is or translate? Usually "IA" in French, but the instruction says preserve technical terms? "AI" is a common acronym, often kept as is. But in French, "IA" is used. However, the instruction says "preserve product names
developmentapicreative
landing-page-design
halt-catch-fire
We need to translate the given text from English to French. The text is a description of an agent skill for landing page design. We must preserve the name "landing-page-design" but it's not in the text, so we don't include it. We translate only the text inside <text>. No extra labels. Keep technical terms like "CTA", "F-pattern", "SaaS", etc. as is or translate if appropriate? The instruction says preserve technical terms, so "CTA" stays, "F-pattern" might be kept or translated? Usually "F-pattern" is a known term, but in French it might be "motif en F" or keep as is. Since it's a technical term, I'll keep "F-pattern" as is. "above-the-fold" is a term, often kept as "above-the-fold" or "au-dessus de la ligne de flottaison". I'll keep as "above-the-fold" for consistency. "social proof" -> "preuve sociale". "mobile design" -> "conception mobile