luckiest-co 1.0.64 → 1.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/ad-creative/CHANGELOG.md +3 -0
- package/skills/ad-creative/SKILL.md +13 -3
- package/skills/beauty-photography/.skillignore +2 -0
- package/skills/beauty-photography/ATTRIBUTION.md +17 -0
- package/skills/beauty-photography/CHANGELOG.md +80 -0
- package/skills/beauty-photography/LICENSE +176 -0
- package/skills/beauty-photography/SKILL.md +213 -0
- package/skills/beauty-photography/evals/evals.json +153 -0
- package/skills/beauty-photography/references/photography-styles.md +532 -0
- package/skills/beauty-photography/references/video-generation.md +98 -0
- package/skills/beauty-photography/scripts/compress_product_img.py +84 -0
- package/skills/usertest/ATTRIBUTION.md +4 -0
- package/skills/usertest/CHANGELOG.md +12 -0
- package/skills/usertest/SKILL.md +8 -4
- package/skills/usertest/references/iphone.md +79 -0
- package/skills/usertest/references/walk.md +6 -1
package/package.json
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Changelog — luckiest-ad-creative
|
|
2
2
|
|
|
3
|
+
## 1.6.0 — 2026-11-10
|
|
4
|
+
- New sub-skill `luckiest-beauty-photography` owns Generating Ad Visuals for physical beauty products (product photo to campaign images with fidelity QA). Added a Sub-skills table.
|
|
5
|
+
|
|
3
6
|
## 1.5.1 — 2026-10-23
|
|
4
7
|
- Removed dead `tools/` registry and integration links and the upstream `tools/clis` commands. The platforms stay as plain names: pull data via API, MCP, or CSV export.
|
|
5
8
|
|
|
@@ -3,7 +3,7 @@ name: ad-creative
|
|
|
3
3
|
description: "Generates, iterates, and scales ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform, and iterates from real performance data. Use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see luckiest-ads. For landing page copy, see luckiest-copywriting."
|
|
4
4
|
license: See ATTRIBUTION.md
|
|
5
5
|
metadata:
|
|
6
|
-
version: "1.
|
|
6
|
+
version: "1.6.0"
|
|
7
7
|
listing_id: luckiest-ad-creative
|
|
8
8
|
author: luckiest
|
|
9
9
|
---
|
|
@@ -14,9 +14,9 @@ This skill drives an expert performance creative strategist. The goal is to gene
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "9ce2c363-e379-45f7-b7d2-c398992ed30f", installedSemver: "1.
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "9ce2c363-e379-45f7-b7d2-c398992ed30f", installedSemver: "1.6.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
|
-
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-ad-creative", skill_version: "1.
|
|
19
|
+
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-ad-creative", skill_version: "1.6.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
21
21
|
## Before Starting
|
|
22
22
|
|
|
@@ -143,8 +143,18 @@ When something is risky, deliver a compliant alternative alongside the flag rath
|
|
|
143
143
|
|
|
144
144
|
---
|
|
145
145
|
|
|
146
|
+
## Sub-skills
|
|
147
|
+
|
|
148
|
+
| Step | Sub-skill | Owns |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| Generating Ad Visuals | `luckiest-beauty-photography` | Ad images for a physical beauty product (perfume, skincare, makeup) from the user's product photo: 3 concepts, 3 shots in A/B variants, product-fidelity QA, optional short video |
|
|
151
|
+
|
|
152
|
+
If a sub-skill is not installed, say so in one line and do its step with the rules in this skill's references.
|
|
153
|
+
|
|
146
154
|
## Generating Ad Visuals
|
|
147
155
|
|
|
156
|
+
**Beauty products:** when the ad is for a perfume, skincare, makeup, or other beauty product and the user has a product photo, use `luckiest-beauty-photography` for the visuals, then come back here for copy and platform specs.
|
|
157
|
+
|
|
148
158
|
For image and video ad creative, use generative AI tools and code-based video rendering. See [references/generative-tools.md](references/generative-tools.md) for the complete guide covering:
|
|
149
159
|
|
|
150
160
|
- **Image generation** — Nano Banana Pro (Gemini), Flux, Ideogram for static ad images
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Attribution
|
|
2
|
+
|
|
3
|
+
This skill is adapted from the "beauty-photography-master" skill
|
|
4
|
+
(`E-Commerce/beauty-photography`) in FancyAI's skills collection
|
|
5
|
+
(https://github.com/fancyai-official/skills) by FancyAI (fancyai-official),
|
|
6
|
+
used under the Apache License 2.0.
|
|
7
|
+
|
|
8
|
+
The original repository was deleted. This edition was built from commit
|
|
9
|
+
d3b0f0227a924ac4972cb993bc2895e598fede49 (2026-04-29), recovered from the
|
|
10
|
+
public fork https://github.com/DYAI2025/industry-skills, whose HEAD matches the
|
|
11
|
+
same commit in two other independent forks.
|
|
12
|
+
|
|
13
|
+
Modified by Luckiest: rewritten SKILL.md, adapted references, rewritten
|
|
14
|
+
compression script, generic eval prompts. See CHANGELOG.md for the full list.
|
|
15
|
+
|
|
16
|
+
The full license text is in LICENSE in this directory. Original copyright
|
|
17
|
+
notices are retained.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Changelog — luckiest-beauty-photography
|
|
2
|
+
|
|
3
|
+
## 1.0.0 — 2026-11-10
|
|
4
|
+
Rebranded from beauty-photography-master (FancyAI skills, Apache-2.0), commit
|
|
5
|
+
d3b0f022, recovered from fork DYAI2025/industry-skills after the original repo
|
|
6
|
+
was deleted.
|
|
7
|
+
|
|
8
|
+
### Security pass
|
|
9
|
+
- PASS, 5 files. No network calls, credential reads, obfuscation, or hidden
|
|
10
|
+
Unicode. The bundled script reads local files only.
|
|
11
|
+
- Removed the "Keep Technical Details Private" rule, which made the agent
|
|
12
|
+
refuse the user's own questions about prompts, models, and settings with a
|
|
13
|
+
fixed sales line. The skill now answers plainly when asked. Same change in
|
|
14
|
+
`references/video-generation.md`.
|
|
15
|
+
|
|
16
|
+
### Best-practices pass
|
|
17
|
+
- Rewrote the description: the source had empty trigger slots (", , , , ,")
|
|
18
|
+
left by stripped non-English triggers. New description covers skincare,
|
|
19
|
+
makeup, and sets, not only perfume.
|
|
20
|
+
- Moved `photography-styles.md` into `references/`. The body says which
|
|
21
|
+
section to load at which step.
|
|
22
|
+
- `scripts/compress_product_img.py` rewritten: docstring now matches the code
|
|
23
|
+
(JPEG 85, 145 KB cap, not "quality 100" and "1 MB"), clear error if Pillow
|
|
24
|
+
is missing, `--out-dir` (default system temp) instead of hardcoded `/tmp`.
|
|
25
|
+
- Eval prompts no longer name real brands. `evals/` is dev-only via
|
|
26
|
+
`.skillignore`.
|
|
27
|
+
|
|
28
|
+
### Improve pass (/luckiest-thinker + /luckiest-research)
|
|
29
|
+
- Covers skincare tubes, jars, droppers, compacts, lipsticks, and multi-product
|
|
30
|
+
sets (one ID card per product, a hero product chosen).
|
|
31
|
+
- Channel aspect ratios up front (4:5, 9:16, 1:1, 16:9 or 3:2); generate at
|
|
32
|
+
the ratio rather than cropping.
|
|
33
|
+
- Named geometry QA checks: cap height, pump tiers, extra dip tube, fill line,
|
|
34
|
+
label scale, body width. After 2 failed tries, show the best one and name
|
|
35
|
+
the defect.
|
|
36
|
+
- Composite the real label or packshot over finals instead of shipping AI
|
|
37
|
+
label text.
|
|
38
|
+
- Model pick by risk (least-drift model by default, text and hands model only
|
|
39
|
+
when needed).
|
|
40
|
+
- Rights rule: only the user's own or client products. Real-brand campaigns in
|
|
41
|
+
the references are style study only.
|
|
42
|
+
- Texture shot option for skincare and makeup.
|
|
43
|
+
- Tool routing: generation uses the session's reference-image tool or
|
|
44
|
+
`luckiest-image` models. Multi-shot video hands off to
|
|
45
|
+
`luckiest-video-studio`. Art director section 3b applies to every prompt.
|
|
46
|
+
|
|
47
|
+
### Network hook
|
|
48
|
+
- Share-with-tribe: offer to share the concept and prompt recipe (not the
|
|
49
|
+
user's unreleased product images) after delivery.
|
|
50
|
+
|
|
51
|
+
### Sub-skill fit
|
|
52
|
+
- luckiest-ad-creative: owns the Generating Ad Visuals step for physical
|
|
53
|
+
beauty products. Parent bumped to 1.6.0, added to its `BUNDLES` entry.
|
|
54
|
+
- Checked and not a fit: luckiest-image (its product step is UI screenshots),
|
|
55
|
+
luckiest-brandkit (logo-on-merch mockups, not product campaigns).
|
|
56
|
+
- Listing `details.docs.complements` for both listings is still owed. It is set
|
|
57
|
+
when the listing is published.
|
|
58
|
+
|
|
59
|
+
### Trend pass (/luckiest-trends + /luckiest-research + /newsjack-detector)
|
|
60
|
+
- Same-product fidelity test of image models: Nano Banana 2 drifted least,
|
|
61
|
+
GPT Image 2 grew the cap and widened the bottle, label words held better
|
|
62
|
+
than shape. Small sample. masonry.so/blog/ai-product-photo-fidelity-test,
|
|
63
|
+
updated 2026-10-27.
|
|
64
|
+
- Pennsylvania Act 99 of 2026 requires prominent disclosure on deceptive
|
|
65
|
+
AI-generated ad content, effective 2026-12-21. consumerfinancemonitor.com,
|
|
66
|
+
2026-11-02, and whyy.org, 2026-11-09. Added a disclosure note at delivery.
|
|
67
|
+
- NAD warns beauty marketers about AI ads that overpromise. Citeline HBW
|
|
68
|
+
Insight, 2026-10-27. Added "no before/after or efficacy visuals".
|
|
69
|
+
- Product photographers report client "AI fatigue". r/productphotography,
|
|
70
|
+
2026-10-30. Supports the art-director 3b realism default.
|
|
71
|
+
- Discarded: Dior holiday AI backlash (WWD, 2026-11-09), context only; other
|
|
72
|
+
newsjack candidates were off-domain.
|
|
73
|
+
- Ran: luckiest-research, luckiest-thinker, luckiest-trends (--days 30;
|
|
74
|
+
Reddit, HN, YouTube; X not enabled), newsjack-detector (quick ad-hoc
|
|
75
|
+
profile).
|
|
76
|
+
|
|
77
|
+
### Thumbnail
|
|
78
|
+
- Routes to the `video` micrographic scene via "video" in the description.
|
|
79
|
+
There is no photo or image scene, so the card reads as video. A
|
|
80
|
+
/luckiest-micrographic task can add one later.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: beauty-photography
|
|
3
|
+
description: >-
|
|
4
|
+
Turns a photo of a perfume, skincare, makeup, or other beauty product into a
|
|
5
|
+
luxury ad campaign: identifies the product and its materials, proposes 3
|
|
6
|
+
distinct creative concepts, generates 3 shots in 2 variants each with the
|
|
7
|
+
photo as the reference, checks every image against the real product (shape,
|
|
8
|
+
cap, glass, label), lets the user pick, and can turn a pick into a short
|
|
9
|
+
video ad. Sub-skill of luckiest-ad-creative for beauty product visuals.
|
|
10
|
+
Trigger on "perfume ad", "fragrance campaign", "beauty product photography",
|
|
11
|
+
"cosmetic ad", "skincare product shot", "make my bottle look luxury",
|
|
12
|
+
"product photo to ad", "lipstick campaign", "serum hero shot", or
|
|
13
|
+
"/luckiest-beauty-photography". For ad copy and platform specs use
|
|
14
|
+
luckiest-ad-creative. For general marketing images use luckiest-image. For a
|
|
15
|
+
full video edit use luckiest-video-studio.
|
|
16
|
+
argument-hint: "[product photo path] [style or channel]"
|
|
17
|
+
user-invocable: true
|
|
18
|
+
license: See ATTRIBUTION.md
|
|
19
|
+
metadata:
|
|
20
|
+
version: "1.0.0"
|
|
21
|
+
listing_id: luckiest-beauty-photography
|
|
22
|
+
author: luckiest
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Beauty product campaign photography
|
|
26
|
+
|
|
27
|
+
A white-background product photo becomes a set of luxury campaign images that
|
|
28
|
+
still show the real product. The hard part is not the mood, it is fidelity: AI
|
|
29
|
+
image models swap caps, melt bottles, and invent labels. This skill puts the
|
|
30
|
+
product's real structure first and checks every image against it.
|
|
31
|
+
|
|
32
|
+
## Staying current
|
|
33
|
+
|
|
34
|
+
On activation, call the Luckiest MCP `check_updates` tool with
|
|
35
|
+
`{ listingId: "luckiest-beauty-photography", installedSemver: "1.0.0" }`. If
|
|
36
|
+
`upToDate: false`, surface the `notice` once and continue. Never block on it.
|
|
37
|
+
|
|
38
|
+
When done, call `report_usage` once with
|
|
39
|
+
`{ listing_id: "luckiest-beauty-photography", skill_version: "1.0.0", matched: true, success: <true|false> }`.
|
|
40
|
+
Metadata only, never prompt text. Skip silently if unavailable.
|
|
41
|
+
|
|
42
|
+
## Before starting
|
|
43
|
+
|
|
44
|
+
- **Inputs.** One product photo, ideally on white. If the user has several
|
|
45
|
+
angles, use all of them. If the file is too large for the Read tool, run
|
|
46
|
+
`python3 scripts/compress_product_img.py --images <path>` (needs Pillow) and
|
|
47
|
+
read the printed path.
|
|
48
|
+
- **Rights.** Make campaigns only for products the user owns, sells, or is
|
|
49
|
+
hired to shoot. The real-brand campaigns in `references/photography-styles.md`
|
|
50
|
+
are style study only. Do not put another brand's name or logo on the user's
|
|
51
|
+
product.
|
|
52
|
+
- **Channel.** Ask where the images run only if the user has not said. Generate
|
|
53
|
+
to that aspect ratio: 4:5 for Instagram feed, 9:16 for Stories, Reels, and
|
|
54
|
+
TikTok, 1:1 for marketplace listings, 16:9 or 3:2 for web heroes. Default 4:5.
|
|
55
|
+
- **Image tool.** Use a reference-image tool in this session (a connected image
|
|
56
|
+
MCP, or the models `luckiest-image` lists). It must accept the product photo
|
|
57
|
+
as a reference. Text-only generation cannot keep the product true. If no such
|
|
58
|
+
tool is available, say so and deliver the concepts and prompts only. Pick by
|
|
59
|
+
risk: in a same-product test (Masonry, updated 2026-10-27, small sample) Nano
|
|
60
|
+
Banana 2 changed the product least, while GPT Image 2 rendered new text and
|
|
61
|
+
hands best but grew the cap and widened the bottle. Default to the
|
|
62
|
+
least-drift model, and switch only for hand-held or new-text shots.
|
|
63
|
+
- **Look.** If `luckiest-video-studio-art-director` is installed, apply its
|
|
64
|
+
section 3b (Real, not generated) to every prompt. Skip its motion sections.
|
|
65
|
+
|
|
66
|
+
## 1. Identify the product
|
|
67
|
+
|
|
68
|
+
Look at the photo and fill this card. List only the parts the product has.
|
|
69
|
+
|
|
70
|
+
| Attribute | Details |
|
|
71
|
+
|---|---|
|
|
72
|
+
| Brand and line | From the label, or "unbranded" |
|
|
73
|
+
| Category | Fragrance / skincare / makeup / hair / body / set |
|
|
74
|
+
| Container | Bottle, jar, tube, dropper, compact, stick, pump, palette |
|
|
75
|
+
| Material | Clear glass / frosted glass / faceted crystal / metal / ceramic / plastic / composite (name each part) |
|
|
76
|
+
| Silhouette | Exact geometry and proportions |
|
|
77
|
+
| Closure | Stopper, screw cap, snap cap, spray pump, dropper, press-down, magnetic |
|
|
78
|
+
| Part list | Every visible part |
|
|
79
|
+
| Product color | Liquid, cream, powder, or packaging color |
|
|
80
|
+
| Label | Placement, color, type style, and the exact words on it |
|
|
81
|
+
| Design language | The brand mood the packaging already signals |
|
|
82
|
+
| Size | e.g. 50 ml, 100 ml, 30 g jar, mini |
|
|
83
|
+
|
|
84
|
+
Material sets the lighting. Clear glass refracts and throws caustics. Frosted
|
|
85
|
+
glass and opaque packaging glow and scatter instead, so never prompt caustics
|
|
86
|
+
for them. Read `references/photography-styles.md` Section I for the product's
|
|
87
|
+
material only.
|
|
88
|
+
|
|
89
|
+
For a set of several products, fill one card per product and decide which one
|
|
90
|
+
is the hero.
|
|
91
|
+
|
|
92
|
+
## 2. Propose 3 concepts
|
|
93
|
+
|
|
94
|
+
Read Sections VI (four commercial approaches), VII (fragrance-mood starting
|
|
95
|
+
points), and III (echo vs. contrast) of `references/photography-styles.md`.
|
|
96
|
+
For non-fragrance products, map the product's claim (hydrating, matte, glow,
|
|
97
|
+
clean, clinical) to the mood column instead of a scent family.
|
|
98
|
+
|
|
99
|
+
Fill the diversity matrix before writing any concept:
|
|
100
|
+
|
|
101
|
+
| Dimension | Concept 1 | Concept 2 | Concept 3 |
|
|
102
|
+
|---|---|---|---|
|
|
103
|
+
| Commercial approach | Botanical / Light & Shadow / Lifestyle / Abstract | | |
|
|
104
|
+
| Lighting family | Dark / Bright / Warm | | |
|
|
105
|
+
| Background tone | Light / Dark / Color / Textured | | |
|
|
106
|
+
| Color strategy | Echo / Contrast / Monochrome / Complementary | | |
|
|
107
|
+
|
|
108
|
+
Rules: at least 2 lighting families and 2 approaches across the 3, and at least
|
|
109
|
+
1 contrast concept when the product's own mood is strong. If all 3 could be
|
|
110
|
+
frames from one shoot, revise before showing them. If the user gave a style up
|
|
111
|
+
front, honor it in at least one concept.
|
|
112
|
+
|
|
113
|
+
Write each concept as: title, one-line idea, approach and why, lighting (what
|
|
114
|
+
the light does on this material), set and props, palette, emotional tone, best
|
|
115
|
+
shot types. Ask the user to pick one or ask for changes.
|
|
116
|
+
|
|
117
|
+
## 3. Generate the campaign
|
|
118
|
+
|
|
119
|
+
**Shot list.** Pick 3 shots for the chosen concept. Default Hero + Detail +
|
|
120
|
+
Environment. Other types: Flat lay (overhead editorial) and Artistic (cropped,
|
|
121
|
+
asymmetric). Skincare and makeup often want a Texture shot (swatch, smear, or
|
|
122
|
+
drop of the formula) in place of Detail.
|
|
123
|
+
|
|
124
|
+
**Prompts.** Read Section IV of `references/photography-styles.md` for prompt
|
|
125
|
+
wording. Each prompt states, in this order of effort:
|
|
126
|
+
|
|
127
|
+
1. Scene, lighting behavior on this material, surface and props, palette
|
|
128
|
+
2. Composition: shot type, angle, placement, depth of field
|
|
129
|
+
3. A short named product description, e.g. "the frosted pink bottle with the
|
|
130
|
+
gold honeycomb cap". The reference image carries the structure, so do not
|
|
131
|
+
spend the prompt re-describing every part
|
|
132
|
+
4. Fidelity line: keep the silhouette, closure, materials, label position, and
|
|
133
|
+
every visible part exactly as in the reference
|
|
134
|
+
5. Style: high-end beauty campaign photography, real set, real light
|
|
135
|
+
|
|
136
|
+
Describe the visual result, not camera gear. Lens names and f-stops do not
|
|
137
|
+
change the output.
|
|
138
|
+
|
|
139
|
+
**Label text.** Models keep the label words more often than the product's
|
|
140
|
+
exact shape, but small text still drifts. Ask for the label "as in the
|
|
141
|
+
reference", never retype long label copy in the prompt. For any final the user
|
|
142
|
+
will publish, composite the real label, logo, or packshot over the generated
|
|
143
|
+
one rather than trusting generation.
|
|
144
|
+
|
|
145
|
+
**Generate.** 2 variants per shot, 6 images by default, in parallel. The user's
|
|
146
|
+
photo is the primary reference for every image. Extra official packshots may be
|
|
147
|
+
secondary references. Never let them override the user's photo.
|
|
148
|
+
|
|
149
|
+
**QA.** Before showing anything, compare each image to the product photo:
|
|
150
|
+
|
|
151
|
+
| Check | Fail when |
|
|
152
|
+
|---|---|
|
|
153
|
+
| Silhouette | Proportions, curves, or corners differ, or the body got wider |
|
|
154
|
+
| Closure | Cap height, pump tiers, stopper, or lid changed shape, color, or count |
|
|
155
|
+
| Parts | A part is missing, added (a dip tube the bottle lacks is common), or swapped for a generic one |
|
|
156
|
+
| Fill and scale | Liquid fill line moved, or the label's size relative to the body changed |
|
|
157
|
+
| Material | Frosted reads as clear, metal reads as plastic, liquid color shifted |
|
|
158
|
+
| Label | Moved, or a garbled word sits where a reader will look |
|
|
159
|
+
| Hands and skin | Extra fingers, waxy skin, or a face when none was asked for |
|
|
160
|
+
|
|
161
|
+
Regenerate a failed variant with a stronger fidelity line and a simpler scene.
|
|
162
|
+
After 2 failed tries on the same shot, show the best one and name the defect.
|
|
163
|
+
Do not hide defects to save a round.
|
|
164
|
+
|
|
165
|
+
**Show.** Group by shot so the user compares A and B side by side. Ask for one
|
|
166
|
+
pick per shot, or a regenerate.
|
|
167
|
+
|
|
168
|
+
## 4. Iterate
|
|
169
|
+
|
|
170
|
+
Ask which scope applies: one shot, one element across all shots, or new
|
|
171
|
+
concepts. Regenerate only what changed. A new-concepts request returns to
|
|
172
|
+
step 2.
|
|
173
|
+
|
|
174
|
+
## 5. Video ad (optional)
|
|
175
|
+
|
|
176
|
+
After the stills are approved, offer a 3 to 5 second image-to-video clip from
|
|
177
|
+
one pick. Read `references/video-generation.md` only now. For a multi-shot cut
|
|
178
|
+
with captions, music, or an end card, hand off to `luckiest-video-studio` with
|
|
179
|
+
the approved stills.
|
|
180
|
+
|
|
181
|
+
## Delivering
|
|
182
|
+
|
|
183
|
+
Give the final images (and video) with one line of creative intent each. Keep
|
|
184
|
+
logs and request payloads out of the reply. If the user asks which model,
|
|
185
|
+
settings, or prompt made an image, answer plainly and give the prompt.
|
|
186
|
+
|
|
187
|
+
Note in one line that the images are AI-generated and may need a disclosure
|
|
188
|
+
where they run. Some platforms and places require a prominent label on
|
|
189
|
+
synthetic ad content (Pennsylvania's Act 99 of 2026 does from 2026-12-21).
|
|
190
|
+
Never generate before/after, skin-result, or efficacy visuals. AI imagery that
|
|
191
|
+
overstates what a beauty product does draws NAD and regulator action.
|
|
192
|
+
|
|
193
|
+
## Network hook
|
|
194
|
+
|
|
195
|
+
After delivery, offer once (never auto-post): "Want me to share the concept and
|
|
196
|
+
prompt recipe with your Luckiest tribe? Members shooting similar products will
|
|
197
|
+
see what worked." Share the recipe, not the user's unreleased product images,
|
|
198
|
+
unless they ask. If they decline, stop.
|
|
199
|
+
|
|
200
|
+
## Common mistakes
|
|
201
|
+
|
|
202
|
+
- Prompting caustics or transparency for frosted, matte, or opaque packaging
|
|
203
|
+
- Three concepts that are the same moody dark set in different colors
|
|
204
|
+
- Re-describing the whole bottle in the prompt instead of trusting the reference
|
|
205
|
+
- Retyping label copy and getting misspelled brand names
|
|
206
|
+
- Showing images before QA, or shipping a swapped cap because the mood is good
|
|
207
|
+
|
|
208
|
+
## Related skills
|
|
209
|
+
|
|
210
|
+
- `luckiest-ad-creative`: ad copy, platform specs, and policy pre-flight
|
|
211
|
+
- `luckiest-image`: model choice and non-product marketing images
|
|
212
|
+
- `luckiest-video-studio`: full video ads from the approved stills
|
|
213
|
+
- `luckiest-video-studio-art-director`: section 3b, keeps images from looking AI-made
|