make-product-photos
Use when the marketer says: studio photos of my product without a shoot, product photos for my store page, packshots on white, lifestyle or on-model shots, photos for the new colourway, fresh product imagery for ads, photos for our launch page, our packaging changed — redo the photos, I have no phot…
Install / Use
npx skills add gooseworks-ai/goose-skills --skill make-product-photosInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
MarketingSupported Platforms
Our assessment of make-product-photos
make-product-photos scores 86/100 on our quality scale, 375th of 560 Marketing skills we index.
Its SKILL.md is 15 KB long, well organised into 17 sections and no code examples: a thorough specification that gives an agent plenty to work with.
With 1,222 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 33 days ago, so make-product-photos is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
make-product-photos compared with similar skills
All 4 of these similar skills score higher than make-product-photos; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| make-product-photos (this skill)by gooseworks-ai | 86 | 1.2k | 33d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 102.4k | today | CLAUDE.md |
| LocalAIby mudler | 100 | 50.0k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 33d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 33d ago | SKILL.md |
Frequently asked questions
- How do I install make-product-photos?
- Run
npx skills add gooseworks-ai/goose-skills --skill make-product-photos. The install tabs above show the steps for each supported agent. - Which AI agents does make-product-photos work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is make-product-photos safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is make-product-photos still maintained?
- The repository was last updated 33 days ago, so make-product-photos is actively maintained.
Skill content
View source on GitHubname: make-product-photos description: >- Use when the marketer says: studio photos of my product without a shoot, product photos for my store page, packshots on white, lifestyle or on-model shots, photos for the new colourway, fresh product imagery for ads, photos for our launch page, our packaging changed — redo the photos, I have no photographer. Delivers store-ready product photos generated from the brand's real product photos: a shot list built from the page slots (hero, alt angle, scale, detail, in use, lifestyle, on-model), only real photos of this product as references, matched to the brand's photography, every shot checked against the real product for shape, parts, logo, text, colour, finish, scale and honest representation, with a keep / maybe / reject verdict and a page order. The human picks the keepers. Never uploads to a store, never shows a size, part, feature or result the product lacks. Not for ads with text, infographics or screenshots — make-static-ads; not for marketplace listing sets (not covered yet).
make-product-photos
The engine composes, generates, judges and retries. This playbook is the e-commerce creative director around it: it decides which pictures the page needs, curates which real photos the engine sees, turns each shot into a precise prompt, holds every scene to what the product physically is, checks each output against the real product, and keeps the catalogue looking like one shoot.
What you get
- A shot list from the surface (store page, ads, social, email, launch page), each shot with its slot, composition, light, scene and ratio — agreed before anything is made.
- A house-style card derived from the brand's existing photos (when they can be seen), confirmed once and saved.
- The photo set as the page it fills: each photo with its use, the engine's status and score, this playbook's verdict (keep / maybe / reject + named reason), and who checked it (by eye, or engine only with a checklist for you).
- "What we could not make and why", and the credits actually charged.
Before you start
Hard rules:
- Honesty: a scene may show only what the product physically is and does — its size, contents, finish, colour and how it is used — from the product record, the real photos and the human's confirmation. Never a result unless it is a signed-off claim (
../../../skills/marketing/claims-gate/SKILL.md), never a feature it lacks (references/fit-and-honesty.md§2 is the one list). - References: only real photos of this exact product, size and colour; never text graphics, other sizes, duplicates or earlier generated images.
- Money: nothing generates before the marketer's yes to the engine's quotes, shown one by one exactly as given — never your own sum (
../../../skills/marketing/spend-gate/SKILL.md, branch A); the hero runs first; a re-shoot is quoted again. - People: any shot with a person or a body part (hands included) needs the human's own attestation; no real likeness; no children.
- Keepers: only the human's picks are approved into the brand kit; nothing is uploaded to a store.
- Honest review (
../../../skills/marketing/honest-review/SKILL.md) and plain words: never name a playbook, tool, id, model or vendor to the marketer.
Setup:
- Workspace: every file (
brand/photo-style.md, theads/batches/request lines) uses the brand coworker scope (scope: {type: "agent", agent_id: <coworker_agent_id from the brand_read list>}); no coworker → the default workspace with every path prefixedbrands/<brand-slug>/, and tell the human. - Connection. No
gooseworks:tools (after onegooseworks:tools_loadfor a missing group:brand,media,files) → say only: "Connect GooseWorks first — I make your product photos through it." gooseworks:get_startedwithwants: "image"and the marketer's words (there is no photos value); its answer settles setup and the brand only — a card → wait for the press, then Step 1 (this is product photography, not ads).gooseworks:account_whoamionce:features.product_photoson, credits available.- Two modes, decided now:
- Can see images (a shell host downloads the reference photos and outputs and views them): derive the style card, check outputs by eye.
- Cannot see images (chat hosts get links, not pixels): no style card is derived — the marketer picks their best current hero as the anchor; outputs are compared field by field against the reference's automatic read (Step 7) and labelled "not checked by eye".
- Mode: new product photos · new colourway · seasonal refresh (lifestyle only; the hero never changes) · imagery request from the ads side (
Product imagery needed: for make-product-photos · …lines inads/batches/*.mdin the brand workspace; answer under each:Product imagery ready: <photo links> · <YYYY-MM-DD>) · packaging changed (retire and reshoot) · pre-launch with only a render (Step 1).
Steps
1. Fit check — can the studio photograph this honestly?
Reads: gooseworks:brand_read lean (sections: ["summary","kit","products","learnings"]; product_ids for the full record incl. description, notes, ai_creative_notes, listed_at) — a lean read returns every must and dont (photo "Don't …" rules, the claims sign-off); the saved house-style card (brand/photo-style.md, Step 3); kit.brandType; the product's type. Load references/fit-and-honesty.md §1.
- Map to
apparel/beauty/cpg; hard goods →cpgwith the risk said; electronics, furniture, jewellery, eyewear → lifestyle only or a real shoot; food service, hospitality, real estate → decline. - Software, apps, services: one line — "this makes photos of physical products; screenshots and mockups are made as ad graphics instead" — and ask once whether there is a physical item (device, packaging, merch).
- Pre-launch, render only: with the human's yes, create the product if missing (
gooseworks:brand_updateproducts) and add the render as a product photo (Step 2, "getting a new real image in"; tag itrender; it becomes the kit hero only if the human chooses); the render itself is the honest studio hero, unaltered; generate lifestyle only, at the render's angle, no screens or app UI; label the set "pre-production, render-based" and tell the human to caption launch-page images as renderings; ask for CAD exports for other angles; keep it out of the ad kit unless the human chooses.
2. Curate the real photos — the biggest lever
Run atoms/source-audit/ATOM.md. Reads: the product's photos (gooseworks:media_list scope: "product"; media_analyze read; your own eyes in "can see" mode). Writes: the reference inventory.
- Sort every photo: product-only, this size / colour (usable) · text graphic or claim overlay (never a reference) · other size, width or variant · duplicate (same
content_revision— it takes the most suspicious class of any copy) · possibly generated (an earlier GooseWorks output — match againstphotos_readoutputs of every status bymedia_asset_id/final_image_urland the full kit's generated image URLs — or a generator filename such ashf_…,pomelli-image,dalle,mj_,Gemini_Generated_Image,ChatGPT Image,firefly,leonardo).source.type: brand_catalogonly means "came from the store" — stores hold AI images too (for example, a watch-band brand's newest colourways). When photos are unaudited, the product is newly listed, or no original filename is visible (re-hostedproduct-N-Mcopies), ask "were any of these made with an AI image tool?" - Getting a new real image in (a missing angle, new packaging, a render, a colourway's photo), always on the human's yes:
atoms/source-audit/ATOM.md§8. An upload becomes the product's hero in the brand kit only when the human says this photo should be the main image; new packaging → replace the product's photos and archive old approved outputs with no reason (Step 9). - More than one size or format and no variants → ask "which size does this page sell?" first.
- Analysis
blocked_budgetor empty → "unaudited": ask the human what each photo shows. - Rights: the catalogue photos are marked unverified — one line: "these are yours to use?"
- Dimensions:
notes,ai_creative_notes, the label (OCR is a hint, not ground truth), or ask. - Offer only the slots the usable photos support; for each missing one, name the unlock ("a phone photo of the back on a white sheet"; pre-launch: "export the back view from CAD") and a substitute (e.g. the hero in a second crop).
3. House style
Load references/shot-list-and-surfaces.md §3. A saved card (brand/photo-style.md in the brand workspace, or the brand document "Photo house style — <Brand> — <date>") → show it, ask "still right?", use it in both host types, and save the changed version if it changes. No saved card and "can see": derive the card from the brand's existing product photography and approved earlier outputs (gooseworks:photos_read status: "approved"), ask "match or deliberately upgrade?", confirm it once. "Cannot see": the marketer's chosen anchor hero plus the kit's aesthetic stand in; no card is saved. References vs anchor: only this product's best real product-only photos go in reference_image_urls. An approved generated hero is a style anchor only — describe its angle, light, crop and background in the prompt, never pass it as a reference (errors compound). Never a sibling product or colourway as either (colour bleed).
4. Propose the shot list — slots, not styles
Run atoms/shot-list/ATOM.md (references/shot-list-and-surfaces.md §1–2). Stack from the surface (for "the new colourway": read the products with detail: "full" in Step 1, sort by listed_at, confirm — on a near-tie, ask which); apply the brand's saved "Don't …" photo rules; honesty pass on every scene (Hard rule 1; skincare lifestyle shows the product, not a perfected face); host devices shown accurately (right model, neutral screen, no invented UI); colourways as variants or sibling products (find the new one by listed_at and confirm). Infographics and text over images are ad graphics, not this job. Ask only what the brain cannot settle; let the marketer edit.
5. Build the calls and quote — the spend gate
Per shot: one call — product, variant_id if any, category, count 1 or 2 (always set it; retries are shared per call), the shot row written into prompt (composition, light, background, copy space, what must not appear), up to six curated reference_image_urls (same-angle product-only first), controls only with keys the engine is known to honour, quality (offer medium for lifestyle). gooseworks:photos_generate dry_run: true for each; show each quote one by one exactly as given (no total of your own); people or hands → the human's attestation in plain words. Wait for the yes.
6. Hero first, then the rest
Submit the hero call alone. Read it back (gooseworks:photos_read generation_id): the ratio, quality and overridden_controls actually used, and run the fidelity check on the hero — a blocker, or controls the shot needed dropped, stops the run and goes to the human before the rest is spent. In "cannot see" mode, show the hero link with its three-item checklist and ask "carry on with the rest?" before submitting the other calls (same quotes, no new price). Poll gooseworks:job_get (kind: "photo_generation") for a bounded time; still queued → "I'll check when you're back" and end the turn — never resubmit (it pays again). workflow_error with nothing charged is an infrastructure failure: offer a fresh quote; quality failures carry final_defect_code / final_defect_message.
7. Check every output against the real product
Run atoms/fidelity-check/ATOM.md (follows ../../../skills/marketing/honest-review/SKILL.md; rubric in references/fidelity-rubric.md) on every passed and
Truncated for display — read the full file on GitHub.
Related Skills
taste-skill
102.4kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
LocalAI
50.0kLocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
