ChronicleNext / design.md
topguy's picture
Phase 5.5: UI Model Selection & Enhanced Fault Diagnostics
e480cd9
|
Raw
History Blame Contribute Delete
3.09 kB

RPGPortrait Design Document

Project Overview

RPGPortrait is a decoupled, modern web application for tabletop RPG players to build detailed prompts and generate character portraits. It follows a Next.js (Frontend) and FastAPI (Backend) architecture, utilizing a premium "Obsidian & Ember" dark-aesthetic UI.

UI Design

The interface is a responsive, single-page application (SPA) with a primary content area and a secondary configuration hub.

Layout Structure

  • Navigation Tabs:
    • Identity: Core character traits (Race, Class, Gender, Age).
    • Appearance: Visual details (Hair, Eyes, Build, Distinguishing Features).
    • Equipment: Gear and artifacts (Armor, Weapons, Accessories).
    • Environment: Scene settings (Background, Lighting, Mood).
    • Render Style: Artistic direction (Art Style, VFX, Aspect Ratio).
    • Configuration: System management (AI Engines, API Tokens, Local Models).
  • Portrait Studio (Center):
    • Full-Resolution Masterpiece: Interactive image display with lightbox.
    • Refinement Suite: Narrative enhancement and renaming features.
    • Action Bar: Synthesize and Randomize controls.
  • State Management (Sidebar):
    • Save/Load: JSON-based state export/import.
    • Prompt Preview: Real-time technical prompt construction.

Prompt Assembly Logic

The system uses a modular 3-stage pipeline:

  1. Technical Segmenting: Assembles dropdown values into a base prompt using features.yaml.
  2. AI Refinement: Transmutes technical tokens into vivid descriptions using LLMs (Gemini, Ollama, or HF). Instructions are stored in prompts.yaml.
  3. Image Synthesis:
    • Cloud: Google Gemini (Imagen) or Hugging Face (Direct API/Router).
    • Local: ComfyUI via WebSocket/REST with dynamic workflow injection.

Persistence & State

  • Milk and Cookies: All UI selections and engine configurations are persisted in localStorage.
  • Metadata: Generated images embed the full character prompt and name in PNG metadata (tEXt chunks).

Technical Stack

  • Frontend: Next.js 15, Tailwind CSS v4 (Glassmorphism), Lucide Icons.
  • Backend: FastAPI (Python 3.11+), Uvicorn.
  • AI Backend:
    • Gemini: google-genai SDK.
    • Ollama: Local REST API exploration.
    • Hugging Face: huggingface_hub and direct Router requests.
    • ComfyUI: WebSocket bridge for status and history tracking.

Project Architecture

  • api.py: FastAPI server hosting the REST API and serving the static frontend in production.
  • frontend/src/: Next.js source code, components, and Tailwind styles.
  • modules/: Shared backend logic for integrations, prompt assembly, and config.
  • features.yaml / prompts.yaml: Externalized data and instruction layers.

Maintenance & Development

  • Dev Servers:
    • Frontend: npm run dev (Port 3000)
    • Backend: python api.py (Port 8000)
  • Deployment: Configured for Hugging Face Spaces via Docker. Static export mode is used for high-performance delivery.