- NSFW hide toggle (🔞) beside Tags/Natural-Language: hides designated NSFW
groups + leaked NSFW items from the picker browser only; build state /
round-trip / emit untouched. Manifest-driven, default hidden.
- NSFW Actions category: surfaces the dormant nsfw_action bucket (451 acts)
as a toggle-gated 🔞 category; emits like a normal action. Backend already
existed; frontend-only.
- Card/list view toggle (▦/☰) in the browser header: compact list rows with a
tiny left thumb, persisted; pure CSS restyle, works in every view.
Safety: delete 19 curated tag-builder items that should not exist at all
(non-consent, bestiality, guro, and minor-sexualization tags across
appearance/expression/nsfw_action/cast items), per a content-safety audit.
Also: add /characters/identity-index so the picker recognizes all 1,486
normalized characters in existing prompts (was capped at 200).
- Tag-builder: port ~1,477 v1 characters into the v2 chip format so the
character picker shows 1,486 characters (was 9); 1,390 carry rich per-chip
descriptions restructured from each character's own bio. Adds
scripts/port_v1_characters_to_v2.py.
- Ideogram: rewrite caption to the real Ideogram-4 schema + broaden refusal
detection; sampler updates.
- Pose-studio, regional-detailer, attention-couple: assorted fixes.
- Add validate_templates / test_regions / test_crop_windows scripts.