Generate platform-optimized social media graphics and posts. Use when creating content for Instagram, Twitter, LinkedIn, TikTok, or other social platforms.
Turn a message and a platform into ready-to-post graphics. For each asset you produce a Social Graphic Spec โ platform, exact dimensions, layout, overlay copy, and a complete generation prompt โ then generate the image through the repo pipeline (docs/creative_cli.py, model fal-ai/nano-banana-pro). The governing principle: a social graphic is read for under two seconds โ one message, one focal point, one CTA; if a viewer can't get the point from a thumbnail-sized glance, the design fails regardless of how good it looks full-size.
skills/creative/brand-asset.skills/creative/product-photography.skills/creative/product-video (product-led) or skills/creative/talking-head (person-led).skills/creative/creative-strategist first; its style guide feeds this skill.skills/creative/original-design first.Ask in one tight batch, only what's missing:
skills/creative/creative-strategist, brand colors/fonts, product imagery to feature?Infer instead of asking: tone from the platform (LinkedIn โ professional; TikTok โ energetic), colors from any brand materials in the project. Don't stall: with a clear message and platform, state assumptions for the rest and proceed.
| Platform | Format | Pixels | CLI aspect-ratio | Design posture |
|---|---|---|---|---|
| Feed post | 1080ร1080 | 1:1 |
vibrant, high contrast, trending aesthetic | |
| Story / Reel cover | 1080ร1920 | 9:16 |
full-bleed vertical, text in safe zone | |
| Carousel | 1080ร1350 | 4:5 |
one idea per card, visual continuity across cards | |
| Feed post | 1200ร627 | 16:9* |
professional, credible, value-led copy | |
| Document page | 1200ร1500 | 4:5 |
clean, readable, business imagery | |
| Twitter/X | Post image | 1200ร675 | 16:9 |
bold, simple, instant visual impact |
| TikTok | Thumbnail/graphic | 1080ร1920 | 9:16 |
bold text overlays, energetic, authentic feel |
| Standard pin | 1000ร1500 | 2:3 |
vertical, inspiring, high-quality imagery |
*Closest supported ratio; the CLI supports 21:9, 16:9, 3:2, 4:3, 5:4, 1:1, 4:5, 3:4, 2:3, 9:16 โ always pick the nearest and note any crop.
If the user named a platform, use the table above. If not, decide: B2B/professional audience โ LinkedIn; consumer/lifestyle โ Instagram; discovery/how-to/aspirational โ Pinterest; announcement to an existing following โ the platform where they have one (ask only if truly unknown). Multi-platform request โ design the master for the most constrained format first (usually 1:1 or 9:16), then adapt per platform; never stretch one image across all.
If the copy can't fit these limits, the post is carrying more than one message โ split it into a carousel or multiple posts and tell the user why.
Pick one focal point (product shot, illustration, bold typography) and place copy against the quietest area. Decision rules: photo-led โ headline top or bottom third over a darkened/blurred band; typography-led โ headline IS the focal point, minimal imagery; carousel โ identical layout grid on every card, only content changes. Rule of thirds, generous negative space, max 2โ3 font roles (headline / body / CTA).
Formula โ every prompt contains all six parts, in order:
[Platform + format] graphic, [subject/focal point], [color palette from brand or chosen],
[composition: focal point + where copy space is reserved], [tone/mood words],
[dimensions], professional design, high contrast, eye-catching
Always reserve explicit "clean negative space at [position] for text overlay" in the prompt โ nano-banana-pro renders text imperfectly, so plan to overlay final copy in a design tool rather than trusting generated text for anything longer than 2โ3 words.
If FAL_API_KEY (or FAL_KEY) is set, run the repo CLI (docs/fal_api.py under the hood, model fal-ai/nano-banana-pro):
python docs/creative_cli.py social \
--platform instagram --topic "Product Launch" \
--prompt "<full prompt>" --aspect-ratio 1:1 --resolution 2K
--platform accepts instagram|linkedin|twitter|tiktok|pinterest. Generate --num-images 2 when the user is choosing between directions. If no key is set, deliver the spec with ready-to-run commands instead.
One block per asset; a multi-platform set is the master followed by adaptation blocks:
# Social Graphic Spec โ [Campaign/Message]
## Asset 1 โ [Platform ยท Format]
- **Dimensions:** 1080ร1080 (aspect `1:1`) ยท **Role:** master | adaptation
- **Message:** [one sentence]
### Copy
- Headline: "..." (โค10 words)
- Body: "..." (โค2 lines, or โ)
- CTA: "..."
### Layout
- Focal point: ... ยท Copy placement: ... ยท Palette: [colors + source: brand guide / chosen]
### Generation prompt
> [full prompt, all six parts]
`python docs/creative_cli.py social --platform [x] --topic "[x]" --prompt "..." --aspect-ratio [x] --resolution 2K`
### Result
- [generated file path(s), or "pending โ FAL_API_KEY not set"]
- Post-gen step: overlay final copy in design tool: [yes/no + what]
## Asset 2 โ [Platform ยท Format]
(same structure; for adaptations, note only what changes from the master)
skills/creative/creative-strategist โ feeds in: the style guide (palette, typography, mood) every spec must obey.skills/creative/original-design โ feeds in: a design-language brief when the user wants an original visual world; every graphic becomes an artifact of it.skills/creative/product-photography โ feeds in: product shots reused as focal-point imagery.skills/creative/product-video โ feeds in: hero keyframes reused as post visuals; consumes: nothing.skills/creative/brand-asset โ feeds in: logos/marks to place; consumes: nothing.skills/creative/orchestrator โ routes multi-asset campaigns through this skill per platform.