Product Photoshoot
Brand-image generation via the higgsfield product-photoshoot create command. The CLI calls a backend prompt enhancer that holds mode-specific photography vocabulary and structural templates, then submits to gpt_image_2 and returns image URLs.
Step 0 — Bootstrap
Before any other command:
- If
higgsfield is not on $PATH, install it:curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh
- If
higgsfield account status fails with Session expired / Not authenticated, ask the user to run higgsfield auth login (interactive) and wait for confirmation.
UX Rules
- Be concise. Print only image URLs in the final reply.
- Detect language, respond in it. Mode names and CLI flags stay English.
- Ask at most 4 short questions before submitting. Use labeled options, never open-ended.
- Skip questions whose answer is obvious from context (uploaded image, prior turn, brand memory).
- Never write the gpt_image_2 prompt yourself — backend assembles it.
- Polling is silent. Wait until URLs are ready, then deliver.
Modes
| Mode |
When user wants… |
product_shot |
Product on neutral / studio / catalog background |
lifestyle_scene |
Product in real-world environment, hands, action, atmosphere |
closeup_product_with_person |
Tight crop with hands / partial face — beauty application, holding, demonstrating |
moodboard_pin |
Vertical 2:3 Pinterest-native aesthetic, moodboard feel |
hero_banner |
Wide-format website / email / campaign header |
social_carousel |
3–10 connected slides for IG / LinkedIn / Facebook |
ad_creative_pack |
Coordinated pack of static ad variants for Meta / TikTok / Pinterest / Google Ads |
virtual_model_tryout |
Product worn or used by an AI-rendered model |
conceptual_product |
Surreal / CGI-style / levitating / splash / sculptural product |
restyle |
Transform an existing image's aesthetic, mood, or seasonal context |
Mode selection
Pick by intent, not surface keyword. When two modes could apply, prefer the more specific one.
- product + neutral / clean / white / studio / catalog / Shopify →
product_shot
- product + scene / in use / kitchen / outdoor / cafe / gym →
lifestyle_scene
- hands holding / face with product / beauty application / demonstrating →
closeup_product_with_person
- Pinterest, pin, vertical pin →
moodboard_pin
- hero, banner, website header, landing page, email header, wide format →
hero_banner
- carousel, slide post, multi-slide, swipeable →
social_carousel
- ads, ad pack, paid social, Meta / TikTok / Pinterest ads →
ad_creative_pack
- model wearing, virtual try-on, on body, fashion shoot, lookbook →
virtual_model_tryout
- levitating, floating, splash, frozen motion, surreal, CGI, sculptural →
conceptual_product
- modify EXISTING image's aesthetic, mood, season — without changing subject →
restyle
Tie-breakers:
- "Pinterest pin of my product on a kitchen counter" →
moodboard_pin (Pinterest is the platform)
- "Hero banner showing my product in use" →
hero_banner (banner format wins)
- "Carousel of my product in different scenes" →
social_carousel (multi-slide wins)
- "Closeup of person applying my serum" →
closeup_product_with_person (specific genre wins)
Pre-generation interview
Ask 3–4 short questions before submitting. Always labeled options, never open-ended. Skip a question whose answer is obvious from context.
Type A — uploaded a product photo, "make me images / photoshoots"
- How many?
[1 / 3 / 5]
- What style/mood?
[Clean studio / Lifestyle / Conceptual / With a model / Other]
- Where will you use them?
[Shopify / Instagram / Pinterest / Paid ads / Website hero]
- Brand colors to match? (skip if obvious)
Type B — uploaded a product photo, named a use case
E.g. "make ads for my product", "make a Pinterest pin", "make a hero banner". Mode is obvious. Ask only the gaps:
- How many? (if multi-output mode)
- What's the offer / mood / hook?
- Anything in particular to emphasize?
Type C — text only, no product photo
- Can you upload a product photo? (preferred — much higher fidelity)
- If not, describe the product — category, packaging, color, distinctive features.
- What style? (same options as Type A)
- Where will you use it?
Type D — uploaded existing image, "redo / change vibe / different version"
→ restyle
- What aesthetic?
[Clean girl / Cottagecore / Quiet luxury / Dark academia / Y2K / Other]
- Seasonal context?
[Christmas / Valentine's / Halloween / Black Friday / None]
- What to preserve, what to change? (only if ambiguous)
Type E — model wearing a product (fashion, accessories)
→ virtual_model_tryout
- Model archetype? (suggest 2–3 based on brand audience)
- Environment?
[Studio clean / Outdoor natural / Street style / Editorial / Home cozy]
- Framing?
[Full body / Three-quarter / Waist up / Closeup on product area]
Type F — vague request, unclear subject
E.g. "make me something cool for my brand".
- What product or topic?
- Goal?
[Sell on a marketplace / Build awareness / Run paid ads / Update website]
- Upload a reference image?
After answers → return to the relevant Type A–E.
Generation
Single command. Backend assembles the final prompt and submits to gpt_image_2. URLs print on stdout.
higgsfield product-photoshoot create \
--mode <mode> \
--prompt "<short user-intent description from interview answers>" \
[--image <path-or-upload-id>]... \
[--count <1-10>] \
[--aspect_ratio <override>]
Examples:
higgsfield product-photoshoot create \
--mode lifestyle_scene \
--prompt "bottle of cold-brew on a sunlit kitchen counter, IG feed" \
--image bottle.jpg \
--count 3
higgsfield product-photoshoot create \
--mode moodboard_pin \
--prompt "vertical pin for my candle brand, cottagecore mood" \
--image candle.jpg
higgsfield product-photoshoot create \
--mode restyle \
--prompt "Christmas version, quiet-luxury aesthetic" \
--image existing-shot.jpg
Image inputs
--image accepts a local file path (auto-uploaded) OR an existing upload UUID. Repeat the flag for multiple references.
Multi-variant
--count 3 returns 3 distinct image URLs. Backend asks the enhancer to vary preset, lighting, angle, and palette across variants — they will not be paraphrased copies of one another.
For social_carousel and ad_creative_pack, count = number of slides / variants in the pack. Backend locks the visual system across all slides automatically.
Aspect ratio
Backend picks a sensible default per mode. Override with --aspect_ratio only if the user explicitly asks for a different one. Allowed values: 1:1, 4:5, 5:4, 3:4, 4:3, 2:3, 3:2, 9:16, 16:9.
Resolution
Use 2k for every product-photoshoot job.
Delivering results
Print the image URLs as a short bulleted list. No JSON, no IDs, no internal model names, no enhanced prompt text. If a job failed, mention it briefly with the failure status.
3 lifestyle shots ready:
- https://cdn.higgsfield.ai/.../job_abc.jpg
- https://cdn.higgsfield.ai/.../job_def.jpg
- https://cdn.higgsfield.ai/.../job_ghi.jpg
What this skill does NOT do
- Does not write gpt_image_2 prompts directly. Backend owns prompt assembly.
- Does not auto-pick a different image-gen model. Always
gpt_image_2.
- Does not replace
higgsfield-generate Marketing Studio for branded video / avatar workflows.
- Does not replace
higgsfield-generate for raw text-to-image without a product or brand context.
Common mistakes to avoid
- Asking more than 4 interview questions in a single message.
- Picking the wrong mode (e.g.
product_shot when the user wants a Pinterest pin).
- Calling
higgsfield generate create gpt_image_2 --prompt ... directly instead of higgsfield product-photoshoot create — bypasses the prompt enhancer and produces noticeably worse output.
- Pasting the assembled prompt back to the user — they want the URLs.
- Using a
--mode value not in the table above.
1---2name: higgsfield-product-photoshoot3description: Generate brand-quality product images through Higgsfield product-photoshoot prompt enhancement on GPT Image 2 / gpt_image_2. Entry point for professional brand/product visuals. Use when: "product photo", "studio shot", "lifestyle image", "Pinterest pin", "hero/banner", "carousel", "ad creative", "Meta ads", "virtual try-on", "model wearing", "person holding product", "closeup with hands", "levitating/floating/splash product", "CGI/surreal product", "restyle", "seasonal/aesthetic variation", or any product, brand, or paid-social creative. Modes: product_shot, lifestyle_scene, closeup_product_with_person, moodboard_pin, hero_banner, social_carousel, ad_creative_pack, virtual_model_tryout, conceptual_product, restyle. Backend assembles the final prompt; never freehand it. NOT for: no-product text-to-image (use higgsfield-generate), branded avatar video (use higgsfield-generate Marketing Studio), marketplace listing cards (use higgsfield-marketplace-cards), Soul Character training (use higgsfield-soul-id).4---5
6# Product Photoshoot
7
8Brand-image generation via the `higgsfield product-photoshoot create` command. The CLI calls a backend prompt enhancer that holds mode-specific photography vocabulary and structural templates, then submits to `gpt_image_2` and returns image URLs.
9
10## Step 0 — Bootstrap
11
12Before any other command:
13
141. If `higgsfield` is not on `$PATH`, install it:
15 ```bash
16 curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh
17 ```
182. If `higgsfield account status` fails with `Session expired` / `Not authenticated`, ask the user to run `higgsfield auth login` (interactive) and wait for confirmation.
19
20## UX Rules
21
221. Be concise. Print only image URLs in the final reply.
232. Detect language, respond in it. Mode names and CLI flags stay English.
243. Ask at most 4 short questions before submitting. Use labeled options, never open-ended.
254. Skip questions whose answer is obvious from context (uploaded image, prior turn, brand memory).
265. Never write the gpt_image_2 prompt yourself — backend assembles it.
276. Polling is silent. Wait until URLs are ready, then deliver.
28
29## Modes
30
31| Mode | When user wants… |
32|---|---|
33| `product_shot` | Product on neutral / studio / catalog background |
34| `lifestyle_scene` | Product in real-world environment, hands, action, atmosphere |
35| `closeup_product_with_person` | Tight crop with hands / partial face — beauty application, holding, demonstrating |
36| `moodboard_pin` | Vertical 2:3 Pinterest-native aesthetic, moodboard feel |
37| `hero_banner` | Wide-format website / email / campaign header |
38| `social_carousel` | 3–10 connected slides for IG / LinkedIn / Facebook |
39| `ad_creative_pack` | Coordinated pack of static ad variants for Meta / TikTok / Pinterest / Google Ads |
40| `virtual_model_tryout` | Product worn or used by an AI-rendered model |
41| `conceptual_product` | Surreal / CGI-style / levitating / splash / sculptural product |
42| `restyle` | Transform an existing image's aesthetic, mood, or seasonal context |
43
44## Mode selection
45
46Pick by intent, not surface keyword. When two modes could apply, prefer the more specific one.
47
48- product + neutral / clean / white / studio / catalog / Shopify → `product_shot`
49- product + scene / in use / kitchen / outdoor / cafe / gym → `lifestyle_scene`
50- hands holding / face with product / beauty application / demonstrating → `closeup_product_with_person`
51- Pinterest, pin, vertical pin → `moodboard_pin`
52- hero, banner, website header, landing page, email header, wide format → `hero_banner`
53- carousel, slide post, multi-slide, swipeable → `social_carousel`
54- ads, ad pack, paid social, Meta / TikTok / Pinterest ads → `ad_creative_pack`
55- model wearing, virtual try-on, on body, fashion shoot, lookbook → `virtual_model_tryout`
56- levitating, floating, splash, frozen motion, surreal, CGI, sculptural → `conceptual_product`
57- modify EXISTING image's aesthetic, mood, season — without changing subject → `restyle`
58
59Tie-breakers:
60- "Pinterest pin of my product on a kitchen counter" → `moodboard_pin` (Pinterest is the platform)
61- "Hero banner showing my product in use" → `hero_banner` (banner format wins)
62- "Carousel of my product in different scenes" → `social_carousel` (multi-slide wins)
63- "Closeup of person applying my serum" → `closeup_product_with_person` (specific genre wins)
64
65## Pre-generation interview
66
67Ask 3–4 short questions before submitting. Always labeled options, never open-ended. Skip a question whose answer is obvious from context.
68
69### Type A — uploaded a product photo, "make me images / photoshoots"
70
711. How many? `[1 / 3 / 5]`
722. What style/mood? `[Clean studio / Lifestyle / Conceptual / With a model / Other]`
733. Where will you use them? `[Shopify / Instagram / Pinterest / Paid ads / Website hero]`
744. Brand colors to match? (skip if obvious)
75
76### Type B — uploaded a product photo, named a use case
77
78E.g. "make ads for my product", "make a Pinterest pin", "make a hero banner". Mode is obvious. Ask only the gaps:
79
801. How many? (if multi-output mode)
812. What's the offer / mood / hook?
823. Anything in particular to emphasize?
83
84### Type C — text only, no product photo
85
861. Can you upload a product photo? (preferred — much higher fidelity)
872. If not, describe the product — category, packaging, color, distinctive features.
883. What style? (same options as Type A)
894. Where will you use it?
90
91### Type D — uploaded existing image, "redo / change vibe / different version"
92
93→ `restyle`
94
951. What aesthetic? `[Clean girl / Cottagecore / Quiet luxury / Dark academia / Y2K / Other]`
962. Seasonal context? `[Christmas / Valentine's / Halloween / Black Friday / None]`
973. What to preserve, what to change? (only if ambiguous)
98
99### Type E — model wearing a product (fashion, accessories)
100
101→ `virtual_model_tryout`
102
1031. Model archetype? (suggest 2–3 based on brand audience)
1042. Environment? `[Studio clean / Outdoor natural / Street style / Editorial / Home cozy]`
1053. Framing? `[Full body / Three-quarter / Waist up / Closeup on product area]`
106
107### Type F — vague request, unclear subject
108
109E.g. "make me something cool for my brand".
110
1111. What product or topic?
1122. Goal? `[Sell on a marketplace / Build awareness / Run paid ads / Update website]`
1133. Upload a reference image?
114
115After answers → return to the relevant Type A–E.
116
117## Generation
118
119Single command. Backend assembles the final prompt and submits to `gpt_image_2`. URLs print on stdout.
120
121```bash
122higgsfield product-photoshoot create \
123 --mode <mode> \
124 --prompt "<short user-intent description from interview answers>" \
125 [--image <path-or-upload-id>]... \
126 [--count <1-10>] \
127 [--aspect_ratio <override>]
128```
129
130Examples:
131
132```bash
133higgsfield product-photoshoot create \
134 --mode lifestyle_scene \
135 --prompt "bottle of cold-brew on a sunlit kitchen counter, IG feed" \
136 --image bottle.jpg \
137 --count 3
138```
139
140```bash
141higgsfield product-photoshoot create \
142 --mode moodboard_pin \
143 --prompt "vertical pin for my candle brand, cottagecore mood" \
144 --image candle.jpg
145```
146
147```bash
148higgsfield product-photoshoot create \
149 --mode restyle \
150 --prompt "Christmas version, quiet-luxury aesthetic" \
151 --image existing-shot.jpg
152```
153
154## Image inputs
155
156`--image` accepts a local file path (auto-uploaded) OR an existing upload UUID. Repeat the flag for multiple references.
157
158## Multi-variant
159
160`--count 3` returns 3 distinct image URLs. Backend asks the enhancer to vary preset, lighting, angle, and palette across variants — they will not be paraphrased copies of one another.
161
162For `social_carousel` and `ad_creative_pack`, count = number of slides / variants in the pack. Backend locks the visual system across all slides automatically.
163
164## Aspect ratio
165
166Backend picks a sensible default per mode. Override with `--aspect_ratio` only if the user explicitly asks for a different one. Allowed values: `1:1`, `4:5`, `5:4`, `3:4`, `4:3`, `2:3`, `3:2`, `9:16`, `16:9`.
167
168## Resolution
169
170Use `2k` for every product-photoshoot job.
171
172## Delivering results
173
174Print the image URLs as a short bulleted list. No JSON, no IDs, no internal model names, no enhanced prompt text. If a job failed, mention it briefly with the failure status.
175
176```
1773 lifestyle shots ready:
178- https://cdn.higgsfield.ai/.../job_abc.jpg
179- https://cdn.higgsfield.ai/.../job_def.jpg
180- https://cdn.higgsfield.ai/.../job_ghi.jpg
181```
182
183## What this skill does NOT do
184
185- Does not write gpt_image_2 prompts directly. Backend owns prompt assembly.
186- Does not auto-pick a different image-gen model. Always `gpt_image_2`.
187- Does not replace `higgsfield-generate` Marketing Studio for branded video / avatar workflows.
188- Does not replace `higgsfield-generate` for raw text-to-image without a product or brand context.
189
190## Common mistakes to avoid
191
192- Asking more than 4 interview questions in a single message.
193- Picking the wrong mode (e.g. `product_shot` when the user wants a Pinterest pin).
194- Calling `higgsfield generate create gpt_image_2 --prompt ...` directly instead of `higgsfield product-photoshoot create` — bypasses the prompt enhancer and produces noticeably worse output.
195- Pasting the assembled prompt back to the user — they want the URLs.
196- Using a `--mode` value not in the table above.