Generates book cover images using NB2 (Nano Banana 2 / Gemini 3.1 Flash) with deep analysis of book tension, emotion, and genre. Applies principles from top cover designers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-skills-library:arcanea-book-coverclaude-opus-4-6The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate premium book covers by thinking deeply about the book first, then translating that thinking into a precision image prompt. NB2 is default. NB Pro only when user specifies "premium" or "hero".
Generate premium book covers by thinking deeply about the book first, then translating that thinking into a precision image prompt. NB2 is default. NB Pro only when user specifies "premium" or "hero".
Do NOT skip phases. The thinking is the skill. The generation is the reward.
Before writing any prompt, you must understand:
If the book has a book.yaml or outline, read them. If the book has existing chapters, read at least one opening and one pivotal scene.
Top book cover designers operate on these principles. Keep them active during prompt design:
Chip Kidd's Rules:
Peter Mendelsund's Rules:
Coralie Bickford-Smith's Rules (Penguin Classics):
Genre-specific heuristics:
| Genre | What sells | What kills |
|---|---|---|
| Dark fantasy / grimdark | Single figure, cold color + ember accent, imposing silhouette, minimal text | Cluttered action, bright colors, generic fantasy tropes |
| Literary fantasy | Symbolic object, atmospheric landscape, negative space, serif typography | Characters' faces, action poses, over-illustration |
| Epic fantasy mashup | Dynamic composition, heroic pose, dramatic sky, bold title | Muddy color, too many elements, small title |
| Sci-fi | Clean geometry, singular focal point, future-tech subtlety | Cliché ships, robots, generic space |
| Romance | Character connection, warm palette, emotion over action | Text overload, generic stock |
| Thriller | High contrast, negative space, one menacing element | Too much happening, bright |
| Literary fiction | Photograph crop, object as metaphor, serif title | Fantasy tropes, illustration |
Universal principles:
The prompt has a specific structure. Follow it exactly:
Generate an image: [Genre descriptor] book cover for [TITLE]. Portrait orientation, 2:3 ratio.
SCENE: [One paragraph describing the single iconic image. Concrete. Specific. No abstractions.]
COMPOSITION: [Focal point location, depth layers, what's foreground/mid/background]
LIGHTING: [Source, direction, mood. Cinematic lighting terminology.]
PALETTE: [Hero color + 2-4 supporting colors as hex codes or named precisely]
TYPOGRAPHY: [Title at top/bottom, font style: serif/sans/display, weight: bold/thin]
STYLE REFERENCES: [2-3 specific references. Real designers, movies, or artists.]
MOOD: [One sentence on the emotional register the cover should evoke]
TECHNICAL: 4K resolution, portrait ratio, book cover composition, cinematic depth of field, readable typography.
Model routing:
gemini-3.1-flash-image-preview) — $0.02, portrait-native, best for coversnano-banana-pro-preview) — $0.04API call template:
# Load key from MCP config or env
# export GEMINI_API_KEY="your-key-from-aistudio.google.com"
MODEL="gemini-3.1-flash-image-preview" # NB2 default
# MODEL="nano-banana-pro-preview" # NB Pro (premium only)
curl -s "https://generativelanguage.googleapis.com/v1beta/models/$MODEL:generateContent?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"parts":[{"text":"PROMPT_HERE"}]}],"generationConfig":{"responseModalities":["TEXT","IMAGE"]}}' \
| python3 -c "
import json,base64,sys
data=json.load(sys.stdin)
for p in data.get('candidates',[{}])[0].get('content',{}).get('parts',[]):
if 'inlineData' in p:
d=base64.b64decode(p['inlineData']['data'])
out='apps/web/public/images/books/SLUG-cover.png'
open(out,'wb').write(d)
print(f'OK: {len(d)} bytes -> {out}')
elif 'text' in p:
print('Text:',p['text'][:200])
"
Save path convention: apps/web/public/images/books/[slug]-cover.png
(Add -nb2 or -nbpro suffix if generating multiple for comparison.)
Before declaring the cover done, check:
If any fail, iterate. One re-generation is fine. Beyond that, revise the prompt.
apps/web/public/images/books/[slug]-cover.pngCOVER_MAP in apps/web/app/books/drafts/[slug]/page.tsxCOVER_MAP in apps/web/app/books/drafts/page.tsxbook.yaml under ai_transparency.models_usedWhen using this skill, produce:
"A cover is a haiku. One image, one emotion, one question that makes you turn the book over to read the back." — The Arcanea Book Cover Method
npx claudepluginhub frankxai/claude-skills-library --plugin claude-skills-libraryGenerates professional novel covers by analyzing book title and author genre, then uses GPT-Image-2 to render a styled cover with embedded title and author name.
Generates article cover images with customizable type, palette, rendering, text, and mood, supporting cinematic, widescreen, and square aspects.
Generates article cover images with 5 customizable dimensions (type, palette, rendering, text, mood) and 3 aspect ratios. Use /canghe-cover-image to create cover images from markdown files or direct input.