Files
character-browser/data/characters/hikage_senran_kagura.json
Aodhan Collins 29a6723b25 Code review fixes: wardrobe migration, response validation, path traversal guard, deduplication
- Migrate 11 character JSONs from old wardrobe keys to _BODY_GROUP_KEYS format
- Add is_favourite/is_nsfw columns to Preset model
- Add HTTP response validation and timeouts to ComfyUI client
- Add path traversal protection on replace cover route
- Deduplicate services/mcp.py (4 functions → 2 generic + 2 wrappers)
- Extract apply_library_filters() and clean_html_text() shared helpers
- Add named constants for 17 ComfyUI workflow node IDs
- Fix bare except clauses in services/llm.py
- Fix tags schema in ensure_default_outfit() (list → dict)
- Convert f-string logging to lazy % formatting
- Add 5-minute polling timeout to frontend waitForJob()
- Improve migration error handling (non-duplicate errors log at WARNING)
- Update CLAUDE.md to reflect all changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 00:31:27 +00:00

45 lines
1.1 KiB
JSON

{
"character_id": "hikage_senran_kagura",
"character_name": "Hikage",
"identity": {
"base": "1girl, large_breasts, pale_skin",
"head": "green_hair, short_hair, yellow_eyes, slit_pupils",
"upper_body": "tattoo, neck_tattoo, chest_tattoo, stomach_tattoo, navel",
"lower_body": "",
"hands": "fingernails",
"feet": "",
"additional": "snake_print"
},
"defaults": {
"expression": "neutral_expression",
"pose": "",
"scene": ""
},
"wardrobe": {
"base": "torn_clothes",
"head": "",
"upper_body": "yellow_shirt, crop_top",
"lower_body": "jeans, torn_jeans, open_fly, loose_belt",
"additional": "leg_belt",
"feet": "boots",
"hands": "arm_belt"
},
"styles": {
"aesthetic": "anime, video_game",
"primary_color": "yellow",
"secondary_color": "green",
"tertiary_color": "blue"
},
"lora": {
"lora_name": "",
"lora_weight": 0.8,
"lora_triggers": "Hikage_IL, Hikage_Shinobi",
"lora_weight_min": 0.8,
"lora_weight_max": 0.8
},
"tags": {
"origin_series": "Senran Kagura",
"origin_type": "Video Game",
"nsfw": false
}
}