cue-ai 0.9.2 → 0.9.4

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.
Files changed (278) hide show
  1. package/CHANGELOG.md +4 -3
  2. package/README.md +154 -394
  3. package/bin/cue-learnings +30 -4
  4. package/bin/cue-review-progress +0 -0
  5. package/bin/cue-review-watch +0 -0
  6. package/dist/cue.js +4328 -3108
  7. package/package.json +1 -1
  8. package/plugins/cue/commands/cue-switch.md +1 -1
  9. package/plugins/cue/commands/cue.md +1 -1
  10. package/profiles/backend/profile.yaml +4 -0
  11. package/profiles/browser/profile.yaml +4 -0
  12. package/profiles/career/profile.yaml +2 -13
  13. package/profiles/commerce/profile.yaml +0 -2
  14. package/profiles/coolify/profile.yaml +0 -1
  15. package/profiles/core/profile.yaml +78 -11
  16. package/profiles/dash-merge-test/profile.yaml +6 -1
  17. package/profiles/designer/profile.yaml +9 -1
  18. package/profiles/dropshipping/profile.yaml +69 -0
  19. package/profiles/frontend/profile.yaml +4 -0
  20. package/profiles/google-ads/profile.yaml +34 -0
  21. package/profiles/google-analytics/profile.yaml +34 -0
  22. package/profiles/google-drive/profile.yaml +34 -0
  23. package/profiles/gstack/profile.yaml +117 -29
  24. package/profiles/marketing/profile.yaml +0 -1
  25. package/profiles/media/README.md +70 -0
  26. package/profiles/media/profile.yaml +104 -0
  27. package/profiles/nano-banana/profile.yaml +52 -0
  28. package/profiles/ops/profile.yaml +1 -2
  29. package/profiles/secops/profile.yaml +3 -0
  30. package/profiles/skill-writer/profile.yaml +15 -0
  31. package/profiles/video/profile.yaml +3 -0
  32. package/profiles/web-frontend-base/profile.yaml +6 -0
  33. package/profiles/webshop/profile.yaml +0 -1
  34. package/profiles/webshop-google/profile.yaml +1 -0
  35. package/profiles/x-growth-bot/profile.yaml +2 -0
  36. package/resources/icons/generate-icons.py +2 -128
  37. package/resources/mcps/configs/claude.sanitized.json +88 -20
  38. package/resources/mcps/configs/claude_runtime.sanitized.json +40 -1
  39. package/resources/mcps/configs/codex.sanitized.json +29 -0
  40. package/resources/skills/skills/career/job-hunter/LICENSE +21 -0
  41. package/resources/skills/skills/career/job-hunter/README.md +323 -0
  42. package/resources/skills/skills/career/job-hunter/SKILL.md +91 -0
  43. package/resources/skills/skills/career/job-hunter/agents/README.md +96 -0
  44. package/resources/skills/skills/career/job-hunter/agents/apply-assessment-prep.md +195 -0
  45. package/resources/skills/skills/career/job-hunter/agents/apply-ats-scan.md +155 -0
  46. package/resources/skills/skills/career/job-hunter/agents/apply-bias-audit.md +224 -0
  47. package/resources/skills/skills/career/job-hunter/agents/apply-cover-letter.md +69 -0
  48. package/resources/skills/skills/career/job-hunter/agents/apply-decode-jd.md +117 -0
  49. package/resources/skills/skills/career/job-hunter/agents/apply-fit-score.md +183 -0
  50. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-audit.md +74 -0
  51. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-scrape.md +255 -0
  52. package/resources/skills/skills/career/job-hunter/agents/apply-portfolio-brief.md +123 -0
  53. package/resources/skills/skills/career/job-hunter/agents/apply-reality-check.md +164 -0
  54. package/resources/skills/skills/career/job-hunter/agents/apply-reference-prep.md +150 -0
  55. package/resources/skills/skills/career/job-hunter/agents/apply-rejection-analysis.md +172 -0
  56. package/resources/skills/skills/career/job-hunter/agents/apply-resume.md +70 -0
  57. package/resources/skills/skills/career/job-hunter/agents/apply-skills-gap-filler.md +109 -0
  58. package/resources/skills/skills/career/job-hunter/agents/career-internal.md +94 -0
  59. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-content.md +173 -0
  60. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-scanner.md +262 -0
  61. package/resources/skills/skills/career/job-hunter/agents/career-network-message.md +108 -0
  62. package/resources/skills/skills/career/job-hunter/agents/career-promote.md +102 -0
  63. package/resources/skills/skills/career/job-hunter/agents/career-review.md +71 -0
  64. package/resources/skills/skills/career/job-hunter/agents/interview-debrief.md +117 -0
  65. package/resources/skills/skills/career/job-hunter/agents/interview-mock.md +171 -0
  66. package/resources/skills/skills/career/job-hunter/agents/interview-panel-decoder.md +152 -0
  67. package/resources/skills/skills/career/job-hunter/agents/interview-prep.md +184 -0
  68. package/resources/skills/skills/career/job-hunter/agents/interview-question-bank.md +133 -0
  69. package/resources/skills/skills/career/job-hunter/agents/interview-research.md +148 -0
  70. package/resources/skills/skills/career/job-hunter/agents/offer-compare.md +117 -0
  71. package/resources/skills/skills/career/job-hunter/agents/offer-counteroffer.md +144 -0
  72. package/resources/skills/skills/career/job-hunter/agents/offer-deadline-manager.md +148 -0
  73. package/resources/skills/skills/career/job-hunter/agents/offer-negotiate.md +126 -0
  74. package/resources/skills/skills/career/job-hunter/agents/offer-schedule.md +99 -0
  75. package/resources/skills/skills/career/job-hunter/agents/offer-thankyou.md +80 -0
  76. package/resources/skills/skills/career/job-hunter/agents/search-company-research.md +146 -0
  77. package/resources/skills/skills/career/job-hunter/agents/search-follow-up.md +129 -0
  78. package/resources/skills/skills/career/job-hunter/agents/search-ghost-job-detector.md +152 -0
  79. package/resources/skills/skills/career/job-hunter/agents/search-inbox-scan.md +193 -0
  80. package/resources/skills/skills/career/job-hunter/agents/search-interview-scorecard.md +164 -0
  81. package/resources/skills/skills/career/job-hunter/agents/search-jobs.md +149 -0
  82. package/resources/skills/skills/career/job-hunter/agents/search-momentum-check.md +194 -0
  83. package/resources/skills/skills/career/job-hunter/agents/search-outreach.md +85 -0
  84. package/resources/skills/skills/career/job-hunter/agents/search-referral-finder.md +124 -0
  85. package/resources/skills/skills/career/job-hunter/agents/search-salary.md +96 -0
  86. package/resources/skills/skills/career/job-hunter/agents/search-send-email.md +109 -0
  87. package/resources/skills/skills/career/job-hunter/agents/search-tracker-update.md +127 -0
  88. package/resources/skills/skills/career/job-hunter/inputs/README.md +26 -0
  89. package/resources/skills/skills/career/job-hunter/inputs/apply-linkedin-url.txt +8 -0
  90. package/resources/skills/skills/career/job-hunter/inputs/interview-context.md +24 -0
  91. package/resources/skills/skills/career/job-hunter/inputs/job-description.md +20 -0
  92. package/resources/skills/skills/career/job-hunter/inputs/job-search-criteria.md +36 -0
  93. package/resources/skills/skills/career/job-hunter/inputs/my-linkedin.md +24 -0
  94. package/resources/skills/skills/career/job-hunter/inputs/my-resume.md +28 -0
  95. package/resources/skills/skills/career/job-hunter/inputs/search-outreach-target.md +24 -0
  96. package/resources/skills/skills/career/job-hunter/rules/README.md +37 -0
  97. package/resources/skills/skills/career/job-hunter/rules/writing-rules.md +81 -0
  98. package/resources/skills/skills/design/banana/SKILL.md +375 -0
  99. package/resources/skills/skills/design/banana/references/cost-tracking.md +47 -0
  100. package/resources/skills/skills/design/banana/references/gemini-models.md +236 -0
  101. package/resources/skills/skills/design/banana/references/mcp-tools.md +145 -0
  102. package/resources/skills/skills/design/banana/references/post-processing.md +192 -0
  103. package/resources/skills/skills/design/banana/references/presets.md +69 -0
  104. package/resources/skills/skills/design/banana/references/prompt-engineering.md +481 -0
  105. package/resources/skills/skills/design/banana/scripts/batch.py +97 -0
  106. package/resources/skills/skills/design/banana/scripts/cost_tracker.py +191 -0
  107. package/resources/skills/skills/design/banana/scripts/edit.py +159 -0
  108. package/resources/skills/skills/design/banana/scripts/generate.py +168 -0
  109. package/resources/skills/skills/design/banana/scripts/presets.py +154 -0
  110. package/resources/skills/skills/design/banana/scripts/setup_mcp.py +151 -0
  111. package/resources/skills/skills/design/banana/scripts/validate_setup.py +133 -0
  112. package/resources/skills/skills/gstack/ship/SKILL.md +13 -0
  113. package/resources/skills/skills/media/3d-logo-animation/SKILL.md +59 -0
  114. package/resources/skills/skills/media/action-figure-generator/SKILL.md +48 -0
  115. package/resources/skills/skills/media/ad-creative/SKILL.md +79 -0
  116. package/resources/skills/skills/media/ai-clipping/SKILL.md +194 -0
  117. package/resources/skills/skills/media/ai-clipping/scripts/run-ai-clipping.sh +200 -0
  118. package/resources/skills/skills/media/ai-fight-scene/SKILL.md +132 -0
  119. package/resources/skills/skills/media/amazon-product-listing/SKILL.md +68 -0
  120. package/resources/skills/skills/media/animal-video-generator/SKILL.md +59 -0
  121. package/resources/skills/skills/media/award-ceremony-video/SKILL.md +87 -0
  122. package/resources/skills/skills/media/blog-header/SKILL.md +61 -0
  123. package/resources/skills/skills/media/brand-kit/SKILL.md +72 -0
  124. package/resources/skills/skills/media/brochures/SKILL.md +65 -0
  125. package/resources/skills/skills/media/cartoon-dance-animation/SKILL.md +62 -0
  126. package/resources/skills/skills/media/character-story-video/SKILL.md +84 -0
  127. package/resources/skills/skills/media/chibi-collage-effect/SKILL.md +63 -0
  128. package/resources/skills/skills/media/cinema-director/SKILL.md +93 -0
  129. package/resources/skills/skills/media/cinema-director/scripts/generate-film.sh +78 -0
  130. package/resources/skills/skills/media/color-analysis-board/SKILL.md +71 -0
  131. package/resources/skills/skills/media/core-edit/SKILL.md +48 -0
  132. package/resources/skills/skills/media/core-edit/edit-image.sh +54 -0
  133. package/resources/skills/skills/media/core-edit/enhance-image.sh +191 -0
  134. package/resources/skills/skills/media/core-edit/lipsync.sh +144 -0
  135. package/resources/skills/skills/media/core-edit/video-effects.sh +193 -0
  136. package/resources/skills/skills/media/core-media/SKILL.md +49 -0
  137. package/resources/skills/skills/media/core-media/create-music.sh +169 -0
  138. package/resources/skills/skills/media/core-media/generate-image.sh +161 -0
  139. package/resources/skills/skills/media/core-media/generate-video.sh +137 -0
  140. package/resources/skills/skills/media/core-media/image-to-video.sh +228 -0
  141. package/resources/skills/skills/media/core-media/schema_data.json +18708 -0
  142. package/resources/skills/skills/media/core-media/upload.sh +41 -0
  143. package/resources/skills/skills/media/core-platform/SKILL.md +41 -0
  144. package/resources/skills/skills/media/core-platform/check-result.sh +37 -0
  145. package/resources/skills/skills/media/core-platform/setup.sh +31 -0
  146. package/resources/skills/skills/media/couple-grid-creator/SKILL.md +47 -0
  147. package/resources/skills/skills/media/design-guide/SKILL.md +73 -0
  148. package/resources/skills/skills/media/drone-style-video/SKILL.md +61 -0
  149. package/resources/skills/skills/media/fashion-try-on/SKILL.md +61 -0
  150. package/resources/skills/skills/media/floor-plan-rendering/SKILL.md +56 -0
  151. package/resources/skills/skills/media/freeze-effect-video/SKILL.md +100 -0
  152. package/resources/skills/skills/media/giant-product-showcase/SKILL.md +61 -0
  153. package/resources/skills/skills/media/instagram-post/SKILL.md +58 -0
  154. package/resources/skills/skills/media/interior-design/SKILL.md +61 -0
  155. package/resources/skills/skills/media/interior-design-visualizer/SKILL.md +57 -0
  156. package/resources/skills/skills/media/jewelry-product-video/SKILL.md +61 -0
  157. package/resources/skills/skills/media/kdenlive/SKILL.md +106 -0
  158. package/resources/skills/skills/media/kdenlive/scripts/assemble.sh +57 -0
  159. package/resources/skills/skills/media/kdenlive/scripts/common.sh +30 -0
  160. package/resources/skills/skills/media/kdenlive/scripts/inspect.sh +19 -0
  161. package/resources/skills/skills/media/kdenlive/scripts/reframe.sh +22 -0
  162. package/resources/skills/skills/media/kdenlive/scripts/render.sh +16 -0
  163. package/resources/skills/skills/media/kdenlive/scripts/title-card.sh +25 -0
  164. package/resources/skills/skills/media/keyboard-art-maker/SKILL.md +44 -0
  165. package/resources/skills/skills/media/logo-branding/SKILL.md +70 -0
  166. package/resources/skills/skills/media/logo-creator/SKILL.md +80 -0
  167. package/resources/skills/skills/media/logo-creator/scripts/create-logo.sh +38 -0
  168. package/resources/skills/skills/media/logo-generator/SKILL.md +56 -0
  169. package/resources/skills/skills/media/multi-angle-reshoot/SKILL.md +70 -0
  170. package/resources/skills/skills/media/multi-angle-shots/SKILL.md +73 -0
  171. package/resources/skills/skills/media/music-video/SKILL.md +61 -0
  172. package/resources/skills/skills/media/nano-banana/SKILL.md +80 -0
  173. package/resources/skills/skills/media/nano-banana/scripts/generate-nano-art.sh +54 -0
  174. package/resources/skills/skills/media/one-shot-video/SKILL.md +56 -0
  175. package/resources/skills/skills/media/photo-pack-generator/SKILL.md +205 -0
  176. package/resources/skills/skills/media/photo-pack-generator/scripts/generate-pack.sh +241 -0
  177. package/resources/skills/skills/media/product-ad-cinematic/SKILL.md +78 -0
  178. package/resources/skills/skills/media/product-campaign/SKILL.md +76 -0
  179. package/resources/skills/skills/media/product-showcase-video/SKILL.md +60 -0
  180. package/resources/skills/skills/media/product-video-ad-maker/SKILL.md +59 -0
  181. package/resources/skills/skills/media/rednote-cover/SKILL.md +57 -0
  182. package/resources/skills/skills/media/seedance-2/SKILL.md +632 -0
  183. package/resources/skills/skills/media/seedance-2/scripts/generate-seedance.sh +701 -0
  184. package/resources/skills/skills/media/selfie-with-celebrities/SKILL.md +64 -0
  185. package/resources/skills/skills/media/social-media-video/SKILL.md +277 -0
  186. package/resources/skills/skills/media/social-media-video/scripts/run-social-video.sh +316 -0
  187. package/resources/skills/skills/media/social-pack/SKILL.md +58 -0
  188. package/resources/skills/skills/media/storyboard/SKILL.md +57 -0
  189. package/resources/skills/skills/media/storyboard-to-cooking-video/SKILL.md +143 -0
  190. package/resources/skills/skills/media/talking-baby-video/SKILL.md +57 -0
  191. package/resources/skills/skills/media/ugc-ads-workflow/SKILL.md +70 -0
  192. package/resources/skills/skills/media/ugc-lifestyle-try-on/SKILL.md +65 -0
  193. package/resources/skills/skills/media/ugc-video-factory/SKILL.md +134 -0
  194. package/resources/skills/skills/media/ui-design/SKILL.md +81 -0
  195. package/resources/skills/skills/media/ui-design/scripts/generate-mockup.sh +49 -0
  196. package/resources/skills/skills/media/url-to-design/SKILL.md +61 -0
  197. package/resources/skills/skills/media/workflow/SKILL.md +197 -0
  198. package/resources/skills/skills/media/workflow/scripts/discover-workflow.sh +18 -0
  199. package/resources/skills/skills/media/workflow/scripts/generate-workflow.sh +33 -0
  200. package/resources/skills/skills/media/workflow/scripts/interactive-run.sh +16 -0
  201. package/resources/skills/skills/media/workflow/scripts/list-workflows.sh +20 -0
  202. package/resources/skills/skills/media/workflow/scripts/run-workflow.sh +34 -0
  203. package/resources/skills/skills/media/youtube-shorts/SKILL.md +173 -0
  204. package/resources/skills/skills/media/youtube-shorts/scripts/run-youtube-shorts.sh +141 -0
  205. package/resources/skills/skills/media/youtube-thumbnail/SKILL.md +66 -0
  206. package/resources/skills/skills/meta/cue-developer/references/architecture.md +2 -2
  207. package/resources/skills/skills/meta/cue-usage/SKILL.md +1 -1
  208. package/resources/skills/skills/meta/profile-fit-monitor/SKILL.md +2 -2
  209. package/resources/skills/skills/meta/profile-optimizer/SKILL.md +1 -1
  210. package/resources/skills/skills/meta/profile-suggest/SKILL.md +7 -7
  211. package/resources/skills/skills/meta/profile-summon/SKILL.md +159 -0
  212. package/resources/skills/skills/meta/profile-summon/evals/evals.json +53 -0
  213. package/resources/skills/skills/meta/save-profile/SKILL.md +1 -1
  214. package/resources/skills/skills/meta/skill-reviewer/SKILL.md +3 -0
  215. package/resources/skills/skills/meta/skill-reviewer/references/tdd-for-skills.md +55 -0
  216. package/resources/skills/skills/research/find-skills/SKILL.md +1 -1
  217. package/resources/skills/skills/review/code-review-deep/SKILL.md +20 -0
  218. package/resources/skills/skills/security/trivy-scan/SKILL.md +139 -0
  219. package/resources/skills/skills/security/trivy-scan/scripts/ensure-trivy.sh +21 -0
  220. package/resources/skills/skills/tools/ccusage/SKILL.md +142 -0
  221. package/src/commands/_index.ts +8 -0
  222. package/src/commands/ai.ts +2 -2
  223. package/src/commands/auto-detect.test.ts +74 -0
  224. package/src/commands/auto-detect.ts +9 -7
  225. package/src/commands/cli.test.ts +20 -4
  226. package/src/commands/cli.ts +36 -20
  227. package/src/commands/create-profile.ts +2 -2
  228. package/src/commands/debug.ts +2 -2
  229. package/src/commands/discover.ts +14 -4
  230. package/src/commands/export-docker.ts +1 -1
  231. package/src/commands/features-batch1.test.ts +1 -1
  232. package/src/commands/gates.ts +1 -1
  233. package/src/commands/import-profile.ts +1 -1
  234. package/src/commands/init.ts +15 -11
  235. package/src/commands/install.test.ts +192 -0
  236. package/src/commands/install.ts +610 -0
  237. package/src/commands/launch-handoff.e2e.test.ts +33 -1
  238. package/src/commands/launch.e2e.test.ts +15 -10
  239. package/src/commands/launch.ts +73 -116
  240. package/src/commands/materialize.ts +2 -2
  241. package/src/commands/prune.ts +1 -1
  242. package/src/commands/security-audit.ts +1 -1
  243. package/src/commands/shell.ts +7 -7
  244. package/src/commands/skill-report.ts +1 -1
  245. package/src/commands/skills.ts +3 -3
  246. package/src/commands/snapshot.ts +2 -2
  247. package/src/commands/summon.test.ts +116 -0
  248. package/src/commands/summon.ts +338 -0
  249. package/src/commands/trigger-gaps.ts +1 -1
  250. package/src/commands/use.ts +47 -3
  251. package/src/commands/watch-live.ts +5 -5
  252. package/src/commands/watch.ts +8 -8
  253. package/src/index.ts +2 -0
  254. package/src/lib/active-sessions.test.ts +3 -3
  255. package/src/lib/active-sessions.ts +4 -4
  256. package/src/lib/auto-detect.test.ts +172 -8
  257. package/src/lib/auto-detect.ts +191 -136
  258. package/src/lib/codex-persona-parity.test.ts +58 -0
  259. package/src/lib/companion-detect.test.ts +43 -1
  260. package/src/lib/companion-detect.ts +35 -0
  261. package/src/lib/credentials-sync.test.ts +121 -1
  262. package/src/lib/credentials-sync.ts +95 -1
  263. package/src/lib/cwd-resolver.test.ts +8 -8
  264. package/src/lib/cwd-resolver.ts +2 -2
  265. package/src/lib/dashboard-merge.test.ts +9 -4
  266. package/src/lib/dashboard-server.ts +1 -1
  267. package/src/lib/picker.test.ts +1 -1
  268. package/src/lib/picker.ts +5 -5
  269. package/src/lib/profile-merge.test.ts +8 -0
  270. package/src/lib/profile-names.test.ts +3 -3
  271. package/src/lib/runtime-install.ts +166 -0
  272. package/src/lib/runtime-materializer.test.ts +137 -0
  273. package/src/lib/runtime-materializer.ts +105 -2
  274. package/src/lib/skill-router.test.ts +38 -0
  275. package/src/lib/skill-router.ts +65 -4
  276. package/profiles/eu-tender-research/README.md +0 -48
  277. package/profiles/eu-tender-research/logo.png +0 -0
  278. package/profiles/eu-tender-research/profile.yaml +0 -108
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: muapi-photo-pack-generator
3
+ version: 0.1.0
4
+ description: Generate a pack of professional or aesthetic photos from a single reference image while preserving the exact identity of the person.
5
+ ---
6
+
7
+ # 📸 Photo Pack Generator Expert Skill (Identity-Lock Edition)
8
+
9
+ Transform a single reference photo into a collection of themed images while maintaining **extremely high facial identity fidelity**.
10
+
11
+ This skill prioritizes **identity preservation first**, then applies stylistic transformations like LinkedIn portraits, dating photos, cinematic shots, or fantasy styles.
12
+
13
+ The system uses **Identity Lock Prompting** instead of describing the person, preventing the model from generating a new face.
14
+
15
+ ---
16
+
17
+ # Core Principles
18
+
19
+ ## 1️⃣ Identity Lock (MOST IMPORTANT)
20
+
21
+ The generated images must always depict **the same person from the reference image**.
22
+
23
+ All prompts MUST include identity lock instructions.
24
+
25
+ Required identity rules:
26
+
27
+ - Preserve the exact facial identity from the reference image
28
+ - Do not modify eye shape or spacing
29
+ - Do not modify nose structure
30
+ - Do not modify jawline or chin shape
31
+ - Do not modify cheekbones
32
+ - Do not modify face proportions
33
+ - Identity must remain identical to the reference photo
34
+
35
+ ---
36
+
37
+ ## 2️⃣ Vision-First Scene Analysis
38
+
39
+ The agent MUST analyze the reference image before generation.
40
+
41
+ However the analysis **must NOT describe the person** (age, ethnicity, hair etc).
42
+
43
+ Allowed analysis fields:
44
+
45
+ - head orientation
46
+ - facial angle
47
+ - expression
48
+ - lighting direction
49
+ - framing (portrait / half body / full body)
50
+
51
+ Example:
52
+
53
+ Head orientation: slight left tilt
54
+ Expression: neutral friendly
55
+ Lighting: soft frontal light
56
+ Framing: head and shoulders portrait
57
+
58
+ ---
59
+
60
+ # Agent Execution Flow
61
+
62
+ ## Step 1 — Grounding Check
63
+
64
+ Ensure the user has provided a reference image.
65
+
66
+ Supported inputs:
67
+
68
+ - local image
69
+ - URL
70
+ - uploaded file
71
+
72
+ ---
73
+
74
+ ## Step 2 — Vision Analysis
75
+
76
+ Extract scene attributes only.
77
+
78
+ DO NOT describe:
79
+
80
+ - age
81
+ - ethnicity
82
+ - beard
83
+ - hair
84
+ - body type
85
+
86
+ Identity must come directly from the image.
87
+
88
+ ---
89
+
90
+ ## Step 3 — Category Selection
91
+
92
+ If the user does not specify a category suggest:
93
+
94
+ - LinkedIn
95
+ - Tinder
96
+ - OldMoney
97
+
98
+ ---
99
+
100
+ ## Step 4 — Prompt Construction
101
+
102
+ Use the reference image as the identity source.
103
+
104
+ Preserve the exact facial identity from the reference image.
105
+
106
+ Identity must remain identical to the reference photo.
107
+
108
+ Do not change:
109
+
110
+ - eye shape
111
+ - eye spacing
112
+ - nose structure
113
+ - jawline
114
+ - cheekbones
115
+ - face proportions
116
+
117
+ Maintain similar head orientation as the reference.
118
+
119
+ Scene example:
120
+
121
+ Outdoor café portrait
122
+ Soft natural daylight
123
+ 35mm portrait lens
124
+ Shallow depth of field
125
+ Photorealistic skin texture
126
+
127
+ ---
128
+
129
+ ## Step 5 — Negative Prompt
130
+
131
+ Always include:
132
+
133
+ different person
134
+ altered face
135
+ changed facial features
136
+ new identity
137
+ generic face
138
+ beautified face
139
+ plastic skin
140
+ face distortion
141
+
142
+ ---
143
+
144
+ ## Step 6 — Execution
145
+
146
+ Example:
147
+
148
+ bash scripts/generate-pack.sh \
149
+ --image "./my_face.jpg" \
150
+ --category "LinkedIn" \
151
+ --identity-lock true \
152
+ --num 5
153
+
154
+ ---
155
+
156
+ # Supported Categories
157
+
158
+ | Category | Best For | Aesthetic |
159
+ |---|---|---|
160
+ | LinkedIn | Professional | Studio |
161
+ | CEO | Founders | Office |
162
+ | Tinder | Dating | Lifestyle |
163
+ | OldMoney | Luxury | Estate |
164
+ | Cyberpunk | Fantasy | Neon |
165
+ | Fitness | Gym | Athletic |
166
+ | Travel | Social | Bali/Paris |
167
+ | 90s | Retro | Vintage |
168
+ | Holiday | Seasonal | Festive |
169
+
170
+ ---
171
+
172
+ # Guardrails
173
+
174
+ ## Fidelity First
175
+
176
+ Identity preservation is always more important than style.
177
+
178
+ ## Never Re-Describe the Person
179
+
180
+ Avoid prompts like:
181
+
182
+ "Indian man in his 20s with short hair"
183
+
184
+ This causes the model to generate a **new face**.
185
+
186
+ Identity must come from the **reference image only**.
187
+
188
+ ---
189
+
190
+ # Recommended Models
191
+
192
+ Best results with:
193
+
194
+ - nano-banana-edit
195
+
196
+ ---
197
+
198
+ # Result
199
+
200
+ This system produces:
201
+
202
+ - consistent identity
203
+ - photorealistic images
204
+ - multi-style photo packs
205
+ - professional outputs
@@ -0,0 +1,241 @@
1
+ #!/bin/bash
2
+ # Photo Pack Generator Skill
3
+ # Generates a pack of images based on a reference image and a category.
4
+
5
+ IMAGE_URL=""
6
+ IMAGE_FILE=""
7
+ CATEGORY="LinkedIn"
8
+ MODEL="nano-banana-edit"
9
+ NUM_IMAGES=5
10
+ VIEW_FLAG_LOCAL=false
11
+ JSON_ONLY=false
12
+ LIKENESS=""
13
+
14
+ # Scripts directory
15
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
16
+ UPLOAD_SCRIPT="$SCRIPT_DIR/../../core-media/upload.sh"
17
+ GENERATE_SCRIPT="$SCRIPT_DIR/../../core-media/generate-image.sh"
18
+ OUTPUT_DIR="${PWD}/media_outputs"
19
+
20
+ while [[ $# -gt 0 ]]; do
21
+ case $1 in
22
+ --image-url) IMAGE_URL="$2"; shift 2 ;;
23
+ --image) IMAGE_FILE="$2"; shift 2 ;;
24
+ --category) CATEGORY="$2"; shift 2 ;;
25
+ --model) MODEL="$2"; shift 2 ;;
26
+ --num) NUM_IMAGES="$2"; shift 2 ;;
27
+ --view) VIEW_FLAG_LOCAL=true; shift ;;
28
+ --json) JSON_ONLY=true; shift ;;
29
+ --likeness) LIKENESS="$2"; shift 2 ;;
30
+ *) shift ;;
31
+ esac
32
+ done
33
+
34
+ if [ -z "$IMAGE_URL" ] && [ -z "$IMAGE_FILE" ]; then
35
+ echo "Error: Either --image-url or --image (local file) is required."
36
+ exit 1
37
+ fi
38
+
39
+ # 1. Handle local file upload
40
+ if [ -n "$IMAGE_FILE" ]; then
41
+ [ "$JSON_ONLY" = false ] && echo "Uploading local image: $IMAGE_FILE..." >&2
42
+ IMAGE_URL=$(bash "$UPLOAD_SCRIPT" --file "$IMAGE_FILE")
43
+ if [ -z "$IMAGE_URL" ]; then
44
+ echo "Error: Upload failed."
45
+ exit 1
46
+ fi
47
+ [ "$JSON_ONLY" = false ] && echo "Uploaded to: $IMAGE_URL" >&2
48
+ fi
49
+
50
+ # 2. Extract Prompts based on Category
51
+ # Improved prompts using "Perfect Prompt" formula: Subject + Action + Context + Composition + Lighting + Style
52
+ PROMPTS=()
53
+ SUBJECT="${LIKENESS:-the person}"
54
+ # Ultra-High Fidelity Likeness Prefix
55
+ LIKENESS_PREFIX="STRICTLY PRESERVE the EXACT facial geometry, PIXEL-PERFECT bone structure, and identical facial features from the reference image. Every detail of the eyes, nose, and jawline must remain unchanged. "
56
+
57
+ case $CATEGORY in
58
+ "LinkedIn")
59
+ PROMPTS=(
60
+ "Using reference image, ${LIKENESS_PREFIX} high-resolution professional profile photo of ${SUBJECT}, chest up, looking directly at the camera with a confident smile. Wearing a premium navy business suit and white shirt. Solid neutral studio background. 85mm f/1.8 lens, exquisite focus on eyes, realistic skin texture, soft diffused studio lighting, cinematic corporate color grading."
61
+ "Using reference image, ${LIKENESS_PREFIX} corporate headshot of ${SUBJECT}, professional business casual attire, clean soft gray studio backdrop. Sharp focus, natural skin tones, Rembrandt lighting, professional magazine quality portrait, 8k resolution."
62
+ "Using reference image, ${LIKENESS_PREFIX} professional portrait of ${SUBJECT}, executive presence, wearing a charcoal blazer, modern glass office background blurred (bokeh). Soft daylight from side window, high-end commercial photography, meticulous detail, photorealistic."
63
+ "Using reference image, ${LIKENESS_PREFIX} professional headshot of ${SUBJECT}, friendly and approachable expression, wearing a smart casual sweater. Clean minimalist office setting, bright and airy lighting, crisp detail, realistic textures, shot on Sony A7R IV."
64
+ "Using reference image, ${LIKENESS_PREFIX} business portrait of ${SUBJECT}, suit refinement, clear sharp facial features, subtle studio lighting with hair light, polished and trustworthy expression, blurred professional environment."
65
+ )
66
+ ;;
67
+ "Tinder"|"Bumble")
68
+ PROMPTS=(
69
+ "Using reference image, ${LIKENESS_PREFIX} natural high-resolution dating profile photo of ${SUBJECT} with a warm genuine smile. Relaxed posture, wearing a stylish knit sweater. Soft natural daylight, outdoor cafe setting with blurred background bokeh (f/1.4). Authentic friendly energy, realistic skin tones, 35mm film grain."
70
+ "Using reference image, ${LIKENESS_PREFIX} candid dating app photo of ${SUBJECT} in a stylish leather jacket, leaning against a brick wall on a vibrant city street at dusk. Warm soft streetlights, engaging slightly mysterious expression, shallow depth of field, urban lifestyle aesthetic."
71
+ "Using reference image, ${LIKENESS_PREFIX} lifestyle photo of ${SUBJECT} at a rooftop bar at sunset, holding a drink, city skyline bokeh. Warm string lights, casual style, natural expression, cinematic photography, Kodak Portra 400 colors."
72
+ "Using reference image, ${LIKENESS_PREFIX} place ${SUBJECT} on a tropical beach at sunset, casual linen shirt, warm golden light. Adventurous confident vibe, travel lifestyle photo, high detail skin texture, Leica M11 look."
73
+ "Using reference image, ${LIKENESS_PREFIX} cozy coffee shop interior, ${SUBJECT} holding a latte, casual homey outfit. Warm ambient lighting, relaxed genuine smile, lifestyle portrait, shallow depth of field, realistic textures."
74
+ )
75
+ ;;
76
+ "OldMoney")
77
+ PROMPTS=(
78
+ "Using reference image, ${LIKENESS_PREFIX} transform to old money aesthetic. ${SUBJECT} wearing a tailored beige cashmere sweater and cream trousers, standing on a gravel path outside a British country estate. Overcast soft light, effortless elegance, Vogue editorial photography, 35mm film texture."
79
+ "Using reference image, ${LIKENESS_PREFIX} portrait of ${SUBJECT} at an ivy league campus entrance, classic navy blazer over oxford shirt. Autumnal background with golden leaves, warm sunlight, understated confidence, preppy refined aesthetic, 85mm lens."
80
+ "Using reference image, ${LIKENESS_PREFIX} ${SUBJECT} on a luxury yacht deck, wearing ivory linen co-ords and minimal gold jewelry. Mediterranean afternoon light, turquoise sea bokeh, windswept relaxed hair, aspirational quiet luxury lifestyle."
81
+ "Using reference image, ${LIKENESS_PREFIX} equestrian setting, ${SUBJECT} in classic riding attire with leather boots. Green countryside estate background, golden hour light, European aristocracy feel, high-detail textures, equestrian chic."
82
+ "Using reference image, ${LIKENESS_PREFIX} grand private library interior, ${SUBJECT} sitting in a leather armchair wearing a tweed blazer. Warm amber candlelight, sophisticated intellectual presence, timeless refined photography, cinematic lighting."
83
+ )
84
+ ;;
85
+ "Cyberpunk")
86
+ PROMPTS=(
87
+ "Using reference image, ${LIKENESS_PREFIX} ${SUBJECT} standing in a rain-soaked neon-lit Tokyo alley at night. Vibrant pink and blue neon reflections on the face and a sleek black tech-wear trench coat. Moody atmospheric lighting, dramatic shadows, wet pavement reflections, Blade Runner 2049 aesthetic."
88
+ "Using reference image, ${LIKENESS_PREFIX} cyberpunk transformation. ${SUBJECT} with subtle glowing cybernetic implants, futuristic geometric fashion. Dark industrial background with volumetric fog, electric blue rim lighting, cinematic sci-fi atmosphere, 8k resolution."
89
+ "Using reference image, ${LIKENESS_PREFIX} neon Shibuya crossing background. Massive screens glowing, crowd motion blur. ${SUBJECT} in futuristic street style, electric urban energy, cyan and magenta color grade, high-end concept art style."
90
+ "Using reference image, ${LIKENESS_PREFIX} cyberpunk underground club. Neon UV lighting, haze and smoke, futuristic accessories. ${SUBJECT} has an intense look, immersive sci-fi nightlife atmosphere, sharp focus, vibrant color contrast."
91
+ )
92
+ ;;
93
+ "CEO")
94
+ PROMPTS=(
95
+ "Using reference image, ${LIKENESS_PREFIX} modern glass office with city view background. ${SUBJECT} in a tailored premium power suit, confident pose. Dramatic side lighting, executive portrait, Fortune 500 magazine cover style, sharp focus, ultra-professional."
96
+ "Using reference image, ${LIKENESS_PREFIX} tech founder aesthetic. ${SUBJECT} wearing a premium black turtleneck, minimalist white gallery background. Intellectual confident vibe, tech CEO energy, soft box lighting, high detail, realistic skin."
97
+ "Using reference image, ${LIKENESS_PREFIX} ${SUBJECT} speaking on a stage at a tech conference, blurred audience in background. Business casual, engaged confident expression, thought leader energy, professional event photography lighting."
98
+ "Using reference image, ${LIKENESS_PREFIX} modern boardroom setting, ${SUBJECT} at the head of the table. Natural window light, commanding presence, professional confidence, photorealistic, 8k detail."
99
+ "Using reference image, ${LIKENESS_PREFIX} outdoor urban corporate setting. ${SUBJECT} in a walking pose, holding a smartphone, blurred skyscraper background. Dynamic editorial feel, natural daylight, sharp textures, high-quality professional lifestyle."
100
+ )
101
+ ;;
102
+ "CleanGirl")
103
+ PROMPTS=(
104
+ "Using reference image, ${LIKENESS_PREFIX} transform to clean girl aesthetic. ${SUBJECT} with a slicked back bun, minimal natural makeup, white ribbed tank top. Soft window daylight, fresh dewy skin, minimalist gold jewelry, airy neutral tones, Pinterest aesthetic."
105
+ "Using reference image, ${LIKENESS_PREFIX} morning routine aesthetic. White bathroom tiles background, glass of water. ${SUBJECT} with a fresh no-makeup look, soft diffused natural lighting, clean minimal vibe, high-resolution photography."
106
+ "Using reference image, ${LIKENESS_PREFIX} minimalist home interior, neutral palette. ${SUBJECT} in casual elevated lounge wear, morning light, soft shadows, healthy radiant skin, effortless lifestyle portrait."
107
+ "Using reference image, ${LIKENESS_PREFIX} pilates studio background, ${SUBJECT} in seamless neutral activewear. Fresh skin, minimal accessories, clean health-focused lifestyle, bright airy lighting, realistic texture."
108
+ )
109
+ ;;
110
+ "DarkAcademia")
111
+ PROMPTS=(
112
+ "Using reference image, ${LIKENESS_PREFIX} old library with floor-to-ceiling bookshelves. ${SUBJECT} in a tweed blazer and turtleneck outfit, warm candlelight tones. Intellectual brooding expression, 35mm film grain, moody dark academia aesthetic."
113
+ "Using reference image, ${LIKENESS_PREFIX} Oxford-style stone corridor, overcast autumn setting. ${SUBJECT} in a wool coat and scarf, leather book bag. Fallen leaves, moody atmospheric photography, cinematic film look."
114
+ "Using reference image, ${LIKENESS_PREFIX} vintage study interior, rain-streaked window. ${SUBJECT} in a knit sweater, round glasses, contemplative expression. Dark earthy tones, warm lamp glow, literary atmospheric portrait."
115
+ "Using reference image, ${LIKENESS_PREFIX} autumn botanical garden, ${SUBJECT} in a long wool coat. Moody overcast light, golden leaves, cinematic dark academia film photography, rich textures."
116
+ )
117
+ ;;
118
+ "Anime")
119
+ PROMPTS=(
120
+ "Using reference image, ${LIKENESS_PREFIX} convert ${SUBJECT} to high-quality anime illustration. Studio Ghibli aesthetic, expressive large eyes, soft pastel watercolor colors, clean line art, magical atmosphere, masterpiece quality."
121
+ "Using reference image, ${LIKENESS_PREFIX} transform ${SUBJECT} to a stylish shonen anime character. Dynamic pose, bold cinematic lines, vibrant colors, manga-inspired effects, high-detail digital art style."
122
+ "Using reference image, ${LIKENESS_PREFIX} dark fantasy anime aesthetic for ${SUBJECT}. Dramatic lighting, detailed metallic armor, epic sky background, intricate design, professional anime key visual style."
123
+ "Using reference image, ${LIKENESS_PREFIX} cute chibi character version of ${SUBJECT}. Super deformed proportions, big expressive eyes, pastel colors, kawaii expression, clean vector art style."
124
+ )
125
+ ;;
126
+ "Doctor")
127
+ PROMPTS=(
128
+ "Using reference image, ${LIKENESS_PREFIX} add white lab coat and stethoscope to ${SUBJECT}. Clean hospital hallway blurred background, approachable professional smile, soft clean lighting, medical portrait, trustworthy vibe."
129
+ "Using reference image, ${LIKENESS_PREFIX} place ${SUBJECT} in a modern clinic environment. Wearing scrubs, calm reassuring expression, clean professional lighting, high-resolution medical photography."
130
+ )
131
+ ;;
132
+ "Lawyer")
133
+ PROMPTS=(
134
+ "Using reference image, ${LIKENESS_PREFIX} ${SUBJECT} in a dark suit and tie, law office mahogany bookshelf background. Authoritative yet approachable expression, Rembrandt lighting, sharp professional portrait, legal magazine style."
135
+ "Using reference image, ${LIKENESS_PREFIX} law firm lobby background, ${SUBJECT} in business formal attire. Commanding presence, professional confidence, cinematic lighting, sharp detail, 8k resolution."
136
+ )
137
+ ;;
138
+ "MobWife")
139
+ PROMPTS=(
140
+ "Using reference image, ${LIKENESS_PREFIX} ${SUBJECT} in an oversized faux fur coat, bold red lips, large dark sunglasses. Manhattan street background, high contrast dramatic lighting, editorial fashion, power pose, mob wife aesthetic."
141
+ "Using reference image, ${LIKENESS_PREFIX} luxury restaurant background, ${SUBJECT} in a full fur coat, heavy gold jewelry. Statement makeup, cinematic dramatic lighting, old Hollywood glamour, rich textures."
142
+ )
143
+ ;;
144
+ "Bali")
145
+ PROMPTS=(
146
+ "Using reference image, ${LIKENESS_PREFIX} iconic Bali rice terraces background at sunrise. ${SUBJECT} in a flowy linen outfit, golden hour lighting, lush tropical greens, travel influencer lifestyle photography."
147
+ "Using reference image, ${LIKENESS_PREFIX} luxury infinite pool overlooking Ubud jungle. ${SUBJECT} in tropical swimwear, golden afternoon light, aspirational travel aesthetic, high-detail water and skin textures."
148
+ )
149
+ ;;
150
+ "90s")
151
+ PROMPTS=(
152
+ "Using reference image, ${LIKENESS_PREFIX} 90s fashion transformation for ${SUBJECT}. Slip dress with cardigan, butterfly clips, choker. Faded film grain, warm nostalgic tones, 90s yearbook photo style."
153
+ "Using reference image, ${LIKENESS_PREFIX} grunge 90s aesthetic for ${SUBJECT}. Plaid flannel shirt, ripped jeans, band t-shirt. Seattle back-alley backdrop, overcast moody light, authentic retro film texture."
154
+ )
155
+ ;;
156
+ "Fitness")
157
+ PROMPTS=(
158
+ "Using reference image, ${LIKENESS_PREFIX} modern premium gym setting. ${SUBJECT} in performance activewear, dramatic studio lighting highlighting muscle definition. Strong confident pose, realistic sweat sheen, high-end fitness photography."
159
+ "Using reference image, ${LIKENESS_PREFIX} outdoor running trail, ${SUBJECT} in athletic gear. Morning golden light, dynamic motion energy, healthy active lifestyle, sharp focus, realistic nature background."
160
+ )
161
+ ;;
162
+ "Christmas")
163
+ PROMPTS=(
164
+ "Using reference image, ${LIKENESS_PREFIX} ${SUBJECT} by a sparkling decorated Christmas tree. Cozy knit sweater, warm fireplace glow, snow falling outside window. Golden bokeh lights, festive holiday atmosphere, cinematic lighting."
165
+ )
166
+ ;;
167
+ "Halloween")
168
+ PROMPTS=(
169
+ "Using reference image, ${LIKENESS_PREFIX} ${SUBJECT} in a haunted Victorian mansion background. Foggy atmosphere, elaborate vampire or witch costume, moody orange and purple lighting, cinematic horror aesthetic."
170
+ )
171
+ ;;
172
+ *)
173
+ echo "Error: Unknown category '$CATEGORY'."
174
+ echo "Supported: LinkedIn, Tinder, Bumble, OldMoney, Cyberpunk, CEO, CleanGirl, DarkAcademia, Anime, Doctor, Lawyer, MobWife, Bali, 90s, Fitness, Christmas, Halloween"
175
+ exit 1
176
+ ;;
177
+ esac
178
+
179
+ # 3. Generate Pack
180
+ LIMIT=$((NUM_IMAGES > ${#PROMPTS[@]} ? ${#PROMPTS[@]} : NUM_IMAGES))
181
+ [ "$JSON_ONLY" = false ] && echo "Generating $LIMIT images for category: $CATEGORY using $MODEL..." >&2
182
+
183
+ RESULTS_JSON="[]"
184
+ LOCAL_FILES=()
185
+
186
+ for (( i=0; i<$LIMIT; i++ )); do
187
+ PROMPT="${PROMPTS[$i]}"
188
+ [ "$JSON_ONLY" = false ] && echo "Generating image $((i+1))/$LIMIT..." >&2
189
+
190
+ # Run the generation script and capture JSON result
191
+ # We don't pass --view to generate-image.sh here because we want to handle the batch opening at the end
192
+ GEN_OUTPUT=$(bash "$GENERATE_SCRIPT" --prompt "$PROMPT" --model "$MODEL" --image-url "$IMAGE_URL" --json)
193
+
194
+ # Append to our results array
195
+ RESULTS_JSON=$(echo "$RESULTS_JSON" | jq ". + [$GEN_OUTPUT]")
196
+
197
+ # 4. Handle Downloading for --view
198
+ if [ "$VIEW_FLAG_LOCAL" = true ]; then
199
+ URL=$(echo "$GEN_OUTPUT" | jq -r '.outputs[0]')
200
+ EXT="${URL##*.}"
201
+ [ -z "$EXT" ] || [[ "$EXT" == http* ]] && EXT="jpg"
202
+ mkdir -p "$OUTPUT_DIR"
203
+ TEMP_FILE="$OUTPUT_DIR/muapi_${CATEGORY}_$((i+1))_$(date +%s).$EXT"
204
+ [ "$JSON_ONLY" = false ] && echo "Downloading $URL to $TEMP_FILE..." >&2
205
+ curl -s -o "$TEMP_FILE" "$URL"
206
+ LOCAL_FILES+=("$TEMP_FILE")
207
+ fi
208
+ done
209
+
210
+ # 5. Final Output Formatting
211
+ if [ "$JSON_ONLY" = true ]; then
212
+ echo "$RESULTS_JSON"
213
+ else
214
+ echo ""
215
+ echo "---"
216
+ echo "## ✨ Your $CATEGORY Photo Pack is Ready!"
217
+ echo "Total Images: $LIMIT"
218
+ echo ""
219
+
220
+ # Extract URLs for markdown display
221
+ URLS=$(echo "$RESULTS_JSON" | jq -r '.[] | .outputs[0]')
222
+
223
+ # Display as Markdown Images (Small Preview) then big links
224
+ COUNTER=1
225
+ for URL in $URLS; do
226
+ echo "### Photo $COUNTER"
227
+ echo "![$CATEGORY Photo $COUNTER]($URL)"
228
+ echo "[View Full Size]($URL)"
229
+ echo ""
230
+ COUNTER=$((COUNTER + 1))
231
+ done
232
+
233
+ echo "---"
234
+ echo "Files saved to MuAPI CDN. You can now use these links anywhere."
235
+ fi
236
+
237
+ # 6. Open all images at once if --view was requested (macOS only)
238
+ if [ "$VIEW_FLAG_LOCAL" = true ] && [[ "$OSTYPE" == "darwin"* ]]; then
239
+ [ "$JSON_ONLY" = false ] && echo "Opening all generated images..." >&2
240
+ open "${LOCAL_FILES[@]}"
241
+ fi
@@ -0,0 +1,78 @@
1
+ ---
2
+ slug: muapi-product-ad-cinematic
3
+ name: muapi-product-ad-cinematic
4
+ version: "1.0.0"
5
+ description: Cinematic 5–10s product ad from a product photo + brand brief.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # Cinematic Product Ad
11
+
12
+ **Cinematic 5–10s product ad from a product photo + brand brief.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `product_image` | image_url | yes | — | URL of the product photo (must already be uploaded). |
19
+ | `brand_brief` | text | yes | — | Mood / style direction (e.g. "luxury minimal", "playful"). |
20
+ | `duration_sec` | int | no | 6 | Final video length in seconds (5–10). |
21
+
22
+
23
+ ## Steps
24
+
25
+ This skill has TWO phases separated by a user pick. Submit them as two
26
+ separate the plan calls — never bundle downstream steps into the
27
+ first plan.
28
+
29
+ ### Phase A — variant exploration (cheap)
30
+
31
+ Submit ONE the plan containing only:
32
+
33
+ 1. **Hero frame variants** — 4 separate `muapi image generate` nodes
34
+ (model=nano-banana-2, aspect_ratio=16:9 by default).
35
+ - Each prompt restyles the product against the brand brief mood. Vary
36
+ lighting, palette, framing, and lens between variants. Keep product
37
+ geometry intact.
38
+ - Reference the user's `product_image` if the model supports image
39
+ conditioning; otherwise describe the product in detail.
40
+
41
+ After the plan executes, end your turn with a brief message listing the 4
42
+ asset_ids and asking the user which one to take forward (e.g.
43
+ "Pick a hero (asset_1, asset_2, asset_3, or asset_4)?"). Wait.
44
+
45
+ ### Phase B — commit on the picked hero (expensive)
46
+
47
+ Once the user replies with their pick, submit a SECOND the plan:
48
+
49
+ 1. **Upscale** the picked frame — `enhance_image` (operation=upscale).
50
+ 2. **Animate** the upscaled frame — `muapi video from-image` (model=kling-v3.0-standard-image-to-video,
51
+ duration={{duration_sec}}, prompt="slow cinematic push-in, soft
52
+ volumetric light, subtle product micro-rotation"). Reference the
53
+ upscale's URL with `$nX.url`.
54
+ 3. **Background music** — `muapi audio create` (kind=music) — runs in parallel
55
+ with the upscale/animate. Style derived from `brand_brief` (luxury →
56
+ "ambient cinematic, warm strings, slow tempo, instrumental"). Duration
57
+ ≈ video length.
58
+ 4. Return the upscaled hero image and the final video.
59
+
60
+ ## Notes
61
+ - If the brief mentions "luxury", bias the palette to gold/black; for "playful",
62
+ bias to bright/saturated.
63
+ - If video gen fails after failover, fall back to a still-frame slideshow
64
+ (just return the upscaled hero + music).
65
+ - Don't auto-confirm step 4 — its cost (~80 cr) deserves a user nod.
66
+
67
+ ## Trigger Keywords
68
+
69
+ `product ad`, `commercial`, `cinematic ad`, `product video`
70
+
71
+
72
+ ---
73
+
74
+ ## Notes for the Executing Agent
75
+
76
+ - This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Use `muapi auth configure` first if `MUAPI_API_KEY` is unset.
77
+ - For model IDs without a CLI alias yet, fall back to the raw endpoint via `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'` and poll with `muapi predict wait <request_id>`.
78
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,76 @@
1
+ ---
2
+ slug: muapi-product-campaign
3
+ name: muapi-product-campaign
4
+ version: "1.0.0"
5
+ description: Generate a full multi-channel product campaign — hero visuals, social media assets, short ad video, and platform-specific crops for an end-to-end launch campaign.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # Product Campaign Pack
11
+
12
+ **Generate a full multi-channel product campaign — hero visuals, social media assets, short ad video, and platform-specific crops for an end-to-end launch campaign.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `product_name` | text | yes | — | The product being launched or promoted (e.g. "Nova Pro Wireless Earbuds"). |
19
+ | `campaign_message` | text | yes | — | Core campaign message or tagline (e.g. "Sound That Moves You", "Clean Beauty. Real Results."). |
20
+ | `target_audience` | text | yes | — | Who the campaign targets (e.g. "tech enthusiasts 18-35", "wellness-focused women 28-45"). |
21
+ | `visual_style` | text | no | modern, cinematic, premium | Campaign visual direction (e.g. "bold and vibrant", "soft pastel minimal", "dark luxury editorial"). |
22
+ | `product_image` | image_url | no | — | Optional product reference image. |
23
+
24
+
25
+ ## Steps
26
+
27
+ This is a full-scale campaign. Submit a SINGLE the plan with all phases running in parallel.
28
+
29
+ ### Phase A — Campaign Hero (2 assets)
30
+
31
+ 1. **Hero still image** — If `{{product_image}}` provided, use `muapi image edit` (model=`nano-banana-pro-edit`); else `muapi image generate` (model=`nano-banana-pro`):
32
+ - Prompt: `{{campaign_message}} — hero campaign image for {{product_name}}. {{visual_style}} style. Bold composition, product as centerpiece, dramatic lighting. {{target_audience}} aspirational lifestyle. Full-bleed editorial campaign photography. Clean, award-winning advertising quality.`
33
+ - Aspect ratio: 16:9
34
+
35
+ 2. **Square social hero** — `muapi image edit` (model=`bytedance-seedream-v4.5-edit`) using output of step 1:
36
+ - Prompt: `Reframe and optimize for square social media feed format. Keep {{product_name}} centered and dominant. {{visual_style}}, maintain campaign energy. Crop tightly for maximum impact.`
37
+ - Aspect ratio: 1:1
38
+
39
+ ### Phase B — Campaign Video
40
+
41
+ 3. **Short ad video** — If `{{product_image}}` provided, use `muapi video generate` (model=`kling-v3.0-pro-image-to-video`); else `muapi video generate` (model=`veo3.1-text-to-video`):
42
+ - Prompt: `{{campaign_message}} — product campaign video for {{product_name}}. {{visual_style}} cinematic style. Dynamic reveal, product hero moment, {{target_audience}} lifestyle context. Professional commercial grade, 4K quality, smooth camera motion.`
43
+ - Aspect ratio: 16:9, 8-10 seconds
44
+
45
+ ### Phase C — Platform Crops (Parallel)
46
+
47
+ 4. **Instagram Story / Reels format** — `muapi image edit` (model=`flux-kontext-pro-i2i`) from step 1 output:
48
+ - Prompt: `Reframe campaign image for 9:16 vertical Story/Reels format. Top area clear for text overlay. Product and campaign energy preserved. {{visual_style}}.`
49
+ - Aspect ratio: 9:16
50
+
51
+ 5. **LinkedIn / Email banner** — `muapi image edit` (model=`flux-kontext-pro-i2i`) from step 1 output:
52
+ - Prompt: `Reframe for wide email header or LinkedIn banner. 3:1 ultra-wide crop. Product left-aligned, right side clear for headline text. Professional campaign feel.`
53
+ - Aspect ratio: 3:1
54
+
55
+ After generation:
56
+ - Present all assets as a cohesive campaign set
57
+ - Suggest adding a voiceover to the campaign video with `minimax-speech-2.6-hd`
58
+ - Offer a full `social-pack` skill run for additional platform variations
59
+
60
+ ## Notes
61
+ - All phases reference the same product and visual DNA for campaign consistency.
62
+ - For beauty/fashion, use `ai-product-shot` for the hero instead of `nano-banana-pro`.
63
+ - The campaign video should feel like a 6-second premium ad, not a demo.
64
+
65
+ ## Trigger Keywords
66
+
67
+ `product campaign`, `campaign`, `launch campaign`, `product launch`, `marketing campaign`, `brand campaign`, `full campaign`, `campaign assets`
68
+
69
+
70
+ ---
71
+
72
+ ## Notes for the Executing Agent
73
+
74
+ - This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Use `muapi auth configure` first if `MUAPI_API_KEY` is unset.
75
+ - For model IDs without a CLI alias yet, fall back to the raw endpoint via `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'` and poll with `muapi predict wait <request_id>`.
76
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,60 @@
1
+ ---
2
+ slug: muapi-product-showcase-video
3
+ name: muapi-product-showcase-video
4
+ version: "1.0.0"
5
+ description: Create a dynamic product showcase with explosive ingredient arrangements, followed by a realistic motion animation.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # Product Showcase Video
11
+
12
+ **Create a dynamic product showcase with explosive ingredient arrangements, followed by a realistic motion animation.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `product_image` | image_url | yes | — | A clear photo of the product to be showcased. |
19
+ | `ingredients_description` | text | no | fresh and raw ingredients | Description of the ingredients to fly around the product. |
20
+ | `brand_colors` | text | no | matching brand colors | The primary colors to use for the background. |
21
+
22
+
23
+ ## Steps
24
+
25
+ ### Phase A — Dynamic Product Image Generation
26
+
27
+ If `{{product_image}}` is not provided, ask the user to upload a photo of their product.
28
+
29
+ Once the photo is available, submit the plan with ONE step to create the dynamic advertisement image:
30
+
31
+ 1. **Dynamic Image Generation** — `muapi image edit` (model=`bytedance-seedream-v4.5-edit`):
32
+ - Reference Image: `{{product_image}}`
33
+ - Prompt: `Photograph this product in a dramatic modern scene accompanied by an explosive outward dynamic arrangement of {{ingredients_description}} flying around the product, signifying its freshness and nutritional value. Promo ad shot, without text, product is emphasized, with {{brand_colors}} as the background. High-quality commercial lighting, sharp detail, vibrant colors.`
34
+ - Aspect ratio: 1:1 or 4:5
35
+
36
+ Present the generated dynamic image to the user for approval.
37
+
38
+ ### Phase B — Realistic Motion Animation
39
+
40
+ Once the image is approved, submit the plan to animate the scene:
41
+
42
+ 1. **Video Generation** — `muapi video from-image` (model=`seedance-v1.5-pro-i2v-fast`):
43
+ - Reference Image: The dynamic image from Phase A.
44
+ - Prompt: `Create a realistic motion animation of the scene. The ingredients fly outwards from the product in slow motion, with subtle lighting shifts and camera movement. Cinematic quality, smooth animation, professional product commercial vibe.`
45
+ - Aspect ratio: 1:1 or 4:5
46
+
47
+ After generation, present the final product showcase video.
48
+
49
+ ## Trigger Keywords
50
+
51
+ `product showcase video`, `dynamic product ad`, `ingredient explosion`, `fresh product animation`, `commercial video`
52
+
53
+
54
+ ---
55
+
56
+ ## Notes for the Executing Agent
57
+
58
+ - This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Use `muapi auth configure` first if `MUAPI_API_KEY` is unset.
59
+ - For model IDs without a CLI alias yet, fall back to the raw endpoint via `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'` and poll with `muapi predict wait <request_id>`.
60
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.