ads-photoshoot

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Ads Photoshoot — AI Product Photography

Ads Photoshoot — AI产品摄影

Transforms a product image or description into professional ad-ready photography in 5 distinct visual styles. Each style generates at two sizes: 1:1 (Meta/LinkedIn) and 9:16 (TikTok/Reels/Stories).
可将产品图片或描述转换为5种不同视觉风格的专业广告可用摄影作品。每种风格会生成两种尺寸:1:1(适用于Meta/LinkedIn)和9:16(适用于TikTok/Reels/Stories)。

Quick Reference

快速参考

CommandWhat it does
/ads photoshoot
Interactive: ask for product + styles
/ads photoshoot --styles studio floating
Generate only selected styles
/ads photoshoot --product shoe.jpg
Start with a product image file
/ads photoshoot --all-platforms
Generate all 5 sizes per style
命令功能
/ads photoshoot
交互式流程:询问产品信息及风格选择
/ads photoshoot --styles studio floating
仅生成指定风格的作品
/ads photoshoot --product shoe.jpg
从指定产品图片文件开始生成
/ads photoshoot --all-platforms
为每种风格生成全部5种尺寸的作品

Environment Setup

环境配置

bash
export GOOGLE_API_KEY="your-key"
bash
export GOOGLE_API_KEY="your-key"

See /ads generate for alternative providers

查看 /ads generate 了解其他可选服务商

undefined
undefined

Process

生成流程

Step 1: Collect Product Information

步骤1:收集产品信息

Ask (combine into one message):
  1. Product image: Path to product image file (local) OR product URL OR text description
    "Provide a product image path (e.g. ./product.jpg), a URL, or describe your product"
  2. Product description: What is it? Key features to highlight? (helps prompt quality)
  3. Styles to generate: Which of the 5 styles? (default: all 5)
    • Studio, Floating, Ingredient, In Use, Lifestyle
  4. Target platforms: Which platforms will these run on?
    • Determines output sizes (default: Meta + TikTok → 1:1 + 9:16)
一次性询问以下内容:
  1. 产品图片:本地产品图片文件路径、产品URL或文字描述
    "请提供产品图片路径(例如 ./product.jpg)、URL,或描述你的产品"
  2. 产品描述:产品是什么?有哪些需要突出的核心特性?(有助于提升提示词质量)
  3. 生成风格:选择5种风格中的哪些?(默认:全部5种)
    • Studio(棚拍)、Floating(悬浮)、Ingredient(原料展示)、In Use(使用场景)、Lifestyle(生活方式)
  4. 目标平台:这些素材将用于哪些平台?
    • 决定输出尺寸(默认:Meta + TikTok → 1:1 + 9:16)

Step 2: Load Brand Profile (Optional)

步骤2:加载品牌档案(可选)

Check for
brand-profile.json
in the current directory.
If found, extract for style injection:
  • colors.primary
    → inject into backgrounds and accent elements
  • aesthetic.mood_keywords
    → inject as atmosphere descriptors
  • target_audience
    → use for Lifestyle and In Use context
  • imagery.forbidden
    → exclude from all prompts
If not found, proceed with standard style templates.
检查当前目录下是否存在
brand-profile.json
文件。
如果找到,提取以下信息用于风格注入:
  • colors.primary
    → 融入背景和强调元素
  • aesthetic.mood_keywords
    → 作为氛围描述词
  • target_audience
    → 用于Lifestyle和In Use风格的场景构建
  • imagery.forbidden
    → 从所有提示词中排除相关元素
如果未找到,则使用标准风格模板生成。

Step 3: Check API Key

步骤3:检查API密钥

Verify the required environment variable is set before generating:
bash
python3 -c "
import os, sys
provider = os.environ.get('ADS_IMAGE_PROVIDER', 'gemini')
keys = {'gemini': 'GOOGLE_API_KEY', 'openai': 'OPENAI_API_KEY',
        'stability': 'STABILITY_API_KEY', 'replicate': 'REPLICATE_API_TOKEN'}
env_var = keys.get(provider, 'GOOGLE_API_KEY')
if not os.environ.get(env_var):
    print(f'Error: {env_var} not set (provider: {provider})', file=sys.stderr)
    sys.exit(1)
print(f'OK: {env_var} is set')
"
If this exits with code 1, show setup instructions from
~/.claude/skills/ads/references/image-providers.md
and stop.
生成前验证是否已设置所需环境变量:
bash
python3 -c "
import os, sys
provider = os.environ.get('ADS_IMAGE_PROVIDER', 'gemini')
keys = {'gemini': 'GOOGLE_API_KEY', 'openai': 'OPENAI_API_KEY',
        'stability': 'STABILITY_API_KEY', 'replicate': 'REPLICATE_API_TOKEN'}
env_var = keys.get(provider, 'GOOGLE_API_KEY')
if not os.environ.get(env_var):
    print(f'Error: {env_var} not set (provider: {provider})', file=sys.stderr)
    sys.exit(1)
print(f'OK: {env_var} is set')
"
如果该脚本退出码为1,显示
~/.claude/skills/ads/references/image-providers.md
中的配置说明并终止流程。

Step 4: Construct Prompts per Style

步骤4:为每种风格构建提示词

For each selected style, build the prompt using the template + product description + brand DNA.
针对每个选中的风格,使用模板+产品描述+品牌信息构建提示词。

Style 1: Studio

风格1:Studio(棚拍)

Clean, e-commerce style product shot.
Base template:
"[product description], professional product photography, clean white seamless
background, even studio lighting, soft drop shadow, high detail product focus,
ecommerce style, [brand.colors.primary] subtle accent reflections if applicable,
top-down or 3/4 angle, no distractions, catalog quality"
Composition: Centered, slight 3/4 angle or flat lay. Output sizes: 1080×1080, 1080×1920
简洁的电商风格产品照片。
基础模板:
"[产品描述], 专业产品摄影, 干净的白色无缝背景, 均匀的棚拍灯光, 柔和的投影, 高细节产品聚焦, 电商风格, [品牌主色调] 若适用则添加微妙的反光点缀, 俯视或3/4角度, 无干扰元素, 商品目录级质量"
构图: 居中,轻微3/4角度或平铺。 输出尺寸: 1080×1080, 1080×1920

Style 2: Floating

风格2:Floating(悬浮)

Dramatic levitation effect.
Base template:
"[product description] floating in mid-air, dramatic floating product shot,
[brand.colors.primary or brand.aesthetic.mood_keywords[0]] gradient background,
atmospheric shadow below product, levitation effect, product defying gravity,
clean modern aesthetic, high contrast, striking visual"
Composition: Product centered vertically, ample space above and below. Output sizes: 1080×1080, 1080×1920
富有冲击力的悬浮效果。
基础模板:
"[产品描述] 悬浮在空中, 富有冲击力的悬浮产品照片,
[品牌主色调或品牌氛围关键词第一个] 渐变背景,
产品下方的氛围阴影, 悬浮效果, 产品仿佛摆脱重力,
干净现代的美学风格, 高对比度, 极具视觉吸引力"
构图: 产品垂直居中,上下留有充足空间。 输出尺寸: 1080×1080, 1080×1920

Style 3: Ingredient

风格3:Ingredient(原料展示)

Flat lay with components.
Base template:
"[product description] centered flat lay, surrounded by its key ingredients
or materials artfully arranged, top-down overhead view, clean light background,
natural texture surface, product as hero element, ingredients scattered with
intentional negative space, editorial food photography style"
Composition: Top-down, product in center, ingredients fanning out. Output sizes: 1080×1080 (optimal for this style)
包含组件的平铺构图。
基础模板:
"[产品描述] 居中平铺, 周围精心布置其核心原料或材质,
俯视角度, 干净明亮的背景, 自然纹理的表面,
产品为核心元素, 原料分散布置并留有刻意的留白,
编辑级美食摄影风格"
构图: 俯视,产品居中,原料呈扇形散开。 输出尺寸: 1080×1080(该风格最优尺寸)

Style 4: In Use

风格4:In Use(使用场景)

Authentic usage context.
Base template:
"person's hands using [product description] in natural context, lifestyle
photography, focus on product-hand interaction, shallow depth of field,
warm natural window light, authentic not staged, [brand.target_audience.profession]
implied context, [brand.aesthetic.mood_keywords] atmosphere"
Composition: Hands prominent, product clearly identifiable, background soft-focus. Note: Hands only — no full face (avoids model release complications). Output sizes: 1080×1080, 1080×1920
真实的使用场景。
基础模板:
"人手在自然场景中使用[产品描述], 生活方式摄影,
聚焦产品与手的互动, 浅景深,
温暖的自然窗光, 真实而非摆拍,
[目标受众职业] 隐含场景, [品牌氛围关键词] 氛围"
构图: 手部突出,产品清晰可辨,背景虚化。 注意: 仅展示手部,不出现完整面部(避免模特授权问题)。 输出尺寸: 1080×1080, 1080×1920

Style 5: Lifestyle

风格5:Lifestyle(生活方式)

Aspirational full-context shot.
Base template:
"[product description] in aspirational lifestyle scene, [brand.target_audience.age_range]
demographic implied environment, [brand.target_audience.profession] context,
[brand.aesthetic.mood_keywords] atmosphere, golden hour or clean natural lighting,
editorial photography style, [brand.aesthetic.negative_space] composition,
product clearly visible and prominent"
Composition: Environmental context, product as hero element within the scene. Output sizes: 1080×1080, 1080×1920
具有感染力的完整场景照片。
基础模板:
"[产品描述] 置于具有感染力的生活场景中,
[目标受众年龄层] 对应的环境,
[目标受众职业] 场景,
[品牌氛围关键词] 氛围,
黄金时段或干净的自然光,
编辑级摄影风格,
[品牌留白风格] 构图,
产品清晰可见且为核心元素"
构图: 环境为背景,产品是场景中的核心元素。 输出尺寸: 1080×1080, 1080×1920

Step 5: Generate Images

步骤5:生成图像

For each style × size combination:
bash
python ~/.claude/skills/ads/scripts/generate_image.py \
  "[constructed prompt]" \
  --size [WxH] \
  --output ./product-photos/[style]/[product-slug]-[style]-[WxH].png \
  --json
Track results. If a generation fails, retry once with a simplified prompt.
针对每种风格×尺寸组合执行以下命令:
bash
python ~/.claude/skills/ads/scripts/generate_image.py \
  "[构建好的提示词]" \
  --size [宽x高] \
  --output ./product-photos/[风格]/[产品别名]-[风格]-[宽x高].png \
  --json
跟踪生成结果。若生成失败,使用简化提示词重试一次。

Step 6: Organize and Report

步骤6:整理与报告

Output directory structure:
./product-photos/
  studio/
    product-studio-1080x1080.png
    product-studio-1080x1920.png
  floating/
    product-floating-1080x1080.png
    product-floating-1080x1920.png
  ingredient/
    product-ingredient-1080x1080.png
  in-use/
    product-in-use-1080x1080.png
    product-in-use-1080x1920.png
  lifestyle/
    product-lifestyle-1080x1080.png
    product-lifestyle-1080x1920.png
Summary:
✓ Product photos generated: [N] images

  Studio:     ./product-photos/studio/ (2 sizes)
  Floating:   ./product-photos/floating/ (2 sizes)
  Ingredient: ./product-photos/ingredient/ (1 size — square only)
  In Use:     ./product-photos/in-use/ (2 sizes)
  Lifestyle:  ./product-photos/lifestyle/ (2 sizes)

  Estimated cost: [N] images × $0.067 = ~$[total]

  Best for:
  • Meta Feed → Studio (4:5) or Lifestyle (4:5)
  • TikTok/Reels → Floating (9:16) or In Use (9:16)
  • LinkedIn → Studio (1:1) or Lifestyle (1:1)
  • Google PMax → Studio (1:1) — crop to 1.91:1 after

  Run `/ads generate` to use these in a full campaign.
输出目录结构:
./product-photos/
  studio/
    product-studio-1080x1080.png
    product-studio-1080x1920.png
  floating/
    product-floating-1080x1080.png
    product-floating-1080x1920.png
  ingredient/
    product-ingredient-1080x1080.png
  in-use/
    product-in-use-1080x1080.png
    product-in-use-1080x1920.png
  lifestyle/
    product-lifestyle-1080x1080.png
    product-lifestyle-1080x1920.png
生成总结:
✓ 已生成产品照片:[N] 张

  Studio:     ./product-photos/studio/(2种尺寸)
  Floating:   ./product-photos/floating/(2种尺寸)
  Ingredient: ./product-photos/ingredient/(1种尺寸 — 仅正方形)
  In Use:     ./product-photos/in-use/(2种尺寸)
  Lifestyle:  ./product-photos/lifestyle/(2种尺寸)

  预估成本:[N] 张 × $0.067 = ~$[总计]

  平台适配建议:
  • Meta Feed → Studio(4:5)或 Lifestyle(4:5)
  • TikTok/Reels → Floating(9:16)或 In Use(9:16)
  • LinkedIn → Studio(1:1)或 Lifestyle(1:1)
  • Google PMax → Studio(1:1)— 生成后裁剪为1.91:1

  运行 `/ads generate` 可将这些素材用于完整广告活动。

Cost Estimate

成本预估

Before generating, show:
  • Number of styles selected × 2 sizes = total images
  • "$[N] images × $0.067 = ~$[total] (Gemini default)"
  • If >$0.50, ask for confirmation
生成前显示:
  • 选中风格数量 × 2 = 总图像数量
  • "$[N] 张 × $0.067 = ~$[总计](默认使用Gemini)"
  • 若预估成本超过$0.50,需确认是否继续

Platform Recommendations

平台推荐

StyleBest PlatformsRationale
StudioMeta Feed, LinkedIn, Google PMaxUniversal, clean, platform-safe
FloatingMeta Reels, TikTok, StoriesHigh visual impact on vertical placements
IngredientMeta Feed, PinterestWorks best as square; tells product story
In UseTikTok, Meta Reels, StoriesAuthentic, native-feeling content
LifestyleAll platformsAspirational, broad audience appeal
风格最佳适配平台理由
StudioMeta Feed、LinkedIn、Google PMax通用、简洁、符合平台规范
FloatingMeta Reels、TikTok、Stories垂直布局下视觉冲击力强
IngredientMeta Feed、Pinterest正方形效果最佳;传递产品故事
In UseTikTok、Meta Reels、Stories真实自然,贴近原生内容
Lifestyle所有平台具有感染力,受众广泛

Reference Files

�考文件

  • ~/.claude/skills/ads/references/image-providers.md
    — API setup and pricing
  • ~/.claude/skills/ads/references/brand-dna-template.md
    — Brand injection schema
  • ~/.claude/skills/ads/references/meta-creative-specs.md
    — Safe zone for 9:16
  • ~/.claude/skills/ads/references/tiktok-creative-specs.md
    — Safe zone constraints
  • ~/.claude/skills/ads/references/image-providers.md
    — API配置及定价
  • ~/.claude/skills/ads/references/brand-dna-template.md
    — 品牌风格注入模板
  • ~/.claude/skills/ads/references/meta-creative-specs.md
    — 9:16尺寸安全区域规范
  • ~/.claude/skills/ads/references/tiktok-creative-specs.md
    — TikTok平台安全区域限制