Skip to content

Visual Gallery

Writers accumulate visual references the same way they accumulate research bookmarks. Character portraits. Location photos. Inspiration images. Costume studies. Weapon references. Map drafts. Mood boards. All of it usually ends up scattered across Pinterest boards, desktop folders, screenshot archives, and DM attachments — and the default result is that by the time you need a specific image (“what did I have for Nubia’s appearance?”), you can’t find it. The Visual Gallery is the library that keeps these references next to your project’s text data instead of in some separate photo-organizing app. Upload an image, tag it, link it to a Legendry entry, and it lives in your project alongside the lore entry it supports. When you open that entry later, the image is right there — no cross-referencing, no searching, no “where did I put that file.”

The Gallery is one of two main features in the Visual Studio module. The other is the Character Sheet Designer, which is a completely different workflow (agent-generated character sheets linked to stat blocks). This page is specifically about the image library.

Any image format the web supports: JPG, PNG, GIF, WebP, SVG. The size limit is 20MB per image by default (configurable in settings), which is enough for high-resolution character portraits, maps, reference photos, and almost anything else authors need to store visually.

For each image, the gallery stores:

  • The image file itself. Lives in data/attachments/ in your project data directory.
  • Filename. Usually the original filename but can be renamed.
  • Title. A human-readable display name. Defaults to the filename but editable.
  • Description. Optional freeform text explaining what the image is or where it came from.
  • Tags. Auto-generated from filename plus any you add manually.
  • Linked lore entries. One or more Legendry entries the image is attached to.
  • Linked plotlines. For images that represent specific plot beats or scenes.
  • Source URL. If the image came from a web source, the original URL.
  • Date added. When it was uploaded.
  • Dimensions and file size. Auto-detected from the file.

Several ways to get an image into the gallery:

The simplest workflow. Drag an image file from your file manager (or from another window) and drop it onto the gallery view. Ishvana copies the file into data/attachments/, generates a thumbnail, and adds the image to the gallery with default metadata. You can edit the title and tags after the upload.

Copy an image to your clipboard (screenshot tool, right-click Save Image, etc.) and paste directly into the gallery. Same end result as drag-and-drop but faster when the image is already in your clipboard.

When you have a page loaded in the Research browser that contains an image you want, right-click the image and pick “Save to Visual Gallery.” Ishvana downloads the image, stores it, and tags it with the source URL automatically. The source URL metadata means you can always find your way back to where the image came from.

For authors who already have a large image library, the gallery supports bulk import from a folder. Point it at a directory and it processes every image inside, preserving folder structure as tag hierarchies. Useful for one-time migration from your existing reference collection.

The gallery deliberately doesn’t support folders. Instead, it uses tags. Every image can have any number of tags, and tags can be freeform — “character,” “Kent,” “Grimnest,” “pirate,” “reference,” whatever makes sense for your project.

Why tags instead of folders:

  • An image can belong to multiple concepts. A character portrait might be both “Kent” and “pirate” and “Grimnest.” Folders force you to pick one location; tags let you assign all three.
  • Folders decay faster. Nested folder structures (“Characters > Protagonists > Kent > Concept Art”) become inconsistent as the project grows. Tags don’t have this problem because they’re flat.
  • Search works better on tags. Filter by multiple tags simultaneously to narrow results. Find “all character images tagged ‘pirate’ and ‘Grimnest’ but not ‘antagonist’.”

The tag-based approach is how most modern image organizers work, and it scales better than folders for writing projects with hundreds of reference images.

An image can be linked to one or more Legendry entries. Linking is bidirectional — the image shows up on the entry’s detail panel (in the Visual Assets section), and the entry shows up in the image’s linked-entries list.

Why link:

  • Context on the lore entry. When you open Kent Musa’s lore entry, his portrait is right there. You don’t have to search the gallery to remember what he looks like.
  • Automatic bulk linking. When you view an image, you can see every entry it’s linked to and jump to any of them in one click.
  • Export and display. When you export a lore entry (to PDF, to print, to a setting book), the linked images export with it.

To link an image, open the image detail view and pick one or more entries from the search dropdown. Unlink by removing entries from the list. Nothing is permanent — you can re-link at any time without affecting the image file itself.

Like Smart Bookmarks, images in the gallery are indexed for semantic search — but the indexing works differently because images don’t have natural text content. Instead, the gallery uses:

  • Filename keywords — basic token matching on the filename.
  • Title and description text — searchable as regular text.
  • Tag matching — tag-based filtering.
  • Linked entry content — entries linked to the image contribute their text to the image’s searchable metadata.

The last one is the most powerful. An image linked to a lore entry about “House Solaris, the ruling family of Grimnest before the rebellion” becomes findable by queries like “Grimnest ruling family” even if the image’s filename is just dsc_0042.jpg. The entry’s text effectively gives the image a searchable description through association.

Every uploaded image gets a thumbnail generated automatically — a 200x200 (or proportional) compressed version used for the gallery grid display. Thumbnails live in a separate directory inside data/attachments/thumbs/ and are regenerated if you change the image.

Thumbnail generation happens in the background on upload and doesn’t block the UI. For large images (many MB), you’ll see the full-size image appear first and the thumbnail populate shortly after. For small images, the thumbnail is effectively instant.

Two main views:

The default. Images are displayed as a grid of thumbnail cards, each with the image title and primary tags visible. Scroll through your whole library at once. Click any card to open the detail view. Hover for a larger preview.

Good for browsing, visual scanning, and finding images by what they look like.

A row-based view with thumbnails, titles, tags, linked entries, dates, and file size all visible in columns. Sortable by any column. Good for managing the library at scale — bulk tagging, bulk linking, bulk deletion.

Toggle between views with a button in the toolbar. Some users prefer grid for all their work; some prefer list. Both work.

The gallery toolbar has:

  • Search box. Plain text matching against title, description, and tags.
  • Tag filter chips. Click tags from the tag cloud to filter by them. Multiple tags compose as AND filters.
  • Date range. Filter by upload date.
  • Entry link filter. “Show only images linked to this entry” or “show only images linked to any character entry.”
  • Sort. By date, title, file size, or tag count.

All filters compose. You can look at “images tagged ‘character’ AND ‘pirate’, linked to any entry, uploaded in the last 30 days, sorted by most recent” as a single filtered view.

Delete an image from its detail view or the context menu. Deletion is a two-step confirm for safety — you can’t accidentally one-click delete.

Deleting an image removes it from the gallery database and deletes the file from data/attachments/. The deletion also unlinks the image from any lore entries it was linked to. The entries themselves aren’t affected — they lose their visual asset but otherwise stay intact.

If you have a use-once workflow where images pile up faster than you can track, there’s a bulk delete action in list view for clearing old stale images.

  • Not an image editor. You can’t crop, rotate, adjust colors, or make edits in Ishvana. Use your preferred image editor (Photoshop, GIMP, Affinity) and re-upload the edited version.
  • Not a generation tool. Ishvana doesn’t generate images for you. The gallery is for storing images you already have. Image generation is a separate tool.
  • Not a cloud sync service. Gallery images live in your local data directory. For multi-device access, sync the whole data directory via Dropbox, Syncthing, or another tool.
  • Not a face-recognition tool. The gallery doesn’t automatically identify characters in photos. Tagging is manual (or tag suggestions based on filename).