It's worth starting with the honest limit rather than working up to it:
there's no query that finds "images with a lot of orange in them" the way
there's a query for a rating or a file type. Color is read into the index
during the first pass over a folder, the same as dimensions and EXIF data,
but nothing exposes it as a filter a query line can search against. Anyone
arriving here hoping for a color:orange key is going to be disappointed by
the rest of this page, and it's better to say so in the first paragraph
than bury it under six steps that dance around it.
What follows instead is the workflow that actually gets a library organized by palette and lighting today, using the parts that do exist — tags, ratings and canvases — built around how people actually think about color in a reference library, which is rarely as literal as a hex code anyway.
It's worth understanding why the gap exists rather than treating it as an arbitrary omission. Reading color into the index during a first pass is a mechanical step — the same kind of fact-gathering as reading a file's dimensions. Turning that raw reading into something a query can filter on usefully is a different problem entirely: two photographs can carry wildly different pixel-level color data and still read, to a person, as the same warm evening light, while two images with similar dominant hues can feel like they belong to entirely different moods. That's a judgment a person makes looking at a plate, not a number a filter compares against a threshold, which is exactly why the workflow below leans on tags — a person's own judgment, recorded once — rather than waiting on a filter that would have to guess at the same judgment automatically.
Step 1: Build a small vocabulary around mood, not hue
A tag like warm-palette or golden-hour does more work than a tag like
orange, because it captures the thing a reference is usually being pulled
for — the feeling of a lighting setup or a color story — rather than a
literal color that's present in the frame but not necessarily the point of
it. A handful of tags covering the palettes and lighting conditions that
actually recur in your work is worth more than an attempt to tag every hue
present in every image.
Building a tag vocabulary that holds up applies directly here — the same advice about keeping the list small and reserving tags for genuinely subjective calls is exactly what a useful palette vocabulary needs, since "is this warm-palette" is a judgment call in a way "is this a video file" never is.
That vocabulary is worth writing down somewhere outside the app the first
time it's decided — a short list of the eight or ten terms in active use —
so that applying a tag later is a matter of picking from a known list
rather than deciding fresh each time whether this particular image is
warm-palette or warm-tones or sunset-warm. That kind of drift is the
single most common way a color and lighting vocabulary quietly stops
working: not because the idea was wrong, but because three near-identical
tags ended up splitting what should have been one searchable group into
three smaller, individually less useful ones.
Step 2: Tag lighting conditions the way you'd describe them out loud
golden-hour, overcast, blue-hour, high-key, low-key — whatever
vocabulary matches how lighting actually gets discussed on the work you do
is more useful than a technical description of color temperature, partly
because it's faster to apply consistently and partly because it's the
language you'll actually type back into a query six months later.
This is also where lighting and mood tags earn their keep over generic descriptive tags — a tag applied for how something looks tends to get reused far more often than one applied for what something literally shows, since a reference collection is usually searched later by feeling more than by subject. Someone assembling a moodboard rarely thinks "I need images with orange in them"; they think "I need something with this warm, end-of-day feeling," which is precisely the vocabulary built above.
Step 3: Let rating carry strength, not just quality
A tag says an image belongs to a mood; a rating says how strongly it
represents it. tag:warm-palette rating:>=4 is a meaningfully different
query from just tag:warm-palette — the first is "the best examples," the
second is "everything loosely in that bucket," and having both available
means the tag vocabulary doesn't need a separate tier system layered on top
of it just to distinguish a strong example from a borderline one.
Worth being precise about where rating and tag divide labor: the tag is a
binary membership test — either an image belongs to the warm-palette
group or it doesn't — while the rating is a spectrum within that group.
Trying to fold the strength judgment into the tag itself, with something
like warm-palette-strong as a separate tag from warm-palette, splits
what a single rating already handles into a second tag vocabulary that has
to be maintained in parallel with the first, for no benefit a query
combining the two doesn't already provide.
Step 4: Use a board as the actual comparison tool
This is the step that replaces the filter that doesn't exist. Comparing several palettes side by side to see which reads as most cohesive, or spotting the one image whose lighting doesn't match the rest of a set, is a task for eyes looking at plates arranged together — not a query, since nothing automatic can judge whether five warm-toned images actually feel consistent as a set. Pull a tagged group onto a canvas and arrange it; that visual pass is doing work no query can.
Step 4b: Save a comparison board as a view into the vocabulary
A palette study board built once for a specific decision doesn't have to be a one-time artifact — saving the query that assembled it as a view means the same comparison can be rebuilt later with whatever's been tagged since, rather than starting the pull from scratch the next time a similar judgment call comes up.
Step 5: Combine a lighting tag with what EXIF already knows
EXIF is read into the index during indexing alongside color and dimensions,
which gives dimensions and format as searchable facts even before any tag
is applied — a rough filter like type:image width:>3000 narrows a folder
down before a single palette tag exists, which is a reasonable starting
point for a shoot that hasn't been tagged yet at all.
Step 5b: What to do with an image that fits two palettes at once
A photograph shot at the exact edge of golden hour, drifting into blue
hour by the time the last frame was taken, genuinely belongs to both
tags — and that's fine, since a query line ANDs across different keys but
a single tag key with a comma list is an OR, so tag:any:golden-hour, blue-hour finds either without forcing a choice between them up front.
Applying both tags to the file directly, rather than picking the one that
feels slightly more accurate, keeps the file findable from either search
later, which matters more than getting the "correct" single label on the
first pass.
Step 5c: When a shoot changes lighting halfway through
A single session that starts under overcast sky and finishes at golden hour isn't one tag applied to the whole folder — it's two, applied to whichever images actually fall on each side of that shift, found afterward by checking timestamps against the light in each frame rather than guessing at a single tag for the whole shoot.
Step 6: Reuse a palette tag across projects, not per shoot
A tag like warm-palette is more useful applied consistently across every
project that ever needed it than reinvented per shoot as
harbor-warm-tones or season-3-warm. Organizing references by
project already covers
tagging a file for the project it belongs to; a mood tag sits alongside
that project tag rather than replacing it, so a single image can answer to
both project-harbor and warm-palette at once, and a query combining the
two finds exactly the warm-toned references from one specific project
without needing a third, project-specific color tag invented just for that
shoot.
A worked example: sorting a season's worth of shoots before building a board
A photographer with four months of shoots and no palette tags yet applied is a realistic starting point, not an edge case. Rather than tagging every image in the backlog before doing anything useful with it, the practical order is: pull a broad date-scoped query, review it visually on a canvas, and tag only the images that end up mattering for the board being built right now.
~/Pictures/Reference/Season-Shoots- April
- May
- June
- July
- coii-thumbnailswritten by Coii Ref
- coii-proxieswritten by Coii Ref
- coii.dbwritten by Coii Ref
From those 340, a handful pulled onto a canvas and reviewed by eye becomes
the actual working set — maybe thirty images that genuinely read as one
warm, golden-hour mood. Those thirty get the warm-palette and
golden-hour tags; the rest of the 340, and the thousands outside that
date range, stay untagged until a future board needs them specifically.
That's the same pattern worth applying to a library of any size: tag the
part that's actually being used right now, not the whole archive on the
assumption it might be needed eventually.
Common mistakes worth avoiding
Trying to build a tag for every color present in an image is the most
common one — it produces a vocabulary too large to apply consistently and
answers a question nobody actually asks a library. A quieter mistake is
tagging color and lighting as though they're the same axis; golden-hour
describes a lighting condition that can co-occur with several different
palettes, and collapsing the two into one tag list loses that distinction
the first time someone needs to filter on one without the other. And
waiting to tag at all because "there's no color search anyway" — the tag
vocabulary above is exactly what makes palette and lighting findable
without one, and skipping it just means falling back to scrolling by eye
every time.
Step 8: What to name a mood tag so it survives six months
A tag chosen for how it feels in the moment — nice-warm-ones — is harder
to remember and apply consistently later than one chosen for how it'll read
in a query six months on. warm-palette and golden-hour work as names
because they describe the thing itself rather than a reaction to it, and
because they read the same way whether the person typing the query is the
one who tagged the image or someone else entirely. Settling on that kind of
plain, descriptive naming before the vocabulary grows past a handful of
tags avoids the drift where half the mood tags describe the mood and the
other half describe how someone felt about a specific shoot.
What to do as the library grows
A vocabulary of eight or ten mood and lighting tags, applied consistently across a few hundred images, finds more of what you're looking for than attempting anything more granular across ten thousand. Revisit the vocabulary itself only when a real gap shows up in practice — a shoot that doesn't fit any existing tag — rather than trying to anticipate every palette in advance. The board step stays the same at any scale: pull a tagged set, look at it together, and let the eye do the part no query line can.
Using every search operator in one line covers the rest of the query syntax this workflow leans on, and making a moodboard from folders you already have covers the board step in more depth. What EXIF data is explains what actually gets read during indexing, and tags versus folders for images is worth reading if the mood vocabulary above raises the bigger question of how to structure a library overall. A reference organizer built for photographers covers the wider workflow this fits into. Or try it against a shoot you already have — thirty days, every feature, no card and no account, is enough to tag one folder by palette and see whether the board step actually replaces the filter you were hoping for.