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

@@ -34,6 +34,19 @@ class Character(db.Model):
def __repr__(self):
return f'<Character {self.character_id}>'
class Outfit(db.Model):
id = db.Column(db.Integer, primary_key=True)
outfit_id = db.Column(db.String(100), unique=True, nullable=False)
slug = db.Column(db.String(100), unique=True, nullable=False)
filename = db.Column(db.String(255), nullable=True)
name = db.Column(db.String(100), nullable=False)
data = db.Column(db.JSON, nullable=False)
default_fields = db.Column(db.JSON, nullable=True)
image_path = db.Column(db.String(255), nullable=True)
def __repr__(self):
return f'<Outfit {self.outfit_id}>'
class Settings(db.Model):
id = db.Column(db.Integer, primary_key=True)
openrouter_api_key = db.Column(db.String(255), nullable=True)