Add outfit gallery and AI-powered creation for characters and outfits

- Add outfit gallery with CRUD operations (create, read, update, delete)
- Add AI-powered profile generation for both characters and outfits
- Add toggle to switch between AI generation and manual creation
- Auto-generate filenames from names with incrementing for duplicates
- Add 'full_body' and 'bottom' fields to wardrobe structure
- Update all character and outfit JSON files with new wardrobe fields
- Reorganize data into data/characters and data/clothing directories
- Update README with new features and JSON structure documentation
This commit is contained in:
Aodhan Collins
2026-02-19 18:34:46 +00:00
parent 369c92e3ea
commit c0e6cff7b7
87 changed files with 2325 additions and 384 deletions

View File

@@ -5,6 +5,8 @@ A local web-based GUI for managing character profiles (JSON) and generating cons
## Features
- **Character Gallery**: Automatically scans your `characters/` folder and builds a searchable, sortable database.
- **Outfit Gallery**: Manage reusable outfit presets that can be applied to any character.
- **AI-Powered Creation**: Create new characters and outfits using AI to generate profiles from descriptions, or manually create blank templates.
- **Granular Prompt Control**: Every field in your character JSON (Identity, Wardrobe, Styles) has a checkbox. You decide exactly what is sent to the AI.
- **ComfyUI Integration**:
- **SDXL Optimized**: Designed for high-quality SDXL workflows.
@@ -45,6 +47,11 @@ A local web-based GUI for managing character profiles (JSON) and generating cons
## Usage
### Creating Characters & Outfits
- **AI Generation**: Toggle "Use AI to generate profile from description" on, then describe your character or outfit. The AI will generate a complete profile with appropriate tags.
- **Manual Creation**: Toggle AI generation off to create a blank template you can edit yourself.
- **Auto-naming**: Leave the filename field empty to auto-generate one from the name. If a file already exists, a number will be appended automatically.
### Gallery Management
- **Rescan**: Use the "Rescan Character Files" button if you've added new JSON files or manually edited them.
- **Save Defaults**: On a character page, select your favorite prompt combination and click "Save as Default Selection" to remember it for future quick generations.
@@ -57,9 +64,85 @@ A local web-based GUI for managing character profiles (JSON) and generating cons
./launch.sh --clean
```
## JSON Structure
### Character Profile
```json
{
"character_id": "example_character",
"character_name": "Example Character",
"identity": {
"base_specs": "1girl, slender build, fair skin",
"hair": "long blue hair",
"eyes": "blue eyes",
"hands": "",
"arms": "",
"torso": "",
"pelvis": "",
"legs": "",
"feet": "",
"extra": ""
},
"defaults": {
"expression": "smile",
"pose": "standing",
"scene": "simple background"
},
"wardrobe": {
"default": {
"full_body": "",
"headwear": "",
"top": "white blouse",
"bottom": "blue skirt",
"legwear": "black thighhighs",
"footwear": "black shoes",
"hands": "",
"accessories": "ribbon"
}
},
"styles": {
"aesthetic": "anime style",
"primary_color": "blue",
"secondary_color": "white",
"tertiary_color": ""
},
"lora": {
"lora_name": "",
"lora_weight": 1.0,
"lora_triggers": ""
},
"tags": ["tag1", "tag2"]
}
```
### Outfit Profile
```json
{
"outfit_id": "school_uniform_01",
"outfit_name": "School Uniform",
"wardrobe": {
"full_body": "",
"headwear": "",
"top": "white blouse, sailor collar",
"bottom": "pleated skirt",
"legwear": "knee socks",
"footwear": "loafers",
"hands": "",
"accessories": "ribbon tie"
},
"lora": {
"lora_name": "",
"lora_weight": 0.8,
"lora_triggers": ""
},
"tags": ["school uniform", "uniform"]
}
```
## File Structure
- `/characters`: Your character JSON files.
- `/data/characters`: Your character JSON files.
- `/data/clothing`: Outfit preset JSON files.
- `/static/uploads`: Generated images (organized by character subfolders).
- `/templates`: HTML UI using Bootstrap 5.
- `app.py`: Flask backend and prompt-building logic.