Install
$ agentstack add skill-moizibnyousaf-marketing-cli-higgsfield-product-photoshoot Open-source listing — not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
/higgsfield-product-photoshoot — Brand Product Image Generation
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.
When to use
- Any product visual with a specific output format: studio shot, Pinterest pin, hero banner, ad pack, carousel, model try-on
- User has a product photo and wants it adapted to a specific marketing context
- "make ads for my product", "make a hero banner", "create carousel images"
- "virtual try-on", "model wearing my jacket", "levitating product shot"
- Paid social creative packs (Meta, TikTok, Pinterest, Google Ads)
Route elsewhere if:
- No product, no brand context, just a generic image prompt →
image-gen(Gemini, free, faster) - User needs a branded video ad with an avatar →
higgsfield-generate(Marketing Studio) - User wants to train a reusable face identity →
higgsfield-soul-id - User needs general-purpose AI image/video generation →
higgsfield-generate
On Activation
- Read
brand/voice-profile.md,brand/visual-style.md, andbrand/creative-kit.mdif present. Use brand colors, aesthetic language, and platform preferences to inform mode selection and interview answers. - Check CLI:
higgsfield account status. If not on$PATH, surface install command. If session expired, prompt auth. - Run the pre-generation interview (see below) — at most 4 questions before submitting.
Optional dependency — Higgsfield account
This skill requires the @higgsfield/cli binary and a Higgsfield account.
Without the CLI installed, return a clear actionable error:
higgsfield CLI not found. Install with:
curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh
Then authenticate:
higgsfield auth login
Without an authed Higgsfield account, the CLI itself surfaces the auth prompt — no special handling needed in the skill.
Fallback for image generation only: if the user just needs a one-off image and doesn't have a Higgsfield account, route them to image-gen (Gemini, model gemini-3.1-flash-image-preview, free tier). The product-photoshoot mode enhancer and all product-specific modes require Higgsfield.
Step 0 — Bootstrap
Before any other command:
- If
higgsfieldis not on$PATH, install it:
``bash curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh ``
- If
higgsfield account statusfails withSession expired/Not authenticated, ask the user to runhiggsfield 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 gptimage2 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 \
--prompt "" \
[--image ]... \
[--count ] \
[--aspect_ratio ]
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
Anti-Patterns
| Anti-pattern | Why it fails | Instead | |---|---|---| | Calling higgsfield generate create gpt_image_2 --prompt ... directly | Bypasses the mode-specific prompt enhancer. Output quality for product shots is noticeably lower — wrong vocabulary, wrong structural guidance. | Always use higgsfield product-photoshoot create with a mode. The enhancer is the point of this skill. | | Asking more than 4 interview questions in a single message | Users stall. The interview is a funnel, not a form. | Max 4 short labeled-option questions per turn. Skip anything that's obvious from context or brand memory. | | Picking the wrong mode | product_shot for a Pinterest pin crops wrong, picks wrong aspect ratio. | Mode selection drives the enhancer's vocabulary. Use the tie-breaker rules in the Mode Selection section. | | Pasting the assembled prompt back to the user | They don't want the enhancer's output; they want the image URLs. | Deliver only URLs. | | Using a --mode value not in the table | The CLI rejects unknown mode strings. | Stay within the 10 documented modes. | | Routing here for a generic one-off image with no product | Overkill. Slower. Higgsfield account required. | Use image-gen (Gemini, free tier) for generic images without a product or brand mode. |
Attribution
Ported from higgsfield-ai/skills — MIT License, Copyright (c) 2026 Higgsfield AI. Adapted for mktg's drop-in contract on 2026-05-05.
Upstream version: 0.3.0 Upstream commit: 1dcfe2687c3a9092232bac55c2b6b9ae3fc717d7
Drift detection: if the upstream skill changes, re-run mktg-steal https://github.com/higgsfield-ai/skills to evaluate the diff.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: MoizIbnYousaf
- Source: MoizIbnYousaf/marketing-cli
- License: MIT
- Homepage: https://www.marketing-cli.com/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.