PluginBench
Skill
Pass
Audit score 90

image-ecommerce

starchild-ai-agent/official-skills

Generate professional e-commerce product photos: hero shots, lifestyle scenes, flat lay, detail close-ups, and platform-optimized images.

What is image-ecommerce?

Create polished product photography for e-commerce listings and marketing campaigns. Supports white-background hero shots, lifestyle scenes, flat lay, detail close-ups, packaging shots, group displays, seasonal themes, and platform-optimized formats for Amazon, Shopify, Taobao, Instagram, Xiaohongshu, Etsy, and eBay.

  • Generate hero shots, lifestyle product scenes, and flat lay arrangements from product images or text descriptions
  • Create detail close-ups, packaging shots, group/collection displays, and scale reference images
  • Produce 360-degree views, comparison layouts, and infographic-style feature callouts
  • Apply platform-specific optimization presets (Amazon, Shopify, Taobao, Instagram, Xiaohongshu, Etsy, eBay)
  • Generate seasonal-themed product photos (spring, summer, autumn, winter)
  • Support multiple aspect ratios (1:1, 3:4, 4:3, 9:16, 16:9) and batch generation (1–8 images)

How to install image-ecommerce

npx skills add https://github.com/starchild-ai-agent/official-skills --skill image-ecommerce
Prerequisites
  • Local workspace with product image file (JPG/PNG) or public HTTPS URL to product image, or a text description of the product
Claude Code
Cursor
Windsurf
Cline

How to use image-ecommerce

  1. 1.Call product_photo() with product_path (local file), product_url (public URL), or prompt (text description)
  2. 2.Specify style (hero, lifestyle, flat_lay, detail, packaging, group, scale, 360_view, comparison, infographic, or seasonal_*)
  3. 3.Set background type (white, natural, gradient, etc.) and aspect_ratio if needed
  4. 4.Optionally use platform preset (amazon, shopify, taobao, instagram, xiaohongshu, etsy, ebay) to auto-optimize
  5. 5.For multiple images, use product_photo_set() or set count parameter (1–8)
  6. 6.Access generated images from output/images/ directory; use local_path for delivery, not raw fal.media URLs

Use cases

Good for
  • Create a white-background hero shot for an Amazon product listing
  • Generate a lifestyle product photo showing a leather wallet in use for marketing
  • Produce a complete 7-image product set (hero, lifestyle, detail, scale, angle, packaging, flat lay) for e-commerce catalog
  • Create seasonal campaign images (e.g., winter holiday-themed product photos)
  • Generate platform-optimized images for Instagram or Xiaohongshu with automatic aspect ratio and style adjustment
Who it's for
  • E-commerce sellers and marketplace vendors
  • Product photographers and marketing teams
  • Catalog and listing managers
  • Social media content creators
  • Brand and product marketing professionals

image-ecommerce FAQ

What's the difference between image-ecommerce and image-create?

image-ecommerce is for professional product photography (hero shots, lifestyle, flat lay, detail close-ups). image-create is for generating arbitrary images from text. Use image-ecommerce when the user wants product photos for e-commerce, catalogs, or marketing.

Can I generate product photos from just a text description?

Yes. Omit product_path and product_url, provide a prompt describing the product (e.g., 'premium wireless bluetooth headphones, matte black finish'), and the skill uses text-to-image generation.

How do I deliver the generated images to the user?

Always use the local_path from the result (e.g., output/images/xxx.png), never the raw fal.media URL. On Web, embed inline with markdown. On Telegram/WeChat, use send_to_telegram() or send_to_wechat() with the local file path.

What does the platform preset do?

Setting platform (e.g., amazon, shopify, instagram) automatically applies optimized style, background, and aspect_ratio for that platform. You can still override individual parameters if needed.

How long does image generation take?

Model 'nanopro' takes ~25 seconds; model 'gpt' (best quality) takes ~150 seconds. Default is nanopro.

Full instructions (SKILL.md)

Source of truth, from starchild-ai-agent/official-skills.


name: image-ecommerce version: 1.0.4 description: | E-commerce product photography: white-background hero shots, lifestyle scenes, flat lay, detail close-ups, packaging shots, group/collection displays, scale references, seasonal/holiday themes, 360-degree views, comparison layouts, infographics, and platform-optimized images (Amazon, Shopify, Taobao, Instagram, Xiaohongshu, Etsy, eBay).

Use when generating professional product photos for e-commerce listings, catalogs, or marketing (e.g. product hero shot, Amazon listing image, lifestyle product photo, product on white background, product detail close-up, seasonal product campaign). metadata: starchild: emoji: "🛍️" skillKey: image-ecommerce user-invocable: true disable-model-invocation: false


image-ecommerce

Use this skill for all e-commerce product photography requests on Starchild.

Covers: white-background hero shots, lifestyle product scenes, flat lay arrangements, detail/macro close-ups, packaging/unboxing shots, group/collection displays, scale reference images, seasonal themes (spring/summer/autumn/winter), 360-degree views, comparison layouts, infographic-style feature callouts, and platform-optimized images for Amazon, Shopify, Taobao, Instagram, Xiaohongshu, Etsy, eBay.

Core principle: call the provided script. Do not re-implement proxy/billing plumbing.

When to use image-ecommerce vs other image skills:

  • image-ecommerce → user wants PRODUCT PHOTOS for e-commerce, catalogs, or marketing
  • image-edit → user wants to EDIT or TRANSFORM an existing image (not product-specific)
  • image-portrait → user wants a portrait with their face/identity preserved
  • image-create → user wants to CREATE something from text (not product photography)
  • image-tryon → user wants to try on clothing/accessories on a person

1. Quick start — single product photo (most common)

⚠️ Execution context — read this first. The code blocks below are Python, not shell commands. Starchild's bash tool runs /bin/bash -c, which cannot parse exec(open(...)) — pasting them directly into a bash command will fail with syntax error near unexpected token 'open'. Also, exec(open(...)) inside python3 -c fails with NameError: __file__ because the script uses __file__ for path resolution.

Use python3 - <<'EOF' with from exports import when calling via the bash tool:

python3 - <<'EOF'
import sys
sys.path.insert(0, "skills/image-ecommerce")
from exports import product_photo
result = product_photo(
    product_path="uploads/product.jpg",
    style="hero",
    background="white",
)
print(result)
EOF

The heredoc (<<'EOF') preserves all quotes and newlines — no escaping needed.

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/product.jpg",
    style="hero",
    background="white",
)
# result -> {"success": True, "images": [{"local_path": "output/images/..."}], ...}

The script reads the local file, base64-encodes it, and sends it to fal.ai as a data URI — no manual URL publishing needed.

2. Quick start — public URL

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_url="https://example.com/product.jpg",
    style="lifestyle",
    background="natural",
)

3. Quick start — text-to-image (no product photo)

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    prompt="premium wireless bluetooth headphones, matte black finish, over-ear design",
    style="hero",
    background="white",
)

When no product_path or product_url is provided, the script uses the text-to-image endpoint (no /edit suffix). A prompt describing the product is required in this mode.

4. Quick start — platform-optimized

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/product.jpg",
    platform="amazon",
)
# Automatically applies: style=hero, background=white, aspect_ratio=1:1

5. Quick start — complete product image set

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo_set(
    product_path="uploads/product.jpg",
    prompt="premium leather wallet",
    platform="amazon",
)
# Generates 7 images: hero, lifestyle, detail, scale, alternate angle, packaging, flat lay

Delivering the result to the user — IMPORTANT

Never hand the user the raw fal.media URL. fal serves files with restrictive CSP headers. The only reliable delivery path is the already-downloaded local file:

  1. Use each image's local_path (e.g. output/images/xxx.png) — the script always downloads on success.
  2. Tell the user the files are saved to output/images/ and viewable in the workspace file panel.
  3. On Web channel, embed inline so the user can preview in chat:
    ![product](output/images/<filename>.png)
    
  4. On Telegram / WeChat: send via send_to_telegram(file_path="output/images/...", message_type="image") or send_to_wechat(file_path="output/images/...", message_type="image").

6. Parameters — product_photo()

ParameterRequiredDefaultDescription
product_pathno—Local workspace file path to the product image
product_urlno—Public HTTPS URL of the product image
promptno—Custom prompt describing the product or desired photo
styleno"hero"Photography style preset (see §7)
backgroundno"white"Background type (see §8)
modelno"nanopro"Model: "nanopro" (fast ~25s) or "gpt" (best quality ~150s)
countno1Number of images to generate (1–8)
aspect_rationo"1:1"Output ratio: 1:1, 3:4, 4:3, 9:16, 16:9
platformno—Platform preset: amazon, shopify, taobao, instagram, xiaohongshu, etsy, ebay

Image input rules:

  • Provide product_path OR product_url for edit mode (transform existing product photo).
  • If both are given, product_path takes priority.
  • Omit both for pure text-to-image generation (requires prompt).

Prompt priority: prompt + style/background (enhanced) > style + background templates.

Platform preset: When platform is set, it overrides default style, background, and aspect_ratio with platform-optimized values — unless you explicitly set them.


7. Photography styles

Core product shots

StyleKeyBest for
Hero shotheroPrimary listing image, magazine ads, main product display
LifestylelifestyleProduct in use, editorial, social media
Flat layflat_layInstagram, top-down arrangement, catalog
Detail close-updetailMaterial quality, texture, craftsmanship
PackagingpackagingUnboxing experience, brand packaging
Group/collectiongroupMultiple products, variants, bundles
Scale referencescaleSize comparison, product in hand

Marketing & informational

StyleKeyBest for
360° view360_viewMulti-angle showcase, turntable display
ComparisoncomparisonSide-by-side, before/after, feature highlight
InfographicinfographicFeature callouts, specs, dimensions

Seasonal campaigns

StyleKeyBest for
Springseasonal_springCherry blossoms, fresh green, pastel
Summerseasonal_summerBeach, sunshine, tropical, vacation
Autumnseasonal_autumnFall leaves, golden tones, harvest
Winterseasonal_winterSnow, holiday, festive, cozy

8. Background types

BackgroundKeyBest for
Pure whitewhiteAmazon, e-commerce standard, marketplace listings
GradientgradientHero shots, premium feel, modern
StudiostudioProfessional catalog, controlled lighting
NaturalnaturalOutdoor products, organic brands
LifestylelifestyleHome/office context, in-use scenarios
ColoredcoloredBrand-matching, vibrant marketing
TexturedtexturedLuxury products, marble/wood surface
TransparenttransparentProduct cutout, PNG for design use

9. Platform presets

PlatformAspect RatioBackgroundStyleKey Requirements
Amazon1:1whiteheroPure white bg (RGB 255,255,255), product fills 85%+, no props/text/watermarks, min 1000px (1600px+ for zoom)
Shopify1:1whiteheroSquare format, consistent catalog style, 2048x2048 recommended
Taobao1:1whitehero800x800 minimum, white bg for main image
Instagram1:1lifestylelifestyle1080x1080 feed, lifestyle context, visually appealing
Xiaohongshu3:4lifestyleflat_lay1080x1440 vertical, aesthetic flat lay, text overlay space
Etsy4:3naturallifestyleHandmade/artisan feel, natural backgrounds
eBay1:1whiteheroWhite background, clear product view, 1600px min for zoom

10. Model selection guide

ModelKeySpeedQualityBest for
NanoPronanopro~25sGoodDefault for all requests. Fast iteration.
GPT Image 2gpt~150sBestWhen user explicitly asks for "highest quality" or "best quality". Complex scenes.

Decision rules:

  1. Default: always use nanopro unless the user explicitly requests higher quality.
  2. Use gpt when: user says "highest quality", "best quality", "premium", or the scene is very complex with many specific details.
  3. Use nanopro when: user wants fast results, is iterating on styles, or generating multiple images.
# Default (fast)
result = product_photo(product_path="product.jpg", style="hero")

# High quality (user requested)
result = product_photo(product_path="product.jpg", style="hero", model="gpt")

11. Intent recognition guide

Use this table to map user requests to the correct style + background:

Product listing images

User saysStyleBackgroundNotes
"product photo", "listing image", "主图"herowhiteDefault e-commerce
"Amazon listing", "亚马逊主图"herowhiteUse platform="amazon"
"Shopify product", "独立站产品图"herowhiteUse platform="shopify"
"淘宝主图", "天猫主图"herowhiteUse platform="taobao"
"white background", "白底图"herowhiteStandard packshot
"product on white", "纯白背景"herowhiteAmazon-style

Lifestyle & context

User saysStyleBackgroundNotes
"lifestyle photo", "场景图"lifestylelifestyleProduct in context
"product in use", "使用场景"lifestylelifestyleShow product being used
"flat lay", "俯拍", "平铺"flat_laytexturedTop-down arrangement
"Instagram product", "小红书产品"flat_laylifestyleSocial media optimized

Detail & technical

User saysStyleBackgroundNotes
"close-up", "detail shot", "细节图"detailstudioMacro/texture
"packaging", "包装图", "开箱"packagingstudioBox + product
"size comparison", "尺寸对比"scalestudioWith reference object
"multiple products", "组合图"groupwhiteCollection display
"360 view", "多角度"360_viewwhiteTurntable style
"comparison", "对比图"comparisonwhiteSide by side
"infographic", "功能标注"infographicwhiteFeature callouts

Seasonal & campaign

User saysStyleBackgroundNotes
"spring campaign", "春季"seasonal_springautoCherry blossoms, pastel
"summer sale", "夏季"seasonal_summerautoBeach, tropical
"autumn/fall", "秋季"seasonal_autumnautoGolden leaves, warm
"winter/holiday", "冬季", "圣诞"seasonal_winterautoSnow, festive

Complete product set

User saysFunctionNotes
"complete set", "全套产品图", "listing images"product_photo_set()7 images covering all angles
"Amazon listing set", "亚马逊全套"product_photo_set(platform="amazon")Platform-optimized set

12. Usage examples by scenario

Amazon listing — white background hero shot

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/headphones.jpg",
    platform="amazon",
)

Lifestyle product photo

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/coffee_mug.jpg",
    style="lifestyle",
    background="lifestyle",
    prompt="premium coffee mug on rustic wooden table beside an open book, morning sunlight",
)

Product detail close-up

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/leather_bag.jpg",
    style="detail",
    background="studio",
    prompt="extreme close-up of leather stitching and grain texture",
)

Seasonal campaign — winter holiday

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/candle.jpg",
    style="seasonal_winter",
    prompt="luxury scented candle in cozy holiday setting with pine branches and warm glow",
)

Text-to-image — generate product from description

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    prompt="sleek minimalist smartwatch with black silicone band and OLED display showing time",
    style="hero",
    background="gradient",
    model="gpt",
)

Flat lay for Instagram / Xiaohongshu

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/skincare_set.jpg",
    style="flat_lay",
    background="textured",
    platform="xiaohongshu",
)

Multiple images — batch generation

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo(
    product_path="uploads/sneakers.jpg",
    style="hero",
    background="white",
    count=4,
)
# Generates 4 variations of the hero shot

Complete product image set

exec(open('skills/image-ecommerce/product_photo.py').read())
result = product_photo_set(
    product_path="uploads/wallet.jpg",
    prompt="premium leather bifold wallet",
    platform="amazon",
)
# result -> {"success": True, "sets": [...], "total_images": 7, ...}
# Generates: hero, lifestyle, detail, scale, alternate angle, packaging, flat lay

13. Prompt engineering best practices

The product photography prompt structure

Every effective product photo prompt should include these elements:

[product description], [photography style], [lighting], [background/surface], [composition], [quality modifiers]

Key principles (derived from product-photography, eachlabs-product-visuals, image-create skills)

  1. Product preservation is critical — when editing an existing product image:

    • Always emphasize "keep the product exactly as it is"
    • Preserve shape, color, branding, and details
    • Only change the background/context/lighting
  2. Lighting specificity — always specify lighting type:

    • Studio: "soft diffused studio lighting", "even lighting with no shadows"
    • Dramatic: "dramatic rim lighting", "edge light for premium feel"
    • Natural: "natural window light", "golden hour warm light"
    • Flat: "flat even lighting" (for e-commerce white background)
  3. Background precision — vague backgrounds produce poor results:

    • ❌ "nice background"
    • ✅ "pure white background #FFFFFF, no shadows"
    • ✅ "rustic wooden table with morning sunlight"
    • ✅ "soft gradient from white to light grey"
  4. Composition rules (from product-photography skill):

    • Hero shot: product fills 80% of frame, slight 15-30° angle
    • Packshot (Amazon): product dead center, fills 85%+
    • Flat lay: bird's eye view, organized arrangement
    • Group: odd numbers (3 or 5), triangle composition
  5. Shadow types matter:

    • No shadow: Amazon/e-commerce requirements
    • Contact shadow: grounded but clean
    • Drop shadow: adds depth, professional
    • Reflection: tech, luxury, premium feel
  6. Material and texture — for detail shots, specify:

    • "visible leather grain and stitching"
    • "brushed metal finish with subtle reflections"
    • "soft fabric texture, thread detail visible"
  7. Platform compliance — when targeting a specific platform:

    • Amazon: pure white (RGB 255,255,255), no props/text/watermarks
    • Instagram: lifestyle context, visually appealing
    • Xiaohongshu: vertical format, aesthetic, text overlay space

Example: building a custom prompt

User request: "I need a hero shot of my leather wallet for Amazon"

result = product_photo(
    product_path="uploads/wallet.jpg",
    platform="amazon",
    prompt="premium leather bifold wallet, rich brown color, slight angle showing card slots",
)

The script automatically builds:

Transform this product image into a professional e-commerce photo.
Keep the product exactly as it is — preserve its shape, color, details, and branding.
premium leather bifold wallet, rich brown color, slight angle showing card slots.
Photography style: professional product hero shot, clean composition, studio lighting...
Background: pure white background #FFFFFF, clean, e-commerce standard, no shadows.

14. E-commerce image set guide

A complete product listing needs 7-9 images. Use product_photo_set() for automatic generation, or create individual shots:

PositionImage TypeStyleBackgroundPurpose
1Hero / packshotherowhitePrimary listing image
2LifestylelifestylelifestyleProduct in use/context
3Detail close-updetailstudioMaterial quality, craftsmanship
4Scale referencescalestudioSize in hand or next to known object
5Alternate angleherowhiteBack or side view
6PackagingpackagingstudioUnboxing experience
7Flat layflat_laytexturedArranged composition
8InfographicinfographicwhiteDimensions, specs, features
9Seasonalseasonal_*autoCampaign-specific

15. Error handling

The script returns structured results. Always check success:

result = product_photo(product_path="uploads/product.jpg")
if result["success"]:
    for img in result["images"]:
        print(f"Saved: {img['local_path']}")
else:
    print(f"Error: {result.get('error')}")

Common errors:

  • "File not found" — check the product_path
  • "Unsupported image format" — use JPG, PNG, or WebP
  • "Image too large" — max 10 MB
  • "Either a product image or a prompt is required" — provide product_path/product_url or prompt
  • "Unknown style/background" — check available presets in §7/§8