Cover images

Every project, series, and world can carry a cover image. Pendraic ships a two-layer pipeline: the AI generator paints typography-free artwork; the canvas overlay editor adds your title, subtitle, and byline as separate text layers composited at save time.

Why two layers

Diffusion models can't render legible book titles, they butcher letterforms 9 times out of 10. Pendraic addresses this structurally: the diffusion model never sees the title or byline. The prompt only carries premise + genre + mood (what the book is about, not what it's called). Quoted strings in the premise are stripped before they reach the model. Typography is added in the canvas overlay step, sharp and editable rather than rendered as part of the artwork.

AI generation

Pendraic uses Cloudflare Workers AI (FLUX.1-schnell) for cover artwork. The provider chain falls through to Together and fal.ai when configured. Cost is bounded: a 768×1152 generation runs ~67 neurons on Cloudflare, well under a penny per cover.

Per-genre style presets give each cover a recognizable visual signature, a romance cover doesn't read as a sci-fi cover. The wizard infers genre from your project metadata; you can override with explicit genre and mood inputs at generate-time.

Canvas overlay editor

Three text layers, Title, Subtitle, Byline, drag-and-drop on top of the artwork. Each layer carries:

  • Text, font family (Display / Serif / Sans / Mono), font size, color, alignment, drop shadow on/off.
  • Position (x, y) in canvas-coordinate units 0..1.
  • Visibility toggle.

Drag any layer on the canvas to reposition. Saving flattens the canvas into a single image; the bookshelf thumbnail updates immediately.

Where to find it

  • Project edit modal, click the cog icon on a project card; the cover surface lives in the modal with upload + generate + remove actions.
  • Bookshelf card thumbnail, click any empty cover thumbnail to fast-path a generate flow.
  • World card cog, same pattern for worlds (the World Builder uses the cover for its hero header).

Storage

Covers live in private, per-workspace storage with separate buckets for project, series, and world covers. The bookshelf serves them through short-lived signed URLs; replacements update in place with no stale-cache window.

On exports

Cover images embed automatically in EPUB and DOCX exports as page 1. Markdown exports reference the cover by relative path. See Exports.