cue-ai 0.9.1 → 0.9.3

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 (284) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +148 -132
  3. package/bin/cue-learnings +30 -4
  4. package/bin/cue-review-progress +107 -0
  5. package/bin/cue-review-watch +98 -0
  6. package/dist/cue.js +4328 -3108
  7. package/package.json +2 -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/commerce/profile.yaml +0 -2
  13. package/profiles/coolify/profile.yaml +0 -1
  14. package/profiles/core/profile.yaml +78 -3
  15. package/profiles/dash-merge-test/profile.yaml +6 -1
  16. package/profiles/designer/profile.yaml +9 -1
  17. package/profiles/dropshipping/profile.yaml +69 -0
  18. package/profiles/frontend/profile.yaml +4 -0
  19. package/profiles/google-ads/profile.yaml +34 -0
  20. package/profiles/google-analytics/profile.yaml +34 -0
  21. package/profiles/google-drive/profile.yaml +34 -0
  22. package/profiles/gstack/profile.yaml +117 -27
  23. package/profiles/marketing/profile.yaml +0 -1
  24. package/profiles/media/README.md +70 -0
  25. package/profiles/media/profile.yaml +104 -0
  26. package/profiles/nano-banana/profile.yaml +52 -0
  27. package/profiles/ops/profile.yaml +1 -2
  28. package/profiles/secops/profile.yaml +3 -0
  29. package/profiles/skill-writer/profile.yaml +19 -0
  30. package/profiles/video/profile.yaml +3 -0
  31. package/profiles/web-frontend-base/profile.yaml +6 -0
  32. package/profiles/webshop/profile.yaml +0 -1
  33. package/profiles/webshop-google/profile.yaml +1 -0
  34. package/resources/mcps/configs/claude.sanitized.json +91 -6
  35. package/resources/mcps/configs/claude_runtime.sanitized.json +40 -1
  36. package/resources/mcps/configs/codex.sanitized.json +29 -0
  37. package/resources/skills/skills/career/job-hunter/LICENSE +21 -0
  38. package/resources/skills/skills/career/job-hunter/README.md +323 -0
  39. package/resources/skills/skills/career/job-hunter/SKILL.md +91 -0
  40. package/resources/skills/skills/career/job-hunter/agents/README.md +96 -0
  41. package/resources/skills/skills/career/job-hunter/agents/apply-assessment-prep.md +195 -0
  42. package/resources/skills/skills/career/job-hunter/agents/apply-ats-scan.md +155 -0
  43. package/resources/skills/skills/career/job-hunter/agents/apply-bias-audit.md +224 -0
  44. package/resources/skills/skills/career/job-hunter/agents/apply-cover-letter.md +69 -0
  45. package/resources/skills/skills/career/job-hunter/agents/apply-decode-jd.md +117 -0
  46. package/resources/skills/skills/career/job-hunter/agents/apply-fit-score.md +183 -0
  47. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-audit.md +74 -0
  48. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-scrape.md +255 -0
  49. package/resources/skills/skills/career/job-hunter/agents/apply-portfolio-brief.md +123 -0
  50. package/resources/skills/skills/career/job-hunter/agents/apply-reality-check.md +164 -0
  51. package/resources/skills/skills/career/job-hunter/agents/apply-reference-prep.md +150 -0
  52. package/resources/skills/skills/career/job-hunter/agents/apply-rejection-analysis.md +172 -0
  53. package/resources/skills/skills/career/job-hunter/agents/apply-resume.md +70 -0
  54. package/resources/skills/skills/career/job-hunter/agents/apply-skills-gap-filler.md +109 -0
  55. package/resources/skills/skills/career/job-hunter/agents/career-internal.md +94 -0
  56. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-content.md +173 -0
  57. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-scanner.md +262 -0
  58. package/resources/skills/skills/career/job-hunter/agents/career-network-message.md +108 -0
  59. package/resources/skills/skills/career/job-hunter/agents/career-promote.md +102 -0
  60. package/resources/skills/skills/career/job-hunter/agents/career-review.md +71 -0
  61. package/resources/skills/skills/career/job-hunter/agents/interview-debrief.md +117 -0
  62. package/resources/skills/skills/career/job-hunter/agents/interview-mock.md +171 -0
  63. package/resources/skills/skills/career/job-hunter/agents/interview-panel-decoder.md +152 -0
  64. package/resources/skills/skills/career/job-hunter/agents/interview-prep.md +184 -0
  65. package/resources/skills/skills/career/job-hunter/agents/interview-question-bank.md +133 -0
  66. package/resources/skills/skills/career/job-hunter/agents/interview-research.md +148 -0
  67. package/resources/skills/skills/career/job-hunter/agents/offer-compare.md +117 -0
  68. package/resources/skills/skills/career/job-hunter/agents/offer-counteroffer.md +144 -0
  69. package/resources/skills/skills/career/job-hunter/agents/offer-deadline-manager.md +148 -0
  70. package/resources/skills/skills/career/job-hunter/agents/offer-negotiate.md +126 -0
  71. package/resources/skills/skills/career/job-hunter/agents/offer-schedule.md +99 -0
  72. package/resources/skills/skills/career/job-hunter/agents/offer-thankyou.md +80 -0
  73. package/resources/skills/skills/career/job-hunter/agents/search-company-research.md +146 -0
  74. package/resources/skills/skills/career/job-hunter/agents/search-follow-up.md +129 -0
  75. package/resources/skills/skills/career/job-hunter/agents/search-ghost-job-detector.md +152 -0
  76. package/resources/skills/skills/career/job-hunter/agents/search-inbox-scan.md +193 -0
  77. package/resources/skills/skills/career/job-hunter/agents/search-interview-scorecard.md +164 -0
  78. package/resources/skills/skills/career/job-hunter/agents/search-jobs.md +149 -0
  79. package/resources/skills/skills/career/job-hunter/agents/search-momentum-check.md +194 -0
  80. package/resources/skills/skills/career/job-hunter/agents/search-outreach.md +85 -0
  81. package/resources/skills/skills/career/job-hunter/agents/search-referral-finder.md +124 -0
  82. package/resources/skills/skills/career/job-hunter/agents/search-salary.md +96 -0
  83. package/resources/skills/skills/career/job-hunter/agents/search-send-email.md +109 -0
  84. package/resources/skills/skills/career/job-hunter/agents/search-tracker-update.md +127 -0
  85. package/resources/skills/skills/career/job-hunter/inputs/README.md +26 -0
  86. package/resources/skills/skills/career/job-hunter/inputs/apply-linkedin-url.txt +8 -0
  87. package/resources/skills/skills/career/job-hunter/inputs/interview-context.md +24 -0
  88. package/resources/skills/skills/career/job-hunter/inputs/job-description.md +20 -0
  89. package/resources/skills/skills/career/job-hunter/inputs/job-search-criteria.md +36 -0
  90. package/resources/skills/skills/career/job-hunter/inputs/my-linkedin.md +24 -0
  91. package/resources/skills/skills/career/job-hunter/inputs/my-resume.md +28 -0
  92. package/resources/skills/skills/career/job-hunter/inputs/search-outreach-target.md +24 -0
  93. package/resources/skills/skills/career/job-hunter/rules/README.md +37 -0
  94. package/resources/skills/skills/career/job-hunter/rules/writing-rules.md +81 -0
  95. package/resources/skills/skills/career/resume-version-manager/SKILL.md +351 -0
  96. package/resources/skills/skills/career/salary-negotiation-prep/SKILL.md +378 -0
  97. package/resources/skills/skills/design/banana/SKILL.md +375 -0
  98. package/resources/skills/skills/design/banana/references/cost-tracking.md +47 -0
  99. package/resources/skills/skills/design/banana/references/gemini-models.md +236 -0
  100. package/resources/skills/skills/design/banana/references/mcp-tools.md +145 -0
  101. package/resources/skills/skills/design/banana/references/post-processing.md +192 -0
  102. package/resources/skills/skills/design/banana/references/presets.md +69 -0
  103. package/resources/skills/skills/design/banana/references/prompt-engineering.md +481 -0
  104. package/resources/skills/skills/design/banana/scripts/batch.py +97 -0
  105. package/resources/skills/skills/design/banana/scripts/cost_tracker.py +191 -0
  106. package/resources/skills/skills/design/banana/scripts/edit.py +159 -0
  107. package/resources/skills/skills/design/banana/scripts/generate.py +168 -0
  108. package/resources/skills/skills/design/banana/scripts/presets.py +154 -0
  109. package/resources/skills/skills/design/banana/scripts/setup_mcp.py +151 -0
  110. package/resources/skills/skills/design/banana/scripts/validate_setup.py +133 -0
  111. package/resources/skills/skills/eu-funding/grant-outreach/SKILL.md +70 -0
  112. package/resources/skills/skills/eu-funding/hu-grant-finder/SKILL.md +114 -0
  113. package/resources/skills/skills/eu-funding/hu-grant-finder/evals.md +26 -0
  114. package/resources/skills/skills/eu-funding/ted-tender-search/SKILL.md +80 -0
  115. package/resources/skills/skills/eu-funding/ted-tender-search/evals.md +26 -0
  116. package/resources/skills/skills/eu-funding/ted-tender-search/scripts/ted-search.sh +46 -0
  117. package/resources/skills/skills/github/gx-agents/SKILL.md +96 -0
  118. package/resources/skills/skills/gstack/ship/SKILL.md +13 -0
  119. package/resources/skills/skills/media/3d-logo-animation/SKILL.md +59 -0
  120. package/resources/skills/skills/media/action-figure-generator/SKILL.md +48 -0
  121. package/resources/skills/skills/media/ad-creative/SKILL.md +79 -0
  122. package/resources/skills/skills/media/ai-clipping/SKILL.md +194 -0
  123. package/resources/skills/skills/media/ai-clipping/scripts/run-ai-clipping.sh +200 -0
  124. package/resources/skills/skills/media/ai-fight-scene/SKILL.md +132 -0
  125. package/resources/skills/skills/media/amazon-product-listing/SKILL.md +68 -0
  126. package/resources/skills/skills/media/animal-video-generator/SKILL.md +59 -0
  127. package/resources/skills/skills/media/award-ceremony-video/SKILL.md +87 -0
  128. package/resources/skills/skills/media/blog-header/SKILL.md +61 -0
  129. package/resources/skills/skills/media/brand-kit/SKILL.md +72 -0
  130. package/resources/skills/skills/media/brochures/SKILL.md +65 -0
  131. package/resources/skills/skills/media/cartoon-dance-animation/SKILL.md +62 -0
  132. package/resources/skills/skills/media/character-story-video/SKILL.md +84 -0
  133. package/resources/skills/skills/media/chibi-collage-effect/SKILL.md +63 -0
  134. package/resources/skills/skills/media/cinema-director/SKILL.md +93 -0
  135. package/resources/skills/skills/media/cinema-director/scripts/generate-film.sh +78 -0
  136. package/resources/skills/skills/media/color-analysis-board/SKILL.md +71 -0
  137. package/resources/skills/skills/media/core-edit/SKILL.md +48 -0
  138. package/resources/skills/skills/media/core-edit/edit-image.sh +54 -0
  139. package/resources/skills/skills/media/core-edit/enhance-image.sh +191 -0
  140. package/resources/skills/skills/media/core-edit/lipsync.sh +144 -0
  141. package/resources/skills/skills/media/core-edit/video-effects.sh +193 -0
  142. package/resources/skills/skills/media/core-media/SKILL.md +49 -0
  143. package/resources/skills/skills/media/core-media/create-music.sh +169 -0
  144. package/resources/skills/skills/media/core-media/generate-image.sh +161 -0
  145. package/resources/skills/skills/media/core-media/generate-video.sh +137 -0
  146. package/resources/skills/skills/media/core-media/image-to-video.sh +228 -0
  147. package/resources/skills/skills/media/core-media/schema_data.json +18708 -0
  148. package/resources/skills/skills/media/core-media/upload.sh +41 -0
  149. package/resources/skills/skills/media/core-platform/SKILL.md +41 -0
  150. package/resources/skills/skills/media/core-platform/check-result.sh +37 -0
  151. package/resources/skills/skills/media/core-platform/setup.sh +31 -0
  152. package/resources/skills/skills/media/couple-grid-creator/SKILL.md +47 -0
  153. package/resources/skills/skills/media/design-guide/SKILL.md +73 -0
  154. package/resources/skills/skills/media/drone-style-video/SKILL.md +61 -0
  155. package/resources/skills/skills/media/fashion-try-on/SKILL.md +61 -0
  156. package/resources/skills/skills/media/floor-plan-rendering/SKILL.md +56 -0
  157. package/resources/skills/skills/media/freeze-effect-video/SKILL.md +100 -0
  158. package/resources/skills/skills/media/giant-product-showcase/SKILL.md +61 -0
  159. package/resources/skills/skills/media/instagram-post/SKILL.md +58 -0
  160. package/resources/skills/skills/media/interior-design/SKILL.md +61 -0
  161. package/resources/skills/skills/media/interior-design-visualizer/SKILL.md +57 -0
  162. package/resources/skills/skills/media/jewelry-product-video/SKILL.md +61 -0
  163. package/resources/skills/skills/media/kdenlive/SKILL.md +106 -0
  164. package/resources/skills/skills/media/kdenlive/scripts/assemble.sh +57 -0
  165. package/resources/skills/skills/media/kdenlive/scripts/common.sh +30 -0
  166. package/resources/skills/skills/media/kdenlive/scripts/inspect.sh +19 -0
  167. package/resources/skills/skills/media/kdenlive/scripts/reframe.sh +22 -0
  168. package/resources/skills/skills/media/kdenlive/scripts/render.sh +16 -0
  169. package/resources/skills/skills/media/kdenlive/scripts/title-card.sh +25 -0
  170. package/resources/skills/skills/media/keyboard-art-maker/SKILL.md +44 -0
  171. package/resources/skills/skills/media/logo-branding/SKILL.md +70 -0
  172. package/resources/skills/skills/media/logo-creator/SKILL.md +80 -0
  173. package/resources/skills/skills/media/logo-creator/scripts/create-logo.sh +38 -0
  174. package/resources/skills/skills/media/logo-generator/SKILL.md +56 -0
  175. package/resources/skills/skills/media/multi-angle-reshoot/SKILL.md +70 -0
  176. package/resources/skills/skills/media/multi-angle-shots/SKILL.md +73 -0
  177. package/resources/skills/skills/media/music-video/SKILL.md +61 -0
  178. package/resources/skills/skills/media/nano-banana/SKILL.md +80 -0
  179. package/resources/skills/skills/media/nano-banana/scripts/generate-nano-art.sh +54 -0
  180. package/resources/skills/skills/media/one-shot-video/SKILL.md +56 -0
  181. package/resources/skills/skills/media/photo-pack-generator/SKILL.md +205 -0
  182. package/resources/skills/skills/media/photo-pack-generator/scripts/generate-pack.sh +241 -0
  183. package/resources/skills/skills/media/product-ad-cinematic/SKILL.md +78 -0
  184. package/resources/skills/skills/media/product-campaign/SKILL.md +76 -0
  185. package/resources/skills/skills/media/product-showcase-video/SKILL.md +60 -0
  186. package/resources/skills/skills/media/product-video-ad-maker/SKILL.md +59 -0
  187. package/resources/skills/skills/media/rednote-cover/SKILL.md +57 -0
  188. package/resources/skills/skills/media/seedance-2/SKILL.md +632 -0
  189. package/resources/skills/skills/media/seedance-2/scripts/generate-seedance.sh +701 -0
  190. package/resources/skills/skills/media/selfie-with-celebrities/SKILL.md +64 -0
  191. package/resources/skills/skills/media/social-media-video/SKILL.md +277 -0
  192. package/resources/skills/skills/media/social-media-video/scripts/run-social-video.sh +316 -0
  193. package/resources/skills/skills/media/social-pack/SKILL.md +58 -0
  194. package/resources/skills/skills/media/storyboard/SKILL.md +57 -0
  195. package/resources/skills/skills/media/storyboard-to-cooking-video/SKILL.md +143 -0
  196. package/resources/skills/skills/media/talking-baby-video/SKILL.md +57 -0
  197. package/resources/skills/skills/media/ugc-ads-workflow/SKILL.md +70 -0
  198. package/resources/skills/skills/media/ugc-lifestyle-try-on/SKILL.md +65 -0
  199. package/resources/skills/skills/media/ugc-video-factory/SKILL.md +134 -0
  200. package/resources/skills/skills/media/ui-design/SKILL.md +81 -0
  201. package/resources/skills/skills/media/ui-design/scripts/generate-mockup.sh +49 -0
  202. package/resources/skills/skills/media/url-to-design/SKILL.md +61 -0
  203. package/resources/skills/skills/media/workflow/SKILL.md +197 -0
  204. package/resources/skills/skills/media/workflow/scripts/discover-workflow.sh +18 -0
  205. package/resources/skills/skills/media/workflow/scripts/generate-workflow.sh +33 -0
  206. package/resources/skills/skills/media/workflow/scripts/interactive-run.sh +16 -0
  207. package/resources/skills/skills/media/workflow/scripts/list-workflows.sh +20 -0
  208. package/resources/skills/skills/media/workflow/scripts/run-workflow.sh +34 -0
  209. package/resources/skills/skills/media/youtube-shorts/SKILL.md +173 -0
  210. package/resources/skills/skills/media/youtube-shorts/scripts/run-youtube-shorts.sh +141 -0
  211. package/resources/skills/skills/media/youtube-thumbnail/SKILL.md +66 -0
  212. package/resources/skills/skills/meta/cue-developer/references/architecture.md +2 -2
  213. package/resources/skills/skills/meta/cue-usage/SKILL.md +1 -1
  214. package/resources/skills/skills/meta/focus/SKILL.md +62 -0
  215. package/resources/skills/skills/meta/profile-fit-monitor/SKILL.md +2 -2
  216. package/resources/skills/skills/meta/profile-optimizer/SKILL.md +1 -1
  217. package/resources/skills/skills/meta/profile-suggest/SKILL.md +7 -7
  218. package/resources/skills/skills/meta/profile-summon/SKILL.md +159 -0
  219. package/resources/skills/skills/meta/profile-summon/evals/evals.json +53 -0
  220. package/resources/skills/skills/meta/save-profile/SKILL.md +1 -1
  221. package/resources/skills/skills/meta/skill-reviewer/SKILL.md +3 -0
  222. package/resources/skills/skills/meta/skill-reviewer/references/tdd-for-skills.md +55 -0
  223. package/resources/skills/skills/research/find-skills/SKILL.md +1 -1
  224. package/resources/skills/skills/review/code-review-deep/SKILL.md +20 -0
  225. package/resources/skills/skills/security/trivy-scan/SKILL.md +139 -0
  226. package/resources/skills/skills/security/trivy-scan/scripts/ensure-trivy.sh +21 -0
  227. package/resources/skills/skills/tools/ccusage/SKILL.md +142 -0
  228. package/resources/skills/skills/tools/portless/SKILL.md +186 -0
  229. package/src/commands/_index.ts +8 -0
  230. package/src/commands/ai.ts +2 -2
  231. package/src/commands/auto-detect.test.ts +74 -0
  232. package/src/commands/auto-detect.ts +9 -7
  233. package/src/commands/cli.test.ts +20 -4
  234. package/src/commands/cli.ts +36 -20
  235. package/src/commands/create-profile.ts +2 -2
  236. package/src/commands/debug.ts +2 -2
  237. package/src/commands/discover.ts +14 -4
  238. package/src/commands/export-docker.ts +1 -1
  239. package/src/commands/features-batch1.test.ts +1 -1
  240. package/src/commands/gates.ts +1 -1
  241. package/src/commands/import-profile.ts +1 -1
  242. package/src/commands/init.ts +15 -11
  243. package/src/commands/install.test.ts +192 -0
  244. package/src/commands/install.ts +610 -0
  245. package/src/commands/launch-handoff.e2e.test.ts +33 -1
  246. package/src/commands/launch.e2e.test.ts +15 -10
  247. package/src/commands/launch.ts +73 -116
  248. package/src/commands/materialize.ts +2 -2
  249. package/src/commands/prune.ts +1 -1
  250. package/src/commands/security-audit.ts +1 -1
  251. package/src/commands/shell.ts +7 -7
  252. package/src/commands/skill-report.ts +1 -1
  253. package/src/commands/skills.ts +3 -3
  254. package/src/commands/snapshot.ts +2 -2
  255. package/src/commands/summon.test.ts +116 -0
  256. package/src/commands/summon.ts +338 -0
  257. package/src/commands/trigger-gaps.ts +1 -1
  258. package/src/commands/use.ts +47 -3
  259. package/src/commands/watch-live.ts +5 -5
  260. package/src/commands/watch.ts +8 -8
  261. package/src/index.ts +2 -0
  262. package/src/lib/active-sessions.test.ts +3 -3
  263. package/src/lib/active-sessions.ts +4 -4
  264. package/src/lib/analytics.ts +13 -1
  265. package/src/lib/auto-detect.test.ts +172 -8
  266. package/src/lib/auto-detect.ts +191 -136
  267. package/src/lib/codex-persona-parity.test.ts +58 -0
  268. package/src/lib/companion-detect.test.ts +43 -1
  269. package/src/lib/companion-detect.ts +35 -0
  270. package/src/lib/credentials-sync.test.ts +121 -1
  271. package/src/lib/credentials-sync.ts +95 -1
  272. package/src/lib/cwd-resolver.test.ts +8 -8
  273. package/src/lib/cwd-resolver.ts +2 -2
  274. package/src/lib/dashboard-merge.test.ts +9 -4
  275. package/src/lib/dashboard-server.ts +1 -1
  276. package/src/lib/picker.test.ts +1 -1
  277. package/src/lib/picker.ts +5 -5
  278. package/src/lib/profile-merge.test.ts +8 -0
  279. package/src/lib/profile-names.test.ts +3 -3
  280. package/src/lib/runtime-install.ts +166 -0
  281. package/src/lib/runtime-materializer.test.ts +137 -0
  282. package/src/lib/runtime-materializer.ts +105 -2
  283. package/src/lib/skill-router.test.ts +38 -0
  284. package/src/lib/skill-router.ts +65 -4
@@ -0,0 +1,58 @@
1
+ ---
2
+ slug: muapi-social-pack
3
+ name: muapi-social-pack
4
+ version: "1.0.0"
5
+ description: Re-render a hero image into Instagram, TikTok, YouTube-shorts and Twitter/X aspect ratios.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # Social Media Pack
11
+
12
+ **Re-render a hero image into Instagram, TikTok, YouTube-shorts and Twitter/X aspect ratios.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `source_image` | image_url | yes | — | URL of the hero image (or asset_id from this session). |
19
+ | `caption_idea` | text | no | — | Optional caption / overlay direction (kept short). |
20
+ | `formats` | list | no | 1:1, 9:16, 4:5, 16:9 | Aspect ratios to produce. |
21
+
22
+
23
+ ## Steps
24
+
25
+ Use the plan to fan out one node per format.
26
+
27
+ 1. For each requested aspect ratio in `{{formats}}`:
28
+ - Call `muapi image edit` (model=nano-banana-2-edit) with the source image.
29
+ - Prompt: "Reframe the composition to {{aspect_ratio}} for social media.
30
+ Keep the subject centred and uncropped. Match the original lighting
31
+ and palette. {{caption_idea_hint}}".
32
+ - Where `{{caption_idea_hint}}` = "Leave headroom at the top for a
33
+ caption: '<caption_idea>'." (only if caption_idea is non-empty).
34
+ 2. All formats run in parallel (no inter-node dependencies).
35
+ 3. Return one asset id per format, labelled with the platform it suits:
36
+ - 1:1 → Instagram feed
37
+ - 9:16 → TikTok / IG Reels / YT Shorts
38
+ - 4:5 → Instagram portrait
39
+ - 16:9 → Twitter / X / YouTube
40
+ - 21:9 → cinematic banner
41
+
42
+ ## Notes
43
+ - Don't generate fresh images — only reframe / re-edit the source.
44
+ - If the source already matches a format, skip that node and surface the
45
+ original asset id for it.
46
+
47
+ ## Trigger Keywords
48
+
49
+ `social pack`, `resize for social`, `cross-post`, `multi-platform`
50
+
51
+
52
+ ---
53
+
54
+ ## Notes for the Executing Agent
55
+
56
+ - 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.
57
+ - 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>`.
58
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,57 @@
1
+ ---
2
+ slug: muapi-storyboard
3
+ name: muapi-storyboard
4
+ version: "1.0.0"
5
+ description: Generate N keyframes for a short story or scene sequence (image only, no video).
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # Storyboard Generator
11
+
12
+ **Generate N keyframes for a short story or scene sequence (image only, no video).**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `premise` | text | yes | — | One-line story premise (e.g. "lonely robot finds a tiny mechanical bird friend"). |
19
+ | `scenes` | int | no | 6 | Number of keyframes to produce. |
20
+ | `style` | text | no | cinematic, photoreal, soft lighting, 16:9 | Visual style tags applied to every keyframe. |
21
+
22
+
23
+ ## Steps
24
+
25
+ Use the plan to dispatch all N keyframes in a single parallel layer.
26
+
27
+ 1. Decompose `premise` into `{{scenes}}` story beats with a clear arc:
28
+ setup → inciting moment → escalation → climax → resolution.
29
+ - Each beat gets a one-paragraph visual description.
30
+ - Maintain character / object continuity across beats (same character
31
+ appearance, same world).
32
+ 2. For each beat, create a `muapi image generate` node (model=nano-banana-2, aspect_ratio=16:9):
33
+ - Prompt = `"<beat description>. {{style}}"`.
34
+ - Tier: balanced (these are reference keyframes, not finals).
35
+ - Aspect ratio: 16:9.
36
+ 3. Run the plan in parallel (no `depends_on` between keyframes).
37
+ 4. Return the asset ids in beat order with a one-line caption per scene.
38
+
39
+ ## Notes
40
+ - Don't animate, upscale, or add audio — this skill is keyframes only.
41
+ If the user wants video, suggest the `music-video` skill afterward.
42
+ - For consistency, repeat character description verbatim in every prompt
43
+ ("a small rusty humanoid robot with…") rather than relying on the model
44
+ to remember.
45
+
46
+ ## Trigger Keywords
47
+
48
+ `storyboard`, `keyframes`, `scene sequence`, `story panels`
49
+
50
+
51
+ ---
52
+
53
+ ## Notes for the Executing Agent
54
+
55
+ - 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.
56
+ - 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>`.
57
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,143 @@
1
+ ---
2
+ slug: muapi-storyboard-to-cooking-video
3
+ name: muapi-storyboard-to-cooking-video
4
+ version: "1.0.0"
5
+ description: Turn a single photo of a person into a 15-second cinematic pasta-making (or other cuisine) tutorial video. First builds a composite reference sheet (character + kitchen + 9-step action board), then animates the full cooking sequence with audio in a single continuous shot.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # Storyboard to Cooking Video
11
+
12
+ **Turn a single photo of a person into a polished 15-second cinematic cooking tutorial. The skill first generates a high-end production reference sheet — character look, kitchen environment, and a 9-panel action board — then drives a continuous reference-to-video render that keeps the subject's face, outfit, and kitchen consistent across every frame.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `person_image` | image_url | yes | — | URL of the person photo. Used as identity reference in BOTH the reference sheet and the final video. |
19
+ | `dish` | text | no | fresh pasta | The cooking subject (e.g. "fresh pasta", "sushi rolls", "wood-fired pizza", "matcha latte"). Drives the 9-step action board. |
20
+ | `kitchen_style` | text | no | warm rustic-modern Italian | The kitchen aesthetic (e.g. "warm rustic-modern Italian", "minimalist Tokyo", "bright Scandinavian", "moody industrial"). |
21
+ | `outfit` | text | no | white t-shirt, olive green apron, dark trousers | What the person wears throughout the video. |
22
+ | `duration_seconds` | int | no | 15 | Final video duration. Use 15 for the full 9-step arc; 10 collapses to ~6 beats. |
23
+ | `aspect_ratio` | text | no | 16:9 | Output aspect ratio. Use `9:16` for vertical/Reels. |
24
+ | `resolution` | text | no | 720p | Video resolution. Options: `480p`, `720p`. |
25
+
26
+
27
+ ## Steps
28
+
29
+ Submit the plan with TWO sequential steps. Step 2 depends on the output of Step 1.
30
+
31
+ ### Step 1 — Reference Sheet (Composite Storyboard)
32
+
33
+ Generate the composite "production reference board" image. This is a single image, NOT a video frame — it bundles character sheet + location reference + 9-panel action board.
34
+
35
+ **Endpoint:** `gpt-image-v2-edit`
36
+ **CLI:**
37
+
38
+ ```bash
39
+ muapi image edit \
40
+ --model gpt-image-v2-edit \
41
+ --image "{{person_image}}" \
42
+ --image-size "3840x2160" \
43
+ --quality auto \
44
+ --background auto \
45
+ --moderation low \
46
+ --output-format png \
47
+ --prompt "Create one single composite reference sheet for a {{duration_seconds}}-second realistic {{dish}}-making tutorial video. The image should be a clean, high-end production reference board, not a poster with heavy text. Format: {{aspect_ratio}} wide reference sheet, elegant white margins, clean grid layout, realistic cinematic photography style. Concept: {{dish}} tutorial in a {{kitchen_style}} kitchen.
48
+
49
+ Top row: motion / choreography guide with 9 numbered cinematic action panels showing the {{dish}} process step-by-step from raw ingredients to final plated dish.
50
+
51
+ Middle-left: realistic character reference sheet of the uploaded person — preserve their exact face, hair color, hair texture, eye color, skin tone, and all facial features with 100% accuracy. Show the same person in: face close-up, full-body front view, side/action working pose, and back view. Dress them in {{outfit}}. Keep them grounded, approachable, skilled, and cinematic.
52
+
53
+ Middle-right / background: location reference sheet of an elegant {{kitchen_style}} kitchen with tactile surfaces, natural daylight from a large window, hanging cookware, herbs, and premium cooking atmosphere appropriate to the cuisine.
54
+
55
+ Style: realistic, cinematic, warm natural light, shallow depth of field, tactile food photography, premium cooking show aesthetic, rich surface textures.
56
+
57
+ Bottom strip: simple visual icons only for {{duration_seconds}} seconds, {{aspect_ratio}}, realistic, cinematic, tasty, natural camera. Minimal text, no dense paragraphs. Let the visuals do the heavy lifting."
58
+ ```
59
+
60
+ Wait for completion and capture the output URL as `{{reference_sheet_url}}`. Show it to the user and confirm the character likeness + kitchen mood before moving to Step 2 — Step 2 is the expensive call.
61
+
62
+ ### Step 2 — Cooking Video (Reference-to-Video)
63
+
64
+ Animate the full sequence using both the original person photo (identity anchor) and the reference sheet (narrative + environment guide) as dual references.
65
+
66
+ **Endpoint:** `bytedance-seedance-2-0-reference-to-video-fast`
67
+ **CLI:**
68
+
69
+ ```bash
70
+ muapi video generate \
71
+ --model bytedance-seedance-2-0-reference-to-video-fast \
72
+ --image "{{person_image}}" \
73
+ --image "{{reference_sheet_url}}" \
74
+ --aspect-ratio "{{aspect_ratio}}" \
75
+ --duration "{{duration_seconds}}" \
76
+ --resolution "{{resolution}}" \
77
+ --generate-audio true \
78
+ --prompt "The person in @Image1 is the subject — preserve their exact face, hair, eye color, skin tone, and all facial features with 100% accuracy throughout the entire video.
79
+ Use @Image2 as the visual and narrative guide — follow the cooking steps, kitchen setting, outfit, and atmosphere shown in the reference sheet exactly.
80
+ A single continuous cinematic video of the person from @Image1 making {{dish}} in the {{kitchen_style}} kitchen shown in @Image2. They wear {{outfit}} throughout.
81
+
82
+ VIDEO STRUCTURE
83
+ Follow the exact 9-step sequence as shown in @Image2, beat by beat, from raw ingredients through preparation to a final plated close-up.
84
+
85
+ MOTION STYLE
86
+ - Slow, deliberate, satisfying transitions between each step
87
+ - Natural hand and body movement with clear culinary intent
88
+ - Continuous flow with no jump cuts
89
+ - Warm and immersive pacing
90
+
91
+ CAMERA & CINEMATOGRAPHY
92
+ - Close-up shots for hands during mixing, kneading, cutting, plating
93
+ - Medium shots showing the person working at the counter
94
+ - Pull back slightly for the final plating to reveal the full kitchen
95
+ - Shallow depth of field — focus on hands and food, soft background blur
96
+ - No abrupt cuts — smooth match cuts and fluid transitions
97
+
98
+ VISUAL STYLE
99
+ - Warm natural daylight from a large kitchen window
100
+ - Rich tactile textures matching @Image2's environment
101
+ - Full color, warm cinematic color grading
102
+
103
+ CONSISTENCY RULES
104
+ - Same character throughout — face of @Image1 in every frame
105
+ - Same outfit across entire video
106
+ - Same kitchen environment as shown in @Image2
107
+
108
+ AUDIO
109
+ - Soft kitchen ambience, gentle culinary SFX (chopping, sizzling, pouring), light cinematic underscore
110
+ - No dialogue, no narration
111
+
112
+ OUTPUT STYLE
113
+ - Duration: exactly {{duration_seconds}} seconds
114
+ - Polished, cinematic, premium cooking show quality
115
+ - Ends with a beautiful close-up of the finished plated {{dish}}"
116
+ ```
117
+
118
+ After generation:
119
+ - Present the final video URL to the user.
120
+ - Offer follow-ups: vertical 9:16 re-render for Reels, a longer 30s extended cut, or swap `{{dish}}` for a different cuisine using the same person image.
121
+
122
+ ## Notes
123
+
124
+ - **Two-image reference is the whole trick.** `@Image1` locks identity, `@Image2` locks choreography + environment. Never drop one — single-reference runs lose either the face or the kitchen.
125
+ - The reference sheet at Step 1 must be wide (3840x2160). Smaller resolutions blur the 9 action panels and the video model can't read them.
126
+ - `bytedance-seedance-2-0-reference-to-video-fast` natively generates audio when `generate_audio=true`. Always include an audio direction in the prompt; otherwise the soundtrack is random.
127
+ - Real human faces ARE supported here because the person photo is the user's own subject and we route through the reference-to-video endpoint (not the restricted i2v variants).
128
+ - If the user wants a non-cooking sequence (e.g., latte art, plating tutorial, mixology), keep the same two-step structure — only `{{dish}}` and the 9-step description change.
129
+ - For shorter pieces (<= 8s), reduce the action board to 5–6 panels in Step 1; cramming 9 beats into 8s degrades motion quality (single-beat rule).
130
+
131
+ ## Trigger Keywords
132
+
133
+ `cooking video`, `cooking tutorial`, `pasta video`, `recipe video`, `food video`, `chef video`, `cooking storyboard`, `kitchen tutorial`, `cooking reel`, `tutorial video from photo`, `storyboard to video`
134
+
135
+
136
+ ---
137
+
138
+ ## Notes for the Executing Agent
139
+
140
+ - 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.
141
+ - 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>`.
142
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
143
+ - Step 1 must complete and return an output image URL before Step 2 fires — pass that URL as the second `--image` to the video step.
@@ -0,0 +1,57 @@
1
+ ---
2
+ slug: muapi-talking-baby-video
3
+ name: muapi-talking-baby-video
4
+ version: "1.0.0"
5
+ description: Create a viral-style video of a talking baby with custom costumes and scripts.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # Talking Baby Video
11
+
12
+ **Create a viral-style video of a talking baby with custom costumes and scripts.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `baby_costume` | text | no | a pilot uniform | The costume the baby is wearing (e.g., doctor, chef, pilot). |
19
+ | `dialogue` | text | no | Airbus A380 big plane! Go zoom! Have lots seats. People like fly in it. Best plane ever! | The script for the baby to say. |
20
+ | `baby_description` | text | no | A cute 6 months old male baby | Description of the baby. |
21
+
22
+
23
+ ## Steps
24
+
25
+ ### Phase A — Baby Character Generation
26
+
27
+ Submit the plan with ONE step to create the baby character:
28
+
29
+ 1. **Baby Image Generation** — `muapi image generate` (model=`nano-banana` or `wan2.5-text-to-image`):
30
+ - Prompt: `{{baby_description}} sitting and wearing {{baby_costume}}. High-quality photography, soft natural lighting, adorable expression, detailed fabric textures, shallow depth of field, Pixar-like charm but realistic.`
31
+ - Aspect ratio: 9:16 or 1:1
32
+
33
+ Present the baby image to the user for approval.
34
+
35
+ ### Phase B — Talking Animation
36
+
37
+ Once the image is approved, submit the plan to animate the baby talking:
38
+
39
+ 1. **Talking Animation** — `muapi video from-image` (model=`grok-imagine-image-to-video`):
40
+ - Reference Image: The baby image from Phase A.
41
+ - Prompt: `A viral-style talking baby video. The baby is expressive, moving their mouth and head naturally while speaking the following lines: "{{dialogue}}". Subtle facial expressions like blinking and smiling. High-quality animation, smooth movements.`
42
+ - Aspect ratio: 9:16 or 1:1
43
+
44
+ After generation, present the final talking baby video.
45
+
46
+ ## Trigger Keywords
47
+
48
+ `talking baby`, `viral baby video`, `baby pilot`, `baby doctor`, `funny baby animation`
49
+
50
+
51
+ ---
52
+
53
+ ## Notes for the Executing Agent
54
+
55
+ - 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.
56
+ - 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>`.
57
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,70 @@
1
+ ---
2
+ slug: muapi-ugc-ads-workflow
3
+ name: muapi-ugc-ads-workflow
4
+ version: "1.0.0"
5
+ description: Create a User-Generated Content (UGC) video ad by combining a human selfie and a product image, then generating a video script and an animated ad.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # UGC Ads Workflow
11
+
12
+ **Create a User-Generated Content (UGC) video ad by combining a human selfie and a product image, then generating a video script and an animated ad.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `product_name` | text | yes | — | The name of the product being advertised (e.g. "Blume SuperBalm in plum"). |
19
+ | `human_image` | image_url | no | — | A selfie or photo of the human influencer. |
20
+ | `product_image` | image_url | no | — | A clear photo of the product. |
21
+
22
+
23
+ ## Steps
24
+
25
+ ### Phase A — Image Combination
26
+
27
+ If `{{human_image}}` or `{{product_image}}` is not provided, ask the user to upload them or offer to generate them.
28
+
29
+ Once both images are available, submit the plan with ONE step to combine them:
30
+
31
+ 1. **Image Generation** — `muapi image edit` (model=`gpt-image-2-text-to-image`):
32
+ - Reference Images: Use both `{{human_image}}` and `{{product_image}}`.
33
+ - Prompt: `A natural, candid UGC-style photo of the influencer from the first reference image holding and showcasing the product from the second reference image. The influencer is smiling genuinely at the camera, holding the product up. Natural indoor lighting, lifestyle aesthetic, high quality.`
34
+ - Aspect ratio: 9:16 (vertical for TikTok/Reels/Shorts).
35
+
36
+ Present the combined image to the user for approval.
37
+
38
+ ### Phase B — Script & Video Generation
39
+
40
+ 1. **Research & Scripting**: Use your web search tools to find details about `{{product_name}}` to understand its key benefits.
41
+ 2. Based on the research, craft a UGC-style video script with timestamps, similar to this format:
42
+
43
+ *(0-2s) Influencer is holding the {{product_name}}, smiling genuinely to the camera.*
44
+ "Okay, so you know how I'm always looking for that perfect everyday product?"
45
+ *(2-7s) Influencer shows the product closer to the camera...*
46
+ "Well, I found it! This {{product_name}} is seriously so good."
47
+ *(7-12s) Influencer uses/applies the product.*
48
+ "It feels amazing and actually works."
49
+ *(12-15s) Influencer smiles, slightly pouts, and casually shrugs or nods in approval.*
50
+ "It’s totally become my go-to. You have to try it!"
51
+
52
+ 3. **Video Generation**: Submit the plan using an image-to-video model (e.g. `sd-2-omni-reference` or `veo3.1-image-to-video`).
53
+ - Reference Image: The combined image from Phase A.
54
+ - Prompt: Use the visual actions from the script you generated. For example: `A UGC-style video. The influencer holds the {{product_name}}, smiling genuinely. She brings it closer to the camera to show the label, then applies it smoothly. She nods in approval and smiles. Natural movements, talking to the camera, lifestyle vlog style.`
55
+ - Aspect ratio: 9:16
56
+
57
+ After generating the video, present it along with the written script so the user can record their own voiceover or use a lipsync tool later.
58
+
59
+ ## Trigger Keywords
60
+
61
+ `ugc ad`, `ugc video`, `influencer ad`, `product ad video`, `combine product and human`
62
+
63
+
64
+ ---
65
+
66
+ ## Notes for the Executing Agent
67
+
68
+ - 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.
69
+ - 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>`.
70
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,65 @@
1
+ ---
2
+ slug: muapi-ugc-lifestyle-try-on
3
+ name: muapi-ugc-lifestyle-try-on
4
+ version: "1.0.0"
5
+ description: Generate UGC-style (User Generated Content) lifestyle photos of a person wearing or using your product — authentic, relatable, social-media-native imagery.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # UGC Lifestyle Try-On
11
+
12
+ **Generate UGC-style (User Generated Content) lifestyle photos of a person wearing or using your product — authentic, relatable, social-media-native imagery.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `product_name` | text | yes | — | The product to feature (e.g. "white oversized hoodie", "blue light blocking glasses", "leather crossbody bag"). |
19
+ | `product_image` | image_url | yes | — | Product image or photo URL to use as reference for the try-on. |
20
+ | `model_description` | text | no | woman, 25-30 years old, natural look, diverse | Description of the model (e.g. "man, athletic build, 20s", "woman, curvy, 30s, warm skin tone"). |
21
+ | `setting` | text | no | casual lifestyle, natural lighting | Scene and mood (e.g. "urban street style", "cozy home morning routine", "gym workout", "coffee shop"). |
22
+ | `platform` | text | no | instagram | Target platform — "instagram", "tiktok", "pinterest", "amazon". |
23
+
24
+
25
+ ## Steps
26
+
27
+ Submit the plan with TWO steps:
28
+
29
+ ### Step 1 — Outfit/Product Try-On
30
+
31
+ 1. **Try-on generation** — `muapi image edit` (model=`ai-dress-change`) if product is wearable clothing, otherwise `muapi image edit` (model=`flux-kontext-pro-i2i`):
32
+ - For clothing/wearables with `ai-dress-change`:
33
+ - Product: `{{product_image}}`
34
+ - Prompt: `{{model_description}} wearing the product naturally in a {{setting}} environment. Authentic UGC-style photo, candid pose, natural expression.`
35
+ - For accessories/non-clothing with `flux-kontext-pro-i2i`:
36
+ - Prompt: `{{model_description}} using/wearing {{product_name}} in a {{setting}}. The product from the reference image is clearly visible and featured. Natural UGC-style lifestyle photography, authentic candid feel.`
37
+ - Aspect ratio: 4:5 for Instagram, 9:16 for TikTok, 2:3 for Pinterest
38
+
39
+ ### Step 2 — UGC Lifestyle Variant
40
+
41
+ 2. **Lifestyle context shot** — `muapi image edit` (model=`gpt4o-edit`) using the output from Step 1:
42
+ - Prompt: `Make this look like authentic UGC content — add realistic environment context for {{setting}}, adjust lighting to feel natural and unposed, subtle film grain, candid photography style. Keep product {{product_name}} clearly visible and well-lit.`
43
+
44
+ After generation:
45
+ - Present both the try-on and lifestyle variant
46
+ - Offer to generate a 3-image carousel set with different poses/settings
47
+ - Suggest adding a short UGC-style video with `kling-v3.0-pro-image-to-video`
48
+
49
+ ## Notes
50
+ - UGC performs best when it looks "accidental" — avoid overly polished or symmetrical compositions.
51
+ - For TikTok/Reels, suggest animating the best static shot into a video.
52
+ - For Amazon, refer back to the `amazon-product-listing` skill for white-background variants.
53
+
54
+ ## Trigger Keywords
55
+
56
+ `ugc`, `try on`, `lifestyle photo`, `model wearing`, `outfit photo`, `wear product`, `user generated`, `ugc content`, `lifestyle try on`
57
+
58
+
59
+ ---
60
+
61
+ ## Notes for the Executing Agent
62
+
63
+ - 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.
64
+ - 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>`.
65
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,134 @@
1
+ ---
2
+ slug: muapi-ugc-video-factory
3
+ name: muapi-ugc-video-factory
4
+ version: "1.0.0"
5
+ description: Turn a person photo + a product photo + an optional script into a vertical 9:16 UGC-style video ad. Generates a lifestyle hero image (Nano-Banana Pro Edit), then animates it with native audio using Seedance 2.0 VIP image-to-video.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # UGC Video Factory
11
+
12
+ **Turn a person photo + product photo (+ optional script & environment) into a vertical 9:16 UGC-style video ad with native dialogue audio.**
13
+
14
+ A three-stage pipeline:
15
+ 1. **GPT** writes a director-grade ultra-realistic lifestyle photography prompt from your inputs.
16
+ 2. **Nano-Banana Pro Edit** fuses the person + product into a single hero photo (1K, 9:16).
17
+ 3. **Seedance 2.0 VIP Image-to-Video** animates the hero photo into a 10s vertical UGC clip with synced spoken audio.
18
+
19
+ ## Inputs
20
+
21
+ | Name | Type | Required | Default | Description |
22
+ |:---|:---|:---|:---|:---|
23
+ | `person` | image_url | yes | — | Photo of the person who will appear in the ad (face + upper body works best). |
24
+ | `product` | image_url | yes | — | Clear photo of the product (preferably on neutral background, logo/text legible). |
25
+ | `script` | text | no | `Okay… first of all, ship happens. And this hat is honestly my favorite. It also comes in navy and black, so you can pick your vibe.` | The exact line the on-screen person will say (kept short — 1–2 sentences fit 10s comfortably). |
26
+ | `environment` | text | no | `study room, laptop in front of it` | Scene / context where the person is using the product (e.g. "bathroom mirror, morning routine", "coffee shop window seat"). |
27
+
28
+ If `person` or `product` is missing, ask the user to upload them (`muapi upload file <path>`) or offer to generate placeholders before continuing.
29
+
30
+
31
+ ## Steps
32
+
33
+ Run the three steps sequentially — each step's output feeds the next.
34
+
35
+ ### Step 1 — Director Prompt (GPT)
36
+
37
+ Use a GPT model (`gpt-5.1` or whichever chat model is available to the executing agent) with **temperature 0** and **max ~200 tokens** to produce the hero-image prompt.
38
+
39
+ **System prompt:** `You are a helpful assistant.`
40
+
41
+ **User prompt** (substitute `{{person}}`, `{{product}}`, `{{environment}}`):
42
+
43
+ ```
44
+ Uploaded images are being analyzed. Ultra-realistic lifestyle photography with {{person}} and {{product}} and {{environment}}.
45
+
46
+ If the product is wearable (e.g., hat, glasses, hooded sweatshirt), the person wears the product naturally.
47
+
48
+ If the product is carried in the hand (e.g., cream, bottle, thermos), the person holds the product naturally.
49
+
50
+ The product is clearly visible and is the main focus of the image. The logo or text on the product must be legible.
51
+
52
+ The person has a natural and modern look with a minimalist style.
53
+
54
+ The scene is consistent with the context of the product's use: {{environment}}.
55
+
56
+ Lighting: soft natural daylight.
57
+ Background: clean, aesthetic, slightly blurred (shallow depth of field).
58
+ Style: high-end commercial lifestyle photography, realistic textures, 4K quality, vertical 9:16 composition, social-media advertising style. The background and environment should be appropriate to the product (e.g. a woman with a serum could be at home). The person's facial details and the product must remain unchanged.
59
+ ```
60
+
61
+ Capture the GPT response as `{{step1_prompt}}`.
62
+
63
+ ### Step 2 — Hero Image (Nano-Banana Pro Edit)
64
+
65
+ Submit a `muapi image edit` call against the `nano-banana-pro-edit` model:
66
+
67
+ - **Reference images** (`image_urls`): `[ {{person}}, {{product}} ]` — order matters; person first.
68
+ - **Prompt**: `{{step1_prompt}}` from Step 1.
69
+ - **Aspect ratio**: `9:16`
70
+ - **Num images**: `1`
71
+ - **Resolution**: `1K`
72
+ - **Output format**: `jpeg`
73
+
74
+ Capture the resulting image URL as `{{hero_image}}`. Briefly show it to the user for approval before kicking off the video step.
75
+
76
+ ### Step 3 — UGC Video (Seedance 2.0 VIP Image-to-Video)
77
+
78
+ Submit a `muapi video from-image` call against **`seedance-2-vip-image-to-video`** (or the `-fast` variant if the executing agent wants lower latency).
79
+
80
+ - **Start image**: `{{hero_image}}` from Step 2.
81
+ - **Aspect ratio**: `9:16`
82
+ - **Duration**: `10` seconds.
83
+ - **Generate audio**: `true` (native dialogue).
84
+ - **CFG scale**: `0.5`
85
+ - **Negative prompt**: `blur, distort, low quality`
86
+ - **Prompt** (substitute `{{script}}`):
87
+
88
+ ```
89
+ Create a 10-second vertical UGC-style video (9:16).
90
+
91
+ A person is interacting naturally with their setting and product.
92
+
93
+ The product is used naturally:
94
+ - If wearable → the person is wearing it.
95
+ - If handheld → the person is holding or applying it.
96
+
97
+ The video is a single, uninterrupted shot. No cuts. No color changes. No text on screen.
98
+
99
+ The person looks directly at the camera with a relaxed and natural expression.
100
+ They interact comfortably with the product using their hands (adjusting, holding, pointing).
101
+
102
+ They say in a natural, conversational tone:
103
+
104
+ "{{script}}"
105
+
106
+ Subtle hand gestures while speaking.
107
+ End with a small smile or nod.
108
+
109
+ Style: authentic UGC, handheld phone feel, light natural movement, soft daylight, shallow depth of field, TikTok/Reels aesthetic.
110
+ ```
111
+
112
+ Poll the result with `muapi predict wait <request_id>` and download to the user's outputs directory.
113
+
114
+ ## Notes
115
+
116
+ - VIP tier supports 9:16 and durations 4–15s; 10s is the sweet spot for a 1–2 sentence script.
117
+ - Keep the script short — Seedance 2.0 will compress longer scripts and clip words.
118
+ - Seedance VIP tolerates realistic human faces in references (unlike Chinese tier), making it the right choice for UGC.
119
+ - If you want lower latency at the same quality, swap to `seedance-2-vip-image-to-video-fast`.
120
+ - For multi-shot ads, generate several `{{hero_image}}` variations in Step 2 and animate each independently — Seedance VIP does not multi-image i2v at 9:16 + audio.
121
+
122
+ ## Trigger Keywords
123
+
124
+ `ugc video factory`, `ugc video ad`, `person plus product video`, `talking product ad`, `ugc reel`, `lifestyle product video`, `vertical ugc video`
125
+
126
+
127
+ ---
128
+
129
+ ## Notes for the Executing Agent
130
+
131
+ - This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Run `muapi auth configure` first if `MUAPI_API_KEY` is unset.
132
+ - For local files supplied by the user, upload them first: `muapi upload file <path> --output-json --jq '.url'`.
133
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
134
+ - If the `muapi` CLI does not yet alias `nano-banana-pro-edit` or `seedance-2-vip-image-to-video`, fall back to the raw API: `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'`, then poll with `muapi predict wait <request_id>`.