Everything in one place, and findable
Hundreds of files named things like ChatGPT Image Aug 2, 2026, 03_20_58 PM.png are not an archive but a problem. The library turns them into an order a human can explain.
One category per asset
Every asset hangs off exactly one category in a tree of unlimited depth, for example App > Games > Star game. The full path is shown as a breadcrumb and is at the same time the basis for the folder structure on publication. Moving a category node takes its assets with it; the matching publication folder is not silently renamed but offered as a move task you confirm on purpose.
Tags alongside the category
Where the category answers "where does this belong", tags answer "what is in it". Tags come from managed lists, so no two spellings of the same thing appear. A large part is filled automatically from the generation itself: character and number of figures from the cast, world from the chosen world, style from the style profile and orientation from the dimensions.
Searching and filtering
You can filter on category (including its children), character, world, style, use, image kind, status, project, model, author, date range, orientation, minimum resolution, canon outdated, published and embargo. You can search on name, on text in the brief, on text in the feedback and on image, with a perceptual hash that finds visually similar assets.
Version tree and provenance
The versions of an asset form a real tree, not a list: from v2 both a v3 and a separate v2a can grow. Each node shows who made it, with which model, and which change gave rise to it. Beside the image sit the provenance, the check result, the tags, the category, the publications and the feedback thread.
A note on thumbnails: a grid of images must not squash landscape pictures flat. Thumbnails keep their ratio and carry the original ratio as a label, because a badly cropped thumbnail drops exactly the detail that matters.