AI used, but this post is not AI.
As previously mentioned, I have some photos I want to name. They come in like 20261019_12345678.jpg, which is a date and then a timestamp. The problem in this use case comes when I am reviewing photos taken within seconds of each other. Reviewing them later, is the best photo 20261019_12345678 or 20261019_12345987?
I’m aware that I can use a Digital Asset Manager (DAM) for this task. These are what semi-pro photographers use, for example digiKam or DarkTable. I think my approach can integrate with other tools nicely. This is about making filenames more useful and less ugly. The files can still be sorted after that point. That approach cannot be automated, and this is about minimal intervention. I intend to use a DAM to sort these photos further.
So the task becomes adding English words to filenames. The only hard part is getting a suitable list of English words. After searching and asking here, I didn’t find any that were tightly dedicated to being non offensive and extremely boring. My list is also focused on computing and filename related uses, so ambiguous words of that nature (“program”) are also excluded.
This wordlist could be nice in any situation where a raw timestamp, hash, or set of words (“Charming Ferret”) is used. It’s meant for humans. Machines don’t need to read English and they don’t get offended. I will use this for photos and voice memos to start.
Starting wordlist:
- I combined SLIP 39 and BIP 39 for about 1500 words. The final wordlists were 278 and 156 words long (156 has fewer filename collisions, explained below).
- I added 5 words to cover X and Z - xeno zeal zest zeta zinc
I used Sonnet 5.5 to create an app that allowed me to hand-label the 1500 words as “boring” (good) or “not boring” (bad). I labeled A-D myself and then sent my labeled data and the categories to Claude and had it spit out the rest. Overzealously removing “good” words is not a big problem because I ended up with 278 viable words anyway. Claude’s list of “good” words contained over 80% good words. I don’t think I removed more than 50 words from its list.
I also tried to give this job to Jev, but it didn’t seem to understand the problem. It may be too subjective or esoteric (does a model that small understand “wave” can be colloquially a file type?).
Good properties:
- high edit-distance between words in a short number of characters. (BIP 0039 does this in 4 characters)
- non offensive
- non exciting (see my last post)
- all 26 english letters covered
- not too many words with the same first 3 or 4 characters (repeat, replace)
Frowned upon word types:
- filename collisions: using my computer as a testbed (5 million files and folders), I used Everything to exclude the most prolific words and first-4-char substrings. “Program” had 840k results. “ease” had 386k results, many from “release”. “starting” is the most prolific in beige-156, with 30k results. In the larger beige-278 list, results range from 840k for program, to 50k for install, to 40k for axis.
- anything exciting. Colors, good/bad opinions (“exciting”, “impressive”), animals, etc. were frowned upon. I wanted to avoid implying anything about the contents of a file from the filename.
The wordlists are in the comments.
Here are the two wordlists, sorted by filename prevalence.
beige-wordlist-156
starting decorate treat merit multiple mandate imply expect explain quarter ruler prepare category exceed describe primary finding agency forecast admit hanger hearing permit dictate equip careful recall educate identify calcium ordinary evaluate length quantity execute likely herald reaction enforce closet ancient industry gesture often champion ambition ranked decision grant organize duration dominant relate meaning maximum together blanket fused improve flexible fancy aspect grasp repeat gravity losing engage depart exclude declare costume observe frequent increase modify apart making crunch cubic lift fraction submit deal fragment leader bolt alto belong amount bracelet hesitate capacity cause funding trend carbon floral exact amuse omit mixture beam inherit stay genre herd involve junior emphasis briefing adorn cowboy purchase dough diminish brave bulb devote being agree envelope budget coal fiscal much civil payment unfold cradle zeta zeal glance obtain carve genuine xeno aluminum chew faint says midst ceramic buyer usual phrase yield ajar paid enlarge mild humidity furl zinc depict judicial zestbeige-wordlist-278
program package profile source extra include plot move heat type install valid intend cover index huge main manual zone language level object class network item group kind manager hand various bundle quick plan advance lend round provide order axis very deploy random replace step volume simple large kernel review method expand material machine fact metric force element counter cards render inform crystal single should require regular guard carpet general detect listen result gather aide inside depend width domain extend true dynamic have flip mixed course living join capture ending away hybrid march firm echo moment exchange forward perfect piece clock greatest idea beyond total response percent credit bucket clay lift deal together repeat length cubic bolt alto champion fused apart observe ancient multiple discuss exact treat omit beam making stay fancy herd primary engage herald category fragment grant bulb cowboy expect being coal execute fraction much carbon prepare finding gravity organize trend inherit genre junior cause maximum depart duration civil leader crunch purchase payment quarter mixture submit zeta losing explain budget exclude zeal aspect flexible obtain brave hanger practice amount xeno estimate agree equip relate chew reaction says carve remind identify ruler evaluate modify funding floral dough starting describe unfold costume imply briefing gesture closet ancestor recall decision usual capacity ordinary improve agency yield phrase amuse belong envelope ajar cradle enforce hearing faint easel increase paid declare likely meaning decorate ambition blanket formal steady mild industry merit emphasis fiscal glance forecast careful often genuine furl quantity ceramic overall involve permit exceed ranked bracelet zinc endorse enlarge helpful realize buyer zest admit aluminum devote midst depict indicate dictate frequent mandate grasp dominant calcium diminish educate humidity hesitate adorn judicialYou can alphabetize them at any number of sites such as https://wordcounter.net/alphabetize

