ads-photoshoot
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAds 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
快速参考
| Command | What it does |
|---|---|
| Interactive: ask for product + styles |
| Generate only selected styles |
| Start with a product image file |
| Generate all 5 sizes per style |
| 命令 | 功能 |
|---|---|
| 交互式流程:询问产品信息及风格选择 |
| 仅生成指定风格的作品 |
| 从指定产品图片文件开始生成 |
| 为每种风格生成全部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 了解其他可选服务商
undefinedundefinedProcess
生成流程
Step 1: Collect Product Information
步骤1:收集产品信息
Ask (combine into one message):
- 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"
- Product description: What is it? Key features to highlight? (helps prompt quality)
- Styles to generate: Which of the 5 styles? (default: all 5)
- Studio, Floating, Ingredient, In Use, Lifestyle
- Target platforms: Which platforms will these run on?
- Determines output sizes (default: Meta + TikTok → 1:1 + 9:16)
一次性询问以下内容:
- 产品图片:本地产品图片文件路径、产品URL或文字描述
"请提供产品图片路径(例如 ./product.jpg)、URL,或描述你的产品"
- 产品描述:产品是什么?有哪些需要突出的核心特性?(有助于提升提示词质量)
- 生成风格:选择5种风格中的哪些?(默认:全部5种)
- Studio(棚拍)、Floating(悬浮)、Ingredient(原料展示)、In Use(使用场景)、Lifestyle(生活方式)
- 目标平台:这些素材将用于哪些平台?
- 决定输出尺寸(默认:Meta + TikTok → 1:1 + 9:16)
Step 2: Load Brand Profile (Optional)
步骤2:加载品牌档案(可选)
Check for in the current directory.
brand-profile.jsonIf found, extract for style injection:
- → inject into backgrounds and accent elements
colors.primary - → inject as atmosphere descriptors
aesthetic.mood_keywords - → use for Lifestyle and In Use context
target_audience - → exclude from all prompts
imagery.forbidden
If not found, proceed with standard style templates.
检查当前目录下是否存在 文件。
brand-profile.json如果找到,提取以下信息用于风格注入:
- → 融入背景和强调元素
colors.primary - → 作为氛围描述词
aesthetic.mood_keywords - → 用于Lifestyle和In Use风格的场景构建
target_audience - → 从所有提示词中排除相关元素
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
and stop.
~/.claude/skills/ads/references/image-providers.md生成前验证是否已设置所需环境变量:
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.mdStep 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 \
--jsonTrack 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.pngSummary:
✓ 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
平台推荐
| Style | Best Platforms | Rationale |
|---|---|---|
| Studio | Meta Feed, LinkedIn, Google PMax | Universal, clean, platform-safe |
| Floating | Meta Reels, TikTok, Stories | High visual impact on vertical placements |
| Ingredient | Meta Feed, Pinterest | Works best as square; tells product story |
| In Use | TikTok, Meta Reels, Stories | Authentic, native-feeling content |
| Lifestyle | All platforms | Aspirational, broad audience appeal |
| 风格 | 最佳适配平台 | 理由 |
|---|---|---|
| Studio | Meta Feed、LinkedIn、Google PMax | 通用、简洁、符合平台规范 |
| Floating | Meta Reels、TikTok、Stories | 垂直布局下视觉冲击力强 |
| Ingredient | Meta Feed、Pinterest | 正方形效果最佳;传递产品故事 |
| In Use | TikTok、Meta Reels、Stories | 真实自然,贴近原生内容 |
| Lifestyle | 所有平台 | 具有感染力,受众广泛 |
Reference Files
�考文件
- — API setup and pricing
~/.claude/skills/ads/references/image-providers.md - — Brand injection schema
~/.claude/skills/ads/references/brand-dna-template.md - — Safe zone for 9:16
~/.claude/skills/ads/references/meta-creative-specs.md - — Safe zone constraints
~/.claude/skills/ads/references/tiktok-creative-specs.md
- — API配置及定价
~/.claude/skills/ads/references/image-providers.md - — 品牌风格注入模板
~/.claude/skills/ads/references/brand-dna-template.md - — 9:16尺寸安全区域规范
~/.claude/skills/ads/references/meta-creative-specs.md - — TikTok平台安全区域限制
~/.claude/skills/ads/references/tiktok-creative-specs.md