Get the FREE Ultimate OpenClaw Setup Guide →

banner-creator

Scanned
npx machina-cli add skill ReScienceLab/opc-skills/banner-creator --openclaw
Files (1)
SKILL.md
5.2 KB

Banner Creator Skill

Create professional banners through AI image generation with an iterative design process.

Prerequisites

Required API Keys (set in environment):

Required Skills:

  • nanobanana - AI image generation (Gemini 3 Pro Image)

File Output Location

All generated files should be saved to the .skill-archive directory:

.skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/

Example:

.skill-archive/banner-creator/2026-01-19-opc-banner/
  banner-01.png
  banner-02.png
  ...
  banner-03-cropped.png
  preview.html

Workflow

Step 1: Discovery & Requirements

Before generating, gather requirements from user:

Ask about:

  1. Purpose - Where will the banner be used?

    • GitHub README
    • Twitter/X header
    • LinkedIn banner
    • Website hero
    • YouTube channel art
  2. Target ratio/size - See references/formats.md:

    • 2:1 (1280x640) - GitHub README
    • 3:1 (1500x500) - Twitter header
    • 16:9 (1920x1080) - Website hero
  3. Style preference:

    • Match existing logo/brand?
    • Pixel art / 8-bit retro
    • Minimalist / flat design
    • Gradient / modern
    • Illustrated / artistic
  4. Content elements:

    • Brand name / project name?
    • Tagline / slogan?
    • Logo character to include?
  5. Color preferences:

    • Existing brand colors?
    • Let AI decide?

Wait for user confirmation before proceeding!

Step 2: Generate Banner Variations

Generate 20 banner variations using the nanobanana skill:

# Generate single banner
python3 <nanobanana_skill_dir>/scripts/generate.py "{style} banner for {brand}, {description}, {text elements}" \
  --ratio 21:9 -o .skill-archive/banner-creator/<date-name>/banner-01.png

# Batch generate 20 banners
python3 <nanobanana_skill_dir>/scripts/batch_generate.py "{style} banner for {brand}, {description}, {text elements}" \
  -n 20 --ratio 21:9 -d .skill-archive/banner-creator/<date-name> -p banner

Guidelines:

  • Generate at 21:9 ratio (widest available), crop later to target
  • Use batch_generate.py for multiple variations (includes auto-delay)
  • Use sequential naming: banner-01.png, banner-02.png, etc.

Image Editing (for incorporating existing logo):

python3 <nanobanana_skill_dir>/scripts/generate.py "add {logo character} to the left side of the banner" \
  -i /path/to/existing-logo.png --ratio 21:9 -o banner-with-logo.png

Step 3: Create HTML Preview

Copy the preview template and open in browser:

cp <skill_dir>/templates/preview.html .skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/preview.html

Then open in default browser:

open .skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/preview.html

IMPORTANT: Update the HTML to include the correct number of banners generated.

Step 4: Iterate with User

Ask user which banners they prefer:

  • "Which banners do you like? (e.g., #3, #7, #15)"
  • "What do you like about them?"
  • "Any changes you'd want?"

Based on feedback:

  1. Generate 10-20 more variations of favorite styles
  2. Use naming: banner-{original}-v{n}.png (e.g., banner-03-v1.png)
  3. Update HTML preview
  4. Repeat until user selects final banner

Step 5: Crop to Target Ratio

Once user approves a banner, crop to target size:

python3 <skill_dir>/scripts/crop_banner.py {input.png} {output.png} --ratio 2:1 --width 1280

Common targets:

  • GitHub README: --ratio 2:1 --width 1280 → 1280x640
  • Twitter header: --ratio 3:1 --width 1500 → 1500x500
  • Website hero: --ratio 16:9 --width 1920 → 1920x1080

Step 6: Deliver Final Assets

Present final deliverables:

## Final Banner Assets

| File | Description | Size |
|------|-------------|------|
| banner-03.png | Original (21:9) | 2016x864 |
| banner-03-cropped.png | GitHub README (2:1) | 1280x640 |

All files saved to: `.skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/`
Copy final banner to user's desired location.

Quick Reference

Common Prompt Patterns

With Text:

Wide banner for {brand}, {style} style, featuring "{text}" prominently displayed, {colors}, {scene/elements}

With Character:

Wide banner featuring {character description}, {style} style, {scene}, text "{brand name}" on {position}, {colors}

Abstract/Gradient:

Abstract {style} banner, {colors} gradient, geometric patterns, modern tech feel, text "{brand}" centered

Scene-based:

{Style} illustration banner, {scene description}, {character} in {action}, "{brand}" text overlay, {colors}

Supported Aspect Ratios

Generate at widest ratio, then crop:

  • 21:9 - Ultra-wide (recommended for generation)
  • 16:9 - Wide
  • 3:2 - Standard wide

References

Source

git clone https://github.com/ReScienceLab/opc-skills/blob/main/skills/banner-creator/SKILL.mdView on GitHub

Overview

Banner Creator uses AI image generation to craft professional banners. It guides you through discovery, generates multiple variations, and crops results to exact target ratios, saving outputs to a dedicated .skill-archive path.

How This Skill Works

First, gather requirements (purpose, ratio, style, content). Then generate 20 banner variations with nanobanana at a wide 21:9 ratio and save to .skill-archive/banner-creator/<date-name> (banner-01.png, …). Create an HTML preview for review, iterate on feedback with additional variations, and finally crop the chosen banner to the exact target ratio and width using crop_banner.py.

When to Use It

  • Create a GitHub README banner (2:1) for a project or repo.
  • Design a Twitter/X header at 3:1 for a profile or brand.
  • Produce a website hero or cover image (16:9) for a landing page.
  • Generate YouTube channel art or banner for a video-focused channel.
  • Create a readme banner for a documentation or product page.

Quick Start

  1. Step 1: Gather requirements (purpose, target ratio, style, content).
  2. Step 2: Generate 20 variations at 21:9 using nanobanana and save to .skill-archive/banner-creator/<date-name> (banner-01.png, …).
  3. Step 3: Review the HTML preview, iterate with feedback, then crop to the final ratio with crop_banner.py.

Best Practices

  • Start with a clear discovery phase: purpose, target ratio, style, content, and color preferences.
  • Generate 20 variations at a wide 21:9 ratio to maximize options before cropping.
  • Use batch_generate.py for multiple variations and follow the naming convention banner-01.png, banner-02.png, etc.
  • Create an HTML preview early to gather quick feedback before final edits.
  • Crop the final selected banner to the exact target ratio and width (e.g., 2:1 at 1280px) with crop_banner.py.

Example Use Cases

  • GitHub README banner for an open-source AI project.
  • Twitter header for a SaaS product launch.
  • Website hero banner for a developer blog.
  • Readme banner for a data science repository.
  • YouTube channel art for a tech education channel.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers