For hair color, no qualifier is need, yo can just do Blond, Brown, etc.
Currently the mod considers HalfkinCat and BeastkinCat 2 entirely different things. If you have a portrait you think straddles the two, you can add both HalfkinCat and BeastkinCat to the name. For many though it's clear distinction, Beastkin are full on furry, Halfkin are human, with elements of the animal so I think it's better to differentiate.
No eye color yet. Nor many of the other attributes with multiple possibilities like height, tail, wings, horns, etc. Now that the weighting is in place though I can add them. Most likely the basic implementation will be <color>Eyes, <type>Wings, etc. With additional modifiers if it makes sense. All matches are case insensitive and do not require any specific surrounding characters.
From your rules, you listed off alternative colors. I had been thinking of working something in like that by having a similar list, and if a portrait doesn't have the exact color, giving it partial weight for a neighboring color. Like if no Auburn, then give half weight if it had Brown or Red.
>Also just a thought, hypothetically in the future if we have like 2Gb of portraits wouldnt it be much better to scan specific folders?
For this mod, scanning is a function of # of portraits, not their size. With 935 (100mb) portraits it currently takes <1 second most of the time for my, on a low end that might be longer. It only does this if A) the cache is empty (new game run) or expired (older than 5 minutes currently), and B) a new slave is being created. This should scale up to some rather large portrait folders, and I plan to make the cache time configurable so if it's a really large collection and really slow computer, you could disable expiration entirely.
I am thinking of some improvements to the portrait image select dialog. I have a half-working on-demand load which is critical if the collection grows to huge levels. Additionally was thinking, could display matched attribute data for portraits as a tooltip, so if you ever have a doubt if a portrait is matching correctly, you can check.