Tags fail quietly. Nobody gets an error for typing portrait today and
Portraits next month — the query just returns fewer results than it
should, forever, and there's no warning that it happened. The library looks
exactly as organised as it did the day before; it's only the search results
that are quietly wrong, and usually nobody notices until they go looking for
something specific and it isn't there. Consistency is the whole feature;
volume is not, and a vocabulary of thirty tags applied the same way every
time will find more of what you're looking for than three hundred applied
however felt natural in the moment.
The reason this is worth a deliberate process rather than winging it is that tagging happens in small moments spread across months or years, each one too small to feel like it deserves a rule. Nobody sits down and decides to fragment a vocabulary; it happens one slightly-different tag at a time, usually late at night, usually because checking the existing list felt like more friction than just typing what came to mind.
The steps below aren't a one-time setup so much as a small set of habits that need to survive contact with exactly those late-night moments, since that's when the discipline actually gets tested. A vocabulary that only holds up when you're being careful isn't really a vocabulary — the whole point is that it holds up when you're tagging quickly, tired, or halfway through something else entirely.
Step 1: Decide the axes before typing anything
Most tagging drift starts because one tag is being asked to describe
several different things at once — a subject, a mood and a project, all in
one string like client-portrait-final. Pick two or three separate axes up
front instead: what it is, what it's for, and its status. Keep each axis to
its own short list, and resist folding them together the first time it
feels convenient, because that first shortcut is usually where the
vocabulary starts to fragment.
~/Pictures/Reference- Concept sheets
- Turnarounds
- Palette studies
- coii-thumbnailswritten by Coii Ref
- coii-proxieswritten by Coii Ref
- coii.dbwritten by Coii Ref
Writing the axes down doesn't need to be formal — a short note in whatever app you already use for that kind of thing is enough, as long as it exists somewhere you'll actually check before inventing a new tag six months from now. The point of the list isn't ceremony; it's having something to check against in the ten seconds before typing a tag you're not sure already exists under a different spelling.
Step 2: Keep one flat vocabulary, not near-duplicates
portrait and portraits, hero-shot and hero, wip and in-progress
are each two tags to a query even though they're one idea to a person. The
fix is boring but effective: write the vocabulary down somewhere outside the
app — a short list, a dozen or two entries — and add to it deliberately
rather than typing whatever feels natural in the moment. The discipline that
actually matters here isn't cleverness, it's checking the list before typing
a new tag rather than after.
A flat list also beats a nested one for most reference libraries. Hierarchy
looks organised on a page but adds a decision every time you tag something
— does this go under character > pose or just pose? — and that decision
point is exactly where inconsistency creeps in, because two people, or the
same person on two different days, will answer it differently. A flat list
of specific tags, each one meaning exactly one thing, survives that problem
by never asking the question in the first place.
Step 3: Tag at the moment you first look, not later
A tag applied while an image is open costs a few seconds. The same tag applied three weeks later, from memory, costs much more and gets it wrong more often, because by then the reason the image mattered is no longer obvious just from looking at it. If tagging in the moment isn't realistic for a whole import, at minimum tag the images you're actively using for something — the ones already open on a canvas or already rated — and leave the rest for the untagged-pile queries described elsewhere rather than promising yourself a tagging session that keeps getting pushed back.
Dragging an image onto a canvas is often the natural moment to tag it anyway, since you're already looking closely enough to place it, which means the two habits — building a board and tagging what goes on it — tend to reinforce each other rather than competing for the same few minutes of attention.
Step 4: Use ratings and notes for what isn't really a tag
A quality judgment is a rating, not a tag — good and great as tags are
just a rating typed as text, with all the inconsistency that invites, since
one person's good is another's great and neither sorts numerically. A
comment specific to one image is a note, not a tag — wrong hand, right face describes exactly one picture and doesn't belong in a vocabulary meant
to cover many, because a tag that only ever applies to a single image was
never really a category to begin with.
Keeping these three separate — tags for categories, ratings for quality, notes for specifics — is what makes a query like the one above possible at all. A vocabulary where all three are mixed into one field can't be filtered this precisely, because there's no way to ask for "the tag" without also matching a rating or a note that happens to contain the same word.
Step 5: Catch drift with a saved view
Save a view built on each tag in the vocabulary. If a view built on
portrait starts returning fewer results than expected while the library is
visibly growing, that's the signal a variant has crept in somewhere —
portraits, Portrait, or a close synonym applied out of habit rather than
a deliberate choice. A saved view is the
same idea as Finder's own Smart Folders,
stored as a search's text rather than a snapshot, so it stays a useful check
rather than going stale itself the way a one-time count would.
Checking these views periodically — once a month is plenty for most libraries — turns vocabulary drift from something discovered by accident, usually while frustrated that a search came back thin, into something caught early enough to fix in minutes rather than hours.
Step 6: Cleaning up drift once it's found
The fix for a split vocabulary is a query, not a manual scroll. A view built on the stray variant returns exactly the images that need re-tagging, so a cleanup that sounds like "go through the whole library" becomes "re-tag these forty," which is an afternoon instead of a week. This is also the point where it's worth deciding, once and for all, which spelling wins — writing that decision into the same list from step one so the same drift doesn't happen again with the replacement tag.
A worked example: standardising a drifted vocabulary
A library that grew over two years without a written vocabulary often ends
up with something like portrait, Portrait and portraits all in active
use, applied by whoever was tagging that week without checking what came
before. The cleanup starts with three saved views, one per variant, to see
how the images actually split — often the split is uneven, with one
spelling covering most of the library and the other two showing up in
clusters that trace back to a specific import or a specific stretch of
weeks.
From there, the work is mechanical: pick the winning spelling, re-tag the minority sets to match it, and update the written vocabulary list so the decision is recorded rather than left to memory. The saved views themselves can be deleted once the merge is done, or kept temporarily as a check that no new stray variant reappears in the following weeks.
Why tags outlive the project they were written for
A tag applied during one project often turns out to matter again years
later, for a reason nobody could have predicted at the time — a turnaround
tag from an old character project becomes exactly what's needed when a new
project calls for the same kind of reference, even though the two jobs have
nothing else in common. This is the real payoff of keeping the vocabulary
flat and consistent rather than project-specific: a tag scoped to "the thing
I'm working on this month" stops being useful the month it ends, while a
tag scoped to "what kind of image this is" keeps paying off indefinitely,
across every project that ever needs that category again.
It's worth resisting the temptation to fold a project name into a
subject-matter tag for this reason — q3-turnaround mixes a category that
will matter again with a label that stops being relevant the moment the
project wraps, and untangling the two later is exactly the kind of cleanup
step six describes.
How this changes at the top and bottom of a rating scale
Tags and ratings are easy to keep separate in theory and easy to blur in
practice, especially at the extremes. The temptation to add a tag like
best or reject for the top and bottom of a collection is really just
the rating in disguise, and it has the same drift problem any other
quality-as-text tag does — some people's best is a five, other people's is
a four they're feeling generous about. Keeping the rating as the only
quality axis, and reserving tags strictly for subject and category, avoids
this without losing anything: rating:5 already finds the best of a set,
and it sorts and compares in a way no tag ever will.
Treating the vocabulary as a living document
The written list from step one isn't a one-time setup task; it's worth revisiting every few months, not to add tags speculatively but to check whether any of the existing ones have quietly stopped earning their keep. A tag applied to only two or three images after a year of active use probably should have been a note. One that's grown to cover half the library probably needs splitting into two more specific ones. Treating the list as something that gets pruned occasionally, rather than only ever added to, is what keeps it small enough to actually check before typing a new tag — which is the one habit everything else in this page depends on.
What to do once the vocabulary itself gets large
The discipline above matters more as a library grows, not less — a hundred tags used loosely is harder to trust than twenty used exactly, and the cost of drift compounds the longer it goes unnoticed. If a vocabulary is creeping past what anyone could recite from memory, that's usually a sign an axis is missing rather than that more tags are needed: something being encoded into the tag name — a project, a date, a client — probably belongs on its own axis, or as a folder, instead of being folded into the same list as subject-matter tags.
What tags are actually for, versus folders, and what a reference manager adds on top of either are worth reading alongside this if the vocabulary question is really a bigger organising one than tagging alone can answer. If your library is still small enough to keep the whole vocabulary in your head, it may not need this yet — a handful of Finder tags might already be doing the job fine. For work that leans especially hard on a consistent subject vocabulary, how illustrators structure a reference library covers a working example end to end, including how the same axis-based approach plays out against a real, growing collection. Otherwise: try it against your own tags for thirty days, no card, no account, and the vocabulary you write down in step one is the only preparation it needs — everything else in this page is a habit, not a setup task, and habits only prove themselves against a real, growing library rather than a trial run on a handful of test images.