ads-photoshoot
- Repo stars 5,641
- Author repo claude-ads
Ads Photoshoot: AI Product Photography
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).
Quick Reference
| Command | What 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 |
Environment Setup
Requires banana-claude (v1.4.1+) with nanobanana-mcp configured.
Run /banana setup to configure API key and MCP.
Process
Step 1: Collect Product Information
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)
Step 2: Load Brand Profile (Optional)
Check for brand-profile.json in the current directory.
If found, extract for style injection:
colors.primary→ inject into backgrounds and accent elementsaesthetic.mood_keywords→ inject as atmosphere descriptorstarget_audience→ use for Lifestyle and In Use contextimagery.forbidden→ exclude from all prompts
If not found, proceed with standard style templates.
Step 3: Verify banana-claude
Verify banana-claude is installed (run /banana setup to check). If not installed,
display setup instructions and exit.
Step 4: Construct Prompts per Style
For each selected style, build the prompt using the template + product description + brand DNA.
Style 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
Style 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
Style 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). Also generate 9:16 vertical for TikTok/Reels/Stories placements.
Style 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
Style 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
Iterative Refinement
For iterative refinement: if initial generation doesn't match brand expectations, adjust the prompt by specifying: lighting direction, color temperature, background texture, or product angle before regenerating.
Step 5: Generate Images
Domain mode selection per style:
- Use banana Product mode for Studio, Floating, and Ingredient styles
- Use banana Editorial mode for In Use and Lifestyle styles
- Set resolution to 2K (default) for all generations
Aspect ratio setup: Use banana MCP set_aspect_ratio before each generation:
- For 1080x1080: set ratio to 1:1
- For 1080x1920: set ratio to 9:16
For each style x size combination, use /banana generate with the constructed
prompt, selected domain mode, and correct aspect ratio. Save output to
./product-photos/[style]/[product-slug]-[style]-[WxH].png.
Track results. If a generation fails, retry once with a simplified prompt.
Step 6: Organize and Report
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
product-ingredient-1080x1920.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/ (2 sizes)
In Use: ./product-photos/in-use/ (2 sizes)
Lifestyle: ./product-photos/lifestyle/ (2 sizes)
Cost: see ~/.banana/costs.json for total spend
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.
Cost Estimate
Before generating, show:
- Number of styles selected x 2 sizes = total images
- Estimated cost based on banana pricing tiers
- If >$0.50, ask for confirmation
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 |
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
- Fluxly category
- AI
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @AgriciDaniel · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Guided setup
- External API key
- Required · Vendor-specific
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Write / modify
- Detected network behavior
- External requests
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. Process
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"
Check for brand-profile.json in the current directory. If found, extract for style injection: colors.primary → inject into backgrounds and accent elements
Verify banana-claude is installed (run /banana setup to check). If not installed, display setup instructions and exit.
For each selected style, build the prompt using the template + product description + brand DNA. Style 1: Studio Clean, e-commerce style product shot.
Domain mode selection per style: Use banana Product mode for Studio, Floating, and Ingredient styles Use banana Editorial mode for In Use and Lifestyle styles
# Ads Photoshoot: AI Product Photography
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).
## Quick Reference
| Command | What 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 |
## Environment Setup
Requires banana-claude (v1.4.1+) with nanobanana-mcp configured.
Run `/banana setup` to configure API key and MCP.
## Process
### Step 1: Collect Product Information
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)
### Step 2: Load Brand Profile (Optional)
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.
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Quick Reference → Environment Setup → Process → Step 1: Collect Product Information → Step 2: Load Brand Profile (Optional) → Step 3: Verify banana-claude
terms -> Product image · Product description · Styles to generate · Target platforms · Base template · Composition · Output sizes · Note
files/cmd -> /ads photoshoot · /ads photoshoot --styles studio floating · /ads photoshoot --product shoe.jpg · /ads photoshoot --all-platforms · /banana setup · brand-profile.json · colors.primary · aesthetic.moodkeywords
body sha256 -> 6036ae46eee7
Decide Fit First
Design Intent
How To Use It
Boundaries And Review