Art Skill
Complete visual content system supporting multiple brand aesthetics.
When Not to Use
- AI-generated photoreal images or video -- use
comfyui(local diffusion) orclipcannon(video) instead - Academic/publication diagrams destined for a LaTeX document -- prefer TikZ via
book-publishing(references/latex-conventions.md); only reach for this skill'sdiagram-upcycling.mdpath to polish a TikZ/Mermaid render, not to author the diagram itself - Plain image editing (resize, crop, format convert, batch watermark) with no
generation involved -- use
imagemagick
Aesthetic Routing
The art skill supports multiple visual identities. Before generating any visual, determine which aesthetic applies.
How to Select an Aesthetic
- Check if the user specifies a brand/project (e.g., "my-brand icon", "acme newsletter header")
- Check for content-type exceptions (see Content-Type Override Rules below)
- Check if the target output has a site-specific style guide (e.g.,
HERO-IMAGE-TEMPLATE.md) - If no brand specified, use the default aesthetic
Content-Type Override Rules
CRITICAL: Some content types intentionally use different aesthetics than their host site.
| Content Type | Detection Pattern | Aesthetic to Use | DO NOT Use |
|---|---|---|---|
| Satirical/Parody Content | User explicitly says "satire", "parody", "joke product" | Match the satire target's aesthetic (e.g., corporate B2B for business parody) | Host site's aesthetic |
| Easter Eggs | Path contains easter-eggs/, explicitly marked as easter egg |
Depends on easter egg theme, ask user if unclear | Host site's default |
Rule: When content-type override detected, DO NOT check host site style guides. The content is intentionally divergent.
Base Prompt Prefix Standard (MANDATORY)
Every aesthetic MUST define a Base Prompt Prefix — a locked consistency block that gets prepended to every image generation prompt for that aesthetic. This ensures visual cohesion across a set of illustrations.
What the prefix locks down:
- Line weight and quality
- Background treatment
- Camera angle / perspective
- Fill ratio (illustration vs. whitespace)
- Color balance percentages
- Shadow intensity and direction
- Text treatment (if applicable)
Where to find each prefix:
- Each aesthetic file (
.md) contains a "Base Prompt Prefix" section with the locked values - Project-specific aesthetics (e.g., lead magnet
AESTHETIC.md) inherit from their parent brand and override only what changes - Always read the aesthetic file and use its prefix before generating — never freestyle prompt parameters that have been locked
When creating new aesthetics via aesthetic-definer: The agent MUST produce a base prompt prefix as part of the output. An aesthetic without a consistency lock is incomplete.
Available Aesthetics
| Brand | Aesthetic File | Style |
|---|---|---|
| Default | aesthetic.md |
Hand-drawn sketch, cream backgrounds, teal/orange accents |
To add a new aesthetic: Create a new file at aesthetics/[name].md using the default aesthetic as a template. See aesthetics/README.md for the required format.
Aesthetic Loading Rule
Read the matching aesthetic file BEFORE writing any prompt or generating any image. The aesthetic file is the source of truth for that brand's colors, style parameters, anti-patterns, and prompt integration phrases.
Workflow Routing
| Content Type | Workflow |
|---|---|
| Blog headers / Editorial | workflows/workflow.md |
| Adaptive orchestrator | workflows/visualize.md |
| Flowcharts / Sequences | workflows/mermaid.md |
| Architecture diagrams | workflows/technical-diagrams.md |
| Classification grids | workflows/taxonomies.md |
| Chronological | workflows/timelines.md |
| 2x2 matrices | workflows/frameworks.md |
| X vs Y | workflows/comparisons.md |
| Screenshot markup | workflows/annotated-screenshots.md |
| Step-by-step | workflows/recipe-cards.md |
| Sketchnotes / visual notes | workflows/sketchnotes.md |
| Quote cards | workflows/aphorisms.md |
| Idea territories | workflows/maps.md |
| Big numbers | workflows/stats.md |
| Sequential panels | workflows/comics.md |
| Edit existing image | workflows/image-editing.md |
Image Generation
Default model: nano-banana-2 (Gemini 3.1 Flash Image)
The skill resolves its own location — set $ART_SKILL once so every snippet works whether the skill is installed at ~/.claude/skills/art or baked into the image at /opt/agentbox/skills/art:
ART_SKILL="${ART_SKILL:-$( [ -d /opt/agentbox/skills/art ] && echo /opt/agentbox/skills/art || echo ~/.claude/skills/art )}"
bun run "$ART_SKILL/tools/generate-image.ts" \
--model nano-banana-2 \
--prompt "[PROMPT]" \
--size 2K \
--aspect-ratio 1:1 \
--output /path/to/output.png
Alternative Model
| Model | When to Use |
|---|---|
| nano-banana-pro | Maximum quality, professional asset production, complex multi-turn editing |
Model Selection Guide
Nano Banana 2 (default):
- Best for: Most image generation tasks, fast iteration
- Strengths: Pro-level quality at Flash speed, reference images, web search grounding, 512px-4K range
- Use when: Default choice for all standard image generation
- API model:
gemini-3.1-flash-image-preview
Nano Banana Pro:
- Best for: Professional asset production, maximum reasoning
- Strengths: Advanced reasoning, multi-turn refinement, style transfer
- Use when: Quality matters more than speed, complex compositional tasks
- API model:
gemini-3-pro-image-preview
API keys in: ~/.claude/.env
GOOGLE_API_KEY- Required for both modelsREMOVEBG_API_KEY- Background removal (optional)
Quick Preview Workflow (512px)
Use --size 512px for fast, cheap previews before committing to full resolution:
# 1. Preview at 512px (fast, low cost)
bun run "$ART_SKILL/tools/generate-image.ts" \
--prompt "[PROMPT]" --size 512px --output /tmp/preview.png
# 2. Happy? Regenerate at full size
bun run "$ART_SKILL/tools/generate-image.ts" \
--prompt "[PROMPT]" --size 2K --output /path/to/final.png
Thinking Flag (Nano Banana 2 only)
Add --thinking to give the model more reasoning time for complex compositions:
bun run "$ART_SKILL/tools/generate-image.ts" \
--prompt "Complex multi-element scene..." \
--thinking high --output /path/to/output.png
| Level | Use When |
|---|---|
minimal |
Default — balances quality and latency |
high |
Complex layouts, precise positioning, multi-element scenes |
Only works with nano-banana-2. Thinking is always on (minimal by default). Use high when composition accuracy matters more than speed.
Common Diagram Pitfalls & Platform Limits
Generating an architecture/technical diagram, or an image for a specific social/publishing platform? Read references/output-constraints.md — it holds the diagram-pitfall table + pre-flight checklist and the per-platform dimension/size constraints with compression commands.
Site-Specific Style Override (CRITICAL)
Before generating images for a specific website, CHECK for style guides:
# Check project root for style documentation
ls HERO-IMAGE-TEMPLATE.md # Site-specific image style
ls STYLE-GUIDE.md # Design system
If found, the site's style guide OVERRIDES the default aesthetic.
Default aesthetic.md applies when: No site-specific style guide exists.
Consistent Dimensions for Related Images
When generating multiple images for the same page/section:
- Use identical resize dimensions for all images
- Document the size used:
# All diagrams: 800x500 - Prevents distortion when displayed together
Nano Banana Prompting Guide
For detailed prompting techniques: nano-banana-guide.md
Applies to both Nano Banana 2 and Nano Banana Pro — same prompt patterns, same API structure.
Includes:
- Core prompt formula:
[Action] the [Subject] by [Specific Change]. The goal is [Desired Outcome]. - Action verb vocabulary (recolor, retouch, style, adjust, enhance, transform, add, remove, replace, blend)
- Mood and atmosphere vocabulary tables
- Color palette phrases
- Aspect ratio selection guide
- Iterative refinement workflow
- Brand integration template
Quick Decision Tree
What does user need?
├─ Unsure which approach? → VISUALIZE (analyzes & orchestrates)
├─ Flowchart/sequence/state diagram? → MERMAID
├─ Abstract metaphor for article? → Editorial (workflow.md)
├─ System/architecture with labels? → Technical Diagram
├─ Categories in grid? → Taxonomy
├─ Change over time? → Timeline
├─ 2x2 matrix or mental model? → Framework
├─ Side-by-side contrast? → Comparison
├─ Markup existing screenshot? → Annotated Screenshot
├─ Step-by-step process? → Recipe Card
├─ Sketchnote or visual meeting notes? → Sketchnote
├─ Quote as social visual? → Aphorism
├─ Idea territories as map? → Conceptual Map
├─ Single striking number? → Stat Card
├─ Multi-panel story? → Comic
└─ Edit/modify/transform existing image? → IMAGE EDITING
LinkedIn Slide / Carousel Production
To turn results into a stunning, faithful, LinkedIn-ready slide deck (Beamer 4:3 →
MuPDF rasterise → Nano Banana Pro per-slide upcycle with a shared metaprompt → audit →
composite PDF), see references/linkedin-slides.md.
Reusable tooling: tools/slide-upcycle.sh + tools/slide-upcycle-metaprompt.txt.
Key rule: diagrams-as-code (PGFPlots) give exact charts; the upcycle improves only the
visuals — the --ref image is authoritative, every number/label is reproduced verbatim.
Diagram Upcycling (TikZ / Mermaid / matplotlib → publication quality)
Enhancing a rendered diagram for print/publication? See
references/diagram-upcycling.md — render-to-PNG,
upcycle (via generate-image.ts with nano-banana-pro, or the current google-genai SDK
with gemini-3-pro-image-preview), ImageMagick fallback, the ≥2x text-hallucination rule,
and LaTeX integration.
Assimilation Note
Source: Personal_AI_Infrastructure Art Skill Assimilated: 2026-01-04 Adapted: PAI's dark/neon aesthetic → warm/cream aesthetic
For complete visual styling rules, ALWAYS read: aesthetic.md