- Export V3 comfy_entrypoint only when comfy_api V3 symbols exist, else V1
mappings; narrow the V3 import guard so real import errors surface
- Reject age_min > age_max with an input-named ValueError
- Validate data file structure at load with path and field in errors
- Sync JS sex filter lists with bundled data; test fails on drift
- Filter incompatible hair length/style and build/chest/shoulders pairs;
user-fixed or allow-listed values win when nothing compatible remains
- Join bust as "<size> <shape> bust"
- Vocabulary: fix malformed phrases (softly built build, hair worn buzz
cut), remove duplicate and conflicting entries, rename Maori to Maori
with macron, add skin tones, body types, hair styles, clothing,
footwear, accessories, female facial hair and male makeup options
- Bump version to 1.4.0
New sex-shared categories eye_shape (default random) and eyebrows
(default off), folded into the face pin. Expand expression (11->25),
accessories (12->25), skin_texture (10->20), and nationality (41->67).