sticker-creator
Create die-cut sticker style cards via Nano Banana Pro. Use for social media cards, earnings cards, brand stickers, announcement cards, and any content formatted as a bold, clean sticker with a thick white border.
Best use case
sticker-creator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create die-cut sticker style cards via Nano Banana Pro. Use for social media cards, earnings cards, brand stickers, announcement cards, and any content formatted as a bold, clean sticker with a thick white border.
Teams using sticker-creator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/sticker-creator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How sticker-creator Compares
| Feature / Agent | sticker-creator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create die-cut sticker style cards via Nano Banana Pro. Use for social media cards, earnings cards, brand stickers, announcement cards, and any content formatted as a bold, clean sticker with a thick white border.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Sticker Creator
Generates die-cut sticker style cards using Nano Banana Pro. Output is a 1080×1080 PNG.
---
## Tools
| Tool | Purpose |
|------|---------|
| `nano-banana-pro` skill | Image generation via Gemini |
---
## Core Design Language
These rules apply to every sticker unless explicitly overridden:
| Element | Spec |
|---------|------|
| Canvas | 1080×1080 px, aspect ratio 1:1 |
| Orientation | **Perfectly upright. 0° rotation. No tilt. No skew. Ever.** |
| Border | Thick white die-cut border (~16px), soft drop shadow |
| Corner radius | Large rounded corners (~32px) |
| Background | Dark navy `#0f172a` (default) — overridable |
| Primary text | Bold white, large, top-left |
| Accent color | Teal/cyan `#22d3ee` for key values (default) — overridable |
| Callout box | Dark rounded pill/box for "Watch:", "Key:", or annotation text |
| Wordmark | "Bloom" in muted gray, bottom-right |
| Feel | Financial data card — confident, clean, minimal decoration |
**Always include this verbatim in every Nano Banana prompt:**
> `perfectly upright, zero rotation, no tilt, no skew, card sits flat and square`
---
## Step 1 — Resolve GEMINI_API_KEY
```bash
GEMINI_API_KEY=$(python3 -c "
import json, os
d = json.load(open(os.path.expanduser('~/.openclaw/openclaw.json')))
print(
d.get('skills',{}).get('entries',{}).get('nano-banana-pro',{}).get('apiKey','')
or d['env']['vars'].get('GEMINI_API_KEY','')
)" 2>/dev/null)
export GEMINI_API_KEY
```
---
## Step 2 — Build the Prompt
Start from the appropriate template below, then customize for the content.
### Financial / Earnings Card
```
Dark navy #0f172a background, die-cut sticker with thick white border and soft drop shadow,
large rounded corners, perfectly upright, zero rotation, no tilt, no skew, card sits flat and square.
Top-left: bold white ticker "$[TICKER]" in very large type.
Below ticker: "[Subtitle line]" in small muted gray text.
Center section:
- "Est. EPS: [value]" — label in white, value in teal/cyan bold
- "Est. Rev: [value]" — label in white, value in teal/cyan bold
Bottom: dark rounded box containing "Watch:" in teal bold followed by "[watch text]" in white.
Bottom-right: "Bloom" wordmark in muted gray.
Style: clean financial data card, no gradients, no decorative elements.
```
### Announcement / General Card
```
Dark navy #0f172a background, die-cut sticker with thick white border and soft drop shadow,
large rounded corners, perfectly upright, zero rotation, no tilt, no skew, card sits flat and square.
Top: "[Headline]" in bold white, large type.
Center: "[Body text or key stat]" in [accent color] bold.
Bottom: dark rounded pill containing "[Callout text]" in white.
Bottom-right: "Bloom" wordmark in muted gray.
Style: clean, confident, minimal decoration.
```
### Brand / Logo Sticker
```
[Background color] background, die-cut sticker with thick white border and soft drop shadow,
large rounded corners, perfectly upright, zero rotation, no tilt, no skew, card sits flat and square.
Center: "[Brand name or logo text]" in bold [color], very large.
[Optional tagline in small muted text below]
Style: clean brand mark, no gradients, no decorative elements.
```
---
## Step 3 — Generate
```bash
OUTFILE="/tmp/sticker-[name]-$(date +%Y%m%d-%H%M%S).png"
uv run ~/clawd/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[assembled prompt]" \
--filename "$OUTFILE" \
--resolution 2K
```
- Always use `--resolution 2K` for finals (crisp at 1080×1080)
- Do NOT pass `--thinking` — `high` times out, `dynamic` throws a parameter conflict; default works fine
- Output path: `/tmp/sticker-[descriptive-name]-YYYYMMDD-HHMMSS.png`
- **exec timeout: 300s minimum** — image generation at 2K takes 60–120s; use `timeout=300, yieldMs=280000`
---
## Step 4 — Remove Background
After generation, strip the background so the sticker floats on transparency. Uses `rembg` via `uv`.
```bash
BGREMOVED="${OUTFILE%.png}-nobg.png"
uv run --with "rembg[cpu]" --with pillow python3 - "$OUTFILE" "$BGREMOVED" << 'EOF'
import sys
from rembg import remove
from PIL import Image
inp = Image.open(sys.argv[1]).convert("RGBA")
out = remove(inp)
out.save(sys.argv[2])
print(f"Background removed: {sys.argv[2]}")
EOF
```
- Output overwrites the variable: use `$BGREMOVED` (ends in `-nobg.png`) for all subsequent steps
- `rembg` downloads a ~170MB U2-Net model on first run — subsequent calls are fast (model cached)
- If the edge looks rough, regenerate with a cleaner Nano Banana prompt (more contrast between sticker and bg)
---
## Step 5 — Review & Iterate
After generation, show the image to the user. Common issues and fixes:
| Issue | Fix |
|-------|-----|
| Card is tilted | Add "perfectly upright, zero rotation, no tilt, card sits flat and square" — Gemini interprets "sticker" as rotated; override explicitly |
| Text too small | Add "large bold text, high contrast, easy to read at a glance" |
| Colors wrong | Specify exact hex codes in the prompt |
| Border too thin | Add "very thick white border, prominent die-cut effect" |
| Too decorative | Add "no gradients, no textures, flat clean design" |
If the first result is off, regenerate with a more explicit prompt — don't accept a tilted or messy card.
---
## Common Mistakes
1. **Tilted output** — must include "perfectly upright, zero rotation, no tilt, no skew, card sits flat and square" verbatim in every prompt. Non-negotiable.
2. **Using `--thinking` flag** — `high` times out, `dynamic` throws a parameter conflict. Omit the flag entirely; default quality is sufficient.
3. **Using `--resolution 1K` for finals** — always use `2K` for anything that gets posted.
4. **Vague prompts** — specify hex colors, exact text, font weight. Don't leave it to interpretation.
5. **PIL fallback** — never fall back to PIL. If Nano Banana fails, report the failure.
6. **Sending `$OUTFILE` instead of `$BGREMOVED`** — always send the `-nobg.png` version after background removal. The raw generated file still has a solid background.Related Skills
youtube-title-creator
Generate high-CTR YouTube titles and thumbnail concepts using 119 proven frameworks ranked by performance score. Use when creating YouTube titles, optimizing video titles for CTR, generating thumbnail text, A/B testing title variations, or pairing titles with complementary thumbnails. Covers framework fitting method, universalization strategy, complementarity principle, and psychological trigger analysis.
skill-creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when creating or editing ANY skill — including rewrites, description tweaks, or adding examples. TDD pre-flight required: write failing test first (3+ pressure scenarios run WITHOUT the skill) before touching SKILL.md. Also use for running evals, benchmarking skill performance with variance analysis, and optimizing skill descriptions for better triggering accuracy.
writer
Write content in Eric's voice — articles, blog posts, tweets, social media posts, marketing copy, newsletter drafts. Loads WRITING-STYLE.md and enforces kill phrases.
positioning-angles
Use when defining product positioning, choosing strategic angles, crafting value propositions, competitive positioning, product messaging, differentiation strategy, or go-to-market angles. Also use for 'how should I position my app', 'what angle should I use', 'painkiller vs vitamin', or 'market positioning'.
outline-generator
Use when generating outlines, article structures, content outlines, blog outlines, planning article sections, structuring posts, breaking down topics into sections, or organizing ideas for long-form content. Also use for 'outline this', 'structure this article', or 'plan the sections'.
last30days-open
Use only when the user explicitly asks for the open variant of last30days, including watchlists, briefings, and history queries. Sources: Reddit, X, YouTube, web.
last30days
Use when researching what happened in the last 30 days on a topic. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Produces expert-level summary with copy-paste-ready prompts.
hooks
Use when generating hooks, headlines, titles, and scroll-stopping openers for content. Also use when analyzing viral posts, Reels, TikToks, YouTube Shorts, or successful social examples to extract reusable hook patterns and improve hook guidance.
evaluate-content
Use when judging content quality OR editing/improving existing copy: shareability, readability, voice, cuttability, angle, copy sweeps.
editor-in-chief
Use when a first draft is complete and all Phase 1 gates are done: topic selected (seo-research), title approved (hooks), outline approved (outline-generator), draft written (writer). Runs autonomous diagnosis-prescribe-rewrite loop before Substack.
copywriting
Write or improve marketing copy for any surface: pages, ads, app stores, landing pages, TikTok/Meta scripts, push notifications, UGC. Combines page copy frameworks with direct response principles.
content-strategy
Use when building content strategy: hooks, angles, and ideas from what's trending now. Covers organic and paid creative across TikTok, X, YouTube, Meta, LinkedIn.