3c828a170fdf10d2910bc57f896db9c40a386746
- Implements sequential job queue with background worker thread (_enqueue_job, _queue_worker) - All generate routes now return job_id instead of prompt_id; frontend polls /api/queue/<id>/status - Queue management UI in navbar with live badge, job list, pause/resume/remove controls - Fix: replaced url_for() calls inside finalize callbacks with direct string paths (url_for raises RuntimeError without request context in background threads) - Batch cover generation now uses two-phase pattern: queue all jobs upfront, then poll concurrently via Promise.all so page navigation doesn't interrupt the process - Strengths gallery sweep migrated to same two-phase pattern; sgStop() cancels queued jobs server-side - LoRA weight randomisation via lora_weight_min/lora_weight_max already present in _resolve_lora_weight Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Character Browser & Generator
A local web-based GUI for managing character profiles (JSON) and generating consistent images using ComfyUI.
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.
- Actions Gallery: A library of reusable poses and actions (e.g., "Belly Dancing", "Sword Fighting") that can be previewed on any character model.
- Styles Gallery: Manage art style / artist LoRA presets with AI-assisted bulk creation from your styles LoRA folder.
- Scenes Gallery: Background and environment LoRA presets, previewable with any character.
- Detailers Gallery: Detail enhancement LoRA presets for fine-tuning face, hands, and other features.
- Checkpoints Gallery: Browse all your installed SDXL checkpoints (Illustrious & Noob families). Stores per-checkpoint generation settings (steps, CFG, sampler, VAE, base prompts) via JSON files in
data/checkpoints/. Supports AI-assisted metadata generation from accompanying HTML files. - AI-Powered Creation: Create and populate gallery entries using AI to generate profiles from descriptions or LoRA HTML files, or manually create blank templates.
- Character-Integrated Previews: Standalone items (Outfits/Actions/Styles/Scenes/Detailers/Checkpoints) can be previewed directly on a specific character's model.
- Granular Prompt Control: Every field in your JSON models (Identity, Wardrobe, Styles, Action details) has a checkbox. You decide exactly what is sent to the AI.
- ComfyUI Integration:
- SDXL Optimized: Designed for high-quality SDXL/Illustrious workflows.
- Localized ADetailer: Automated Face and Hand detailing with focused prompts (e.g., only eye color and expression are sent to the face detailer).
- Quad LoRA Chaining: Chains up to four distinct LoRAs (Character + Outfit + Action + Style/Detailer/Scene) sequentially in the generation workflow.
- Per-Checkpoint Settings: Steps, CFG, sampler name, VAE, and base prompts are applied automatically from each checkpoint's JSON profile.
- Real-time Progress: Live progress bars and queue status via WebSockets (with a reliable polling fallback).
- Batch Processing:
- Fill Missing: Generate covers for every item missing one with a single click, across all galleries.
- Bulk Create from LoRAs/Checkpoints: Auto-generate JSON metadata for entire directories using an LLM.
- Advanced Generator: A dedicated mix-and-match page combining any character, outfit, action, style, scene, and detailer in a single generation.
- Smart URLs: Sanitized, human-readable URLs (slugs) that handle special characters and slashes gracefully.
Prerequisites
- Python 3.10+
- ComfyUI running locally (default:
http://127.0.0.1:8188). - ComfyUI Custom Nodes:
- ComfyUI-Impact-Pack (Required for FaceDetailer).
- Models:
- Ensure your Checkpoints are in the folders defined in
app.py. - Face detection model:
bbox/face_yolov9c.pt(or updatecomfy_workflow.json). - Hand detection model:
bbox/hand_yolov8s.pt.
- Ensure your Checkpoints are in the folders defined in
Setup & Installation
- Clone the repository to your local machine.
- Configure Paths: Open
app.pyand update the following variables to match your system:app.config['COMFYUI_URL'] = 'http://127.0.0.1:8188' app.config['ILLUSTRIOUS_MODELS_DIR'] = '/path/to/your/Illustrious/models' app.config['NOOB_MODELS_DIR'] = '/path/to/your/Noob/models' - Launch: Simply run the launch script. It will handle the virtual environment and dependencies automatically.
chmod +x launch.sh ./launch.sh
Usage
Creating Content
- AI Generation: Toggle "Use AI to generate profile from description" on, then describe your character, outfit, or action. 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" buttons if you've added new JSON files or manually edited them.
- Save Defaults: On any detail page, select your favorite prompt combination and click "Save as Default Selection" to remember it for future generations.
Generation
- Preview: Generates an image and shows it to you without replacing your current cover.
- Replace: Generates an image and sets it as the item's official gallery cover.
- Clean Start: If you want to wipe the database and all generated images to start fresh:
./launch.sh --clean
File Structure
/data/characters: Character JSON files./data/clothing: Outfit preset JSON files./data/actions: Action/Pose preset JSON files./data/styles: Art style / artist LoRA JSON files./data/scenes: Scene/background LoRA JSON files./data/detailers: Detailer LoRA JSON files./data/checkpoints: Per-checkpoint metadata JSON files (steps, CFG, sampler, VAE, base prompts)./data/prompts: LLM system prompts used by the AI-assisted bulk creation features./static/uploads: Generated images (organized by subfolders).app.py: Flask backend and prompt-building logic.comfy_workflow.json: The API-format workflow used for generations.models.py: SQLAlchemy database models.DEVELOPMENT_GUIDE.md: Architectural patterns for extending the browser.
Description
Languages
HTML
58.2%
Python
38.7%
CSS
2.9%
Dockerfile
0.1%