The Lantern
the projection room — atmosphere as architecture
High in the attic of the Estate, past the Library and the Salon, past Aurora’s workshop and the Commonplace Book’s towering shelves, there is a room full of colored glass and intricate lenses. The Lantern lives here. He wears an aviator’s helmet, usually askew. His leather bomber jacket is usually damp with effort. He installed a firepole to get downstairs faster. He is excitable, artless, and completely devoted to making things look beautiful.
The Lantern governs visual atmosphere in Quilltap: image generation profiles for every major provider, prompt expansion that understands your characters, and the signature feature that transforms the chat interface from a window into a place—AI-generated story backgrounds that paint the scene behind your conversation.
He is the sort of person who would carry a stack of photographs into a crisis and ask what the truth about the Estate is after everyone else in the room has already started crying. He is also the reason your conversations have atmosphere, your characters have faces, and your chats have a sense of place before you open them. Artless does not mean talentless. It means the talent comes without pretense.
Story Backgrounds
the room changes with the conversation
The Lantern’s signature feature: AI-generated landscape images that appear behind your chat content at 45% opacity, creating a visual sense of place for each conversation. Not a generic wallpaper selected from a library—an image derived from the actual content of your chat, featuring the characters as they currently appear, in a setting that reflects the mood and narrative of the conversation.
Scene Context Derivation
When a chat reaches a natural scene-setting moment, the cheap LLM analyzes recent messages and generates an imaginative scene description—not a literal transcript, but a creative interpretation. If the characters are discussing a novel, they might be depicted as observers in that world. If the mood has shifted, the setting shifts with it.
Appearance Resolution
A separate cheap LLM task determines what each character currently looks like, consulting physical descriptions, wardrobe entries, narrative context, and usage context matching. Clothing priority follows the conversation: what the narrative says they are wearing takes precedence over stored defaults. If the story has moved past a character’s starting outfit, the background reflects that.
Scene State Tracking
After every chat turn, the system automatically derives a structured scene summary—location, character actions, appearance, clothing state—and caches it. This eliminates redundant LLM calls when multiple systems need the same scene context. The tracker fires once per complete chain in multi-character chats, and routes through the Concierge for sensitive material.
Display & Control
Backgrounds pin to the top of the viewport behind chat content. Thumbnails appear on chat cards throughout the application, giving each conversation a visual identity before you open it. The chat header shows a clickable thumbnail that opens a full-screen modal. Manual regeneration is available from the tool palette. Theme background images yield to story backgrounds automatically.
A Note on Cost
Story backgrounds are an opt-in feature, disabled by default, and for good reason: the Lantern is prolific. A chat of any real length will typically produce three or more background images as the scene evolves, each requiring an image generation API call. For users on metered APIs, this adds up. Enable story backgrounds when you want atmosphere and are prepared for the token cost; leave them off when the conversation does not need a backdrop.
Character Avatars
the wardrobe in the mirror
Every chat gets its own avatars. When a character joins a conversation, the Lantern composes their portrait from their physical description and whichever outfit was selected at chat start; when their wardrobe changes mid-chat, the portrait regenerates to match. The image you see beside a participant’s name today is the portrait of this character, in this chat, in this outfit—not a stored default rolled forward indefinitely.
Outfit-Driven Regeneration
Every equip, layer, take-off, or “Wear this”
gesture from the wardrobe dialog enqueues an avatar
regeneration job for the affected character, deduped on the
(chatId, characterId) pair so a flurry of slot
edits collapses to a single render. Deliberate, operator-led
wardrobe changes fire promptly; the avatar that lands is
the avatar of the outfit that ended the gesture, not any
intermediate state. This applies to every
CHARACTER participant—including the
user-controlled one, which previous versions silently
filtered out.
Preview From the Wardrobe Dialog
The wardrobe dialog’s “Generate avatar” button takes the outfit currently composed in the Outfit Builder and renders a one-shot preview. In a chat it regenerates the chat-scoped avatar from those slots; out of chat it produces a downloadable preview saved to the character’s gallery without overwriting the stored avatar. The image model can be picked per-shot from the same control, so a quick experiment with a different provider does not require touching the chat’s primary image profile.
Chat-Scoped Identities
The same character can carry different avatars across different chats, because each chat’s avatar is bound to that chat’s equipped outfit rather than to the character row. Open one chat where the character wears their winter coat and another where they are in evening dress, and each Salon header shows the right portrait for the right room.
A Shared Prompt Builder
One-shot previews and the avatars that eventually land in Salon headers come out of a single prompt-building helper, so the only differences between a preview and a committed avatar are the equipped slots and the image model the operator picked. What you see in the preview is what arrives at the chat.
Image Generation
pictures on demand
Beyond story backgrounds, the Lantern handles all on-demand image
generation within conversations. A generate_image tool
is available to every character, invocable by the AI mid-conversation
or by you via the composer toolbar. Results land in a per-chat gallery
for reuse as avatars, attachments, or conversation context.
Prompt Expansion
Raw prompts are expanded by the cheap LLM before reaching the
image provider. The expansion system understands
{{Character}} and
{{me}} placeholders, pulling
physical descriptions at the appropriate detail tier for the
target provider’s prompt length limits. Aliases resolve
to the correct character. Provider-specific prompting guidance
and style trigger phrases are incorporated automatically.
Provider Support
Image generation profiles support Google Gemini/Imagen, Grok (Imagine models), OpenAI (DALL·E and GPT-Image), and OpenRouter. Each profile carries provider-specific configuration and an “Uncensored-Compatible” flag for Concierge routing. Per-chat image profile selection lets different conversations use different providers.
Automatic image resizing handles provider size limits—Anthropic caps at 5 MB, others at 20 MB. Images paste directly into the chat composer, are auto-uploaded and attached, and can be tagged to characters for gallery organization. For chats flagged by the Concierge, both user prompts and their expanded versions are classified, and generation reroutes to an uncensored image provider when needed.
How It Works
from conversation to canvas
The Lantern does not work alone. Every image—whether a story background or an on-demand generation—passes through a pipeline that draws on multiple subsystems:
Scene analysis. The cheap LLM reads recent messages and derives an imaginative scene context—not what was literally said, but what the scene looks like. For story backgrounds, this happens automatically at checkpoints. For on-demand generation, the user’s prompt provides the starting point.
Character resolution. Aurora’s physical descriptions and wardrobe are consulted. The cheap LLM determines what each character currently looks like, weighing narrative context above stored defaults. Pronouns ensure gender-accurate depictions.
Prompt crafting. The cheap LLM assembles a provider-sized prompt from the scene context, character appearances, style trigger phrases, and prompting guidance specific to the target provider. Placeholder variables are resolved.
Routing. The Concierge checks the prompt against content classification. If the chat or prompt is flagged, generation reroutes to an uncensored image provider. If not, the configured provider receives the request.
Delivery. The generated image is stored, tagged, and displayed. Story backgrounds appear behind the chat at 45% opacity. On-demand images appear inline in the conversation and in the chat gallery. Thumbnails propagate to chat cards.
The Voice of the Lantern
he announces what he just painted
The Lantern is not a silent technician. When he generates an
image he says so, and with reasonable specificity: a freshly
composed character avatar after an outfit change, a story
background after a scene shift, or a one-off character image
conjured by a generate_image call. Each kind of
announcement carries a stable
systemKind—avatar,
background, or character-image—so
the Salon can render the more frequent ones (avatar
regenerations especially) as collapsible bars rather than
full-message rows that crowd the transcript.
The body of each announcement carries the prompt that was
actually sent to the image provider, not a pre-expansion
summary—so the LLM in the conversation can read precisely
what the Lantern crafted on its behalf and adjust subsequent
narration in light of it. Opaque
characters—those without
systemTransparency—continue to receive the
body of the announcement as an anonymous assistant line; only
transparent characters see his attribution and his portrait.
As with every other Staff announcement, a posting failure logs
and moves on rather than disrupting the work it was annotating.
He is, taken across an active session, the most prolific speaker on the Staff. This is forgiven on grounds of contribution: he is also the only member of the household who is visibly thrilled to be on the team.
The Gallery
every image has a home
Generated images are not ephemeral. They are stored in the file system, tagged to chats and characters, and browsable through the file browser with grid and list views, image thumbnails, and a preview modal. Images can be set as character avatars, attached to messages, or used as default character portraits. A character’s photo gallery collects every image tagged to them across all conversations.
File deletion respects associations: if an image is linked to a character as an avatar or gallery item, the deletion dialog shows all affected entities before proceeding. Orphaned image references render a cleanup prompt rather than broken thumbnails. The Lantern may be artless, but his filing system is not.
What Makes It Different
the short version
Backgrounds are derived, not selected. Story backgrounds are generated from the actual content of your conversation, not chosen from a preset library. The scene context, the character appearances, the mood—all extracted from what is actually happening in the chat.
Characters look like themselves. The appearance resolution pipeline consults Aurora’s physical descriptions, wardrobe, usage contexts, and the narrative itself. A character who changed clothes during the conversation appears in their current outfit, not their default one.
The prompt knows the provider. Expansion is not one-size-fits-all. The cheap LLM crafts prompts sized and styled for the specific image provider, incorporating provider-specific guidance and style trigger phrases. What works for DALL·E is not what works for Grok Imagine.
Content routing applies to images too. The Concierge classifies image prompts and reroutes generation to uncensored providers when needed. If a story background would be refused by the default provider, the Lantern finds another canvas. The atmosphere adjusts to the conversation, not the other way around.
You control the cost. Story backgrounds are opt-in, disabled by default, and the Lantern will produce several per conversation if enabled. Image generation profiles are per-chat configurable, so you can use an expensive provider for important scenes and a cheaper one for everyday use—or turn backgrounds off entirely and generate images only when you ask for them.
Meet the Staff
they've been expecting you
Prospero
The Major-Domo
Architect and overseer of the Estate. Projects, agents, tools, providers, and the orchestration that keeps the whole operation running with quiet authority—and a considered word at the table when project context or routing warrant it.
Learn more →Ariel
The Terminal Hand
Live shell sessions in the Salon, embodied. Real PTY terminals bound to your conversation, output cleaned and narrated so the LLM can read it, and sessions that survive reloads, restarts, and the occasional careless kill. Quick to the bidding, quick to report what she heard.
Learn more →Aurora
The Dressing Room
Character creation and identity management. Structured personalities, physical presence, wardrobes and outfits, multi-character orchestration, and the reason your characters still know who they are after a hundred messages.
Learn more →The Salon
Presided Over by the Host
Where conversations actually happen. The Host manages the drawing room with care for its beauty and its guests—single chats, multi-character scenes, streaming, and the integrity of the conversation space.
Learn more →The Commonplace Book
Tended by the Librarian
One per character, no two alike. Extracts, deduplicates, and recalls memories so your characters remember what matters. Semantic search, a memory gate that keeps each volume lean, and proactive recall that makes the AI feel like it has been paying attention.
Learn more →The Scriptorium
Catalogued by the Librarian
Where the documents live. Project stores, character vaults, and external mount points—filesystem, Obsidian, or database-backed—holding Markdown, PDF, DOCX, JSON, and arbitrary binaries, indexed for unified search alongside memories and conversation. The doc_* tool family puts reading and editing in your characters’ hands.
Learn more →The Concierge
Intelligent Routing
Content classification and provider routing. Detects sensitive content and redirects it to a provider who won’t flinch—without blocking, without judgment. Knows every back entrance in town.
Learn more →The Lantern
Atmosphere as Architecture
AI-generated story backgrounds, on-demand images, and character avatars that update with the wardrobe. Resolves what each character looks like, what they’re wearing, and paints the scene behind your conversation.
Learn more →Calliope
The Muse of Themes
A theming engine that redefines the entire personality of the application. Semantic CSS tokens, live switching, bundled themes from clean neutrals to mahogany-and-gold opulence, and an SDK for building your own.
Learn more →The Foundry
Domain of the Foundryman
The engine room. Plugins, LLM providers, API keys, packages, runtime configuration, and the infrastructure that keeps every other subsystem supplied with what it needs to function.
Learn more →The Vault of Secrets
Kept by Saquel Yitzama
Encryption, key management, and the security perimeter. AES-256 database encryption, locked mode with key-hardened passphrases, and a keeper who believes that what is yours should remain unreadable to everyone else.
Learn more →Pascal
The Croupier
Dice, coins, and persistent game state. Cryptographically secure rolls detected inline, JSON state that survives across messages and chats, and protected keys the AI cannot touch. The house plays fair.
Learn more →The Live-in Help
Lorian & Riya
The help system, staffed by two characters who ship with every installation. Lorian explains with patience and depth; Riya gets things fixed with velocity. Contextual help chat, searchable documentation, and navigation that knows where you need to go.
Learn more →Pagliacci
The Clown in the Cloud
Cloud storage integration and backup redundancy. Directs your data to iCloud Drive, OneDrive, or Dropbox with theatrical flair—but Saquel’s encryption ensures the clown can never read what he carries.
Learn more →The Lodge
Friday and Amy’s Residence
The private residence of Friday, for whom the Estate was built and who oversees its planning and direction in an executive capacity, and of Amy, Cartographer of Light and co-architect. The Lodge is both a home and a compass: where the vision lives.
Who And Why: Friday → Who And Why: Amy →