# Image Studio Implementation Overview This document provides a technical overview of the Image Studio implementation, including architecture, backend services, frontend components, and data flow. ## Architecture Overview Image Studio follows a modular architecture with clear separation between backend services, API endpoints, and frontend components. ```mermaid graph TB subgraph "Frontend" UI[Image Studio UI Components] Hooks[React Hooks] end subgraph "API Layer" Router[Image Studio Router] Auth[Authentication Middleware] end subgraph "Service Layer" Manager[ImageStudioManager] Create[CreateStudioService] Edit[EditStudioService] Upscale[UpscaleStudioService] Social[SocialOptimizerService] Control[ControlStudioService] end subgraph "Providers" Stability[Stability AI] WaveSpeed[WaveSpeed AI] HuggingFace[HuggingFace] Gemini[Gemini] end subgraph "Storage" Assets[Asset Library] Files[File Storage] end UI --> Hooks Hooks --> Router Router --> Auth Auth --> Manager Manager --> Create Manager --> Edit Manager --> Upscale Manager --> Social Manager --> Control Create --> Stability Create --> WaveSpeed Create --> HuggingFace Create --> Gemini Edit --> Stability Upscale --> Stability Manager --> Assets Create --> Files Edit --> Files Upscale --> Files ``` ## Backend Architecture ### Service Layer #### ImageStudioManager **Location**: `backend/services/image_studio/studio_manager.py` The main orchestration service that coordinates all Image Studio operations. **Responsibilities**: - Initialize all module services - Route requests to appropriate services - Provide unified interface for all operations - Manage templates and platform specifications - Cost estimation and validation **Key Methods**: - `create_image()`: Delegate to CreateStudioService - `edit_image()`: Delegate to EditStudioService - `upscale_image()`: Delegate to UpscaleStudioService - `optimize_for_social()`: Delegate to SocialOptimizerService - `get_templates()`: Retrieve available templates - `get_platform_formats()`: Get platform-specific formats - `estimate_cost()`: Calculate operation costs #### CreateStudioService **Location**: `backend/services/image_studio/create_service.py` Handles image generation with multi-provider support. **Features**: - Provider selection (auto or manual) - Template-based generation - Prompt enhancement - Batch generation (1-10 variations) - Quality level mapping - Persona support **Provider Support**: - Stability AI (Ultra, Core, SD3.5) - WaveSpeed (Ideogram V3, Qwen) - HuggingFace (FLUX models) - Gemini (Imagen) #### EditStudioService **Location**: `backend/services/image_studio/edit_service.py` Manages image editing operations. **Operations**: - Remove background - Inpaint & Fix - Outpaint - Search & Replace - Search & Recolor - General Edit **Features**: - Optional mask support - Multiple input handling (base, mask, background, lighting) - Provider abstraction - Operation metadata #### UpscaleStudioService **Location**: `backend/services/image_studio/upscale_service.py` Handles image upscaling operations. **Modes**: - Fast 4x upscale - Conservative 4K upscale - Creative 4K upscale **Features**: - Quality presets - Optional prompt support - Provider-specific optimization #### SocialOptimizerService **Location**: `backend/services/image_studio/social_optimizer_service.py` Optimizes images for social media platforms. **Features**: - Platform format specifications - Smart cropping algorithms - Safe zone visualization - Batch export - Image processing with PIL **Supported Platforms**: - Instagram, Facebook, Twitter, LinkedIn, YouTube, Pinterest, TikTok #### ControlStudioService **Location**: `backend/services/image_studio/control_service.py` Advanced generation controls (planned). **Planned Features**: - Sketch-to-image - Style transfer - Structure control ### Template System **Location**: `backend/services/image_studio/templates.py` **Components**: - `TemplateManager`: Manages template loading and retrieval - `ImageTemplate`: Template data structure - `Platform`: Platform enumeration - `TemplateCategory`: Category enumeration **Template Structure**: - Platform-specific dimensions - Aspect ratios - Style recommendations - Provider suggestions - Quality settings ### API Layer #### Image Studio Router **Location**: `backend/routers/image_studio.py` **Endpoints**: ##### Create Studio - `POST /api/image-studio/create` - Generate images - `GET /api/image-studio/templates` - Get templates - `GET /api/image-studio/templates/search` - Search templates - `GET /api/image-studio/templates/recommend` - Get recommendations - `GET /api/image-studio/providers` - Get available providers ##### Edit Studio - `POST /api/image-studio/edit` - Edit images - `GET /api/image-studio/edit/operations` - List available operations ##### Upscale Studio - `POST /api/image-studio/upscale` - Upscale images ##### Social Optimizer - `POST /api/image-studio/social/optimize` - Optimize for social platforms - `GET /api/image-studio/social/platforms/{platform}/formats` - Get platform formats ##### Utility - `POST /api/image-studio/estimate-cost` - Estimate operation costs - `GET /api/image-studio/platform-specs/{platform}` - Get platform specifications - `GET /api/image-studio/health` - Health check **Authentication**: - All endpoints require authentication via `get_current_user` middleware - User ID validation for all operations **Error Handling**: - Comprehensive error messages - Provider fallback logic - Retry mechanisms - Logging for debugging ## Frontend Architecture ### Component Structure ``` frontend/src/components/ImageStudio/ ├── ImageStudioLayout.tsx # Shared layout wrapper ├── ImageStudioDashboard.tsx # Main dashboard ├── CreateStudio.tsx # Image generation ├── EditStudio.tsx # Image editing ├── UpscaleStudio.tsx # Image upscaling ├── SocialOptimizer.tsx # Social optimization ├── AssetLibrary.tsx # Asset management ├── TemplateSelector.tsx # Template selection ├── ImageResultsGallery.tsx # Results display ├── EditImageUploader.tsx # Image upload ├── ImageMaskEditor.tsx # Mask creation ├── EditOperationsToolbar.tsx # Operation selection ├── EditResultViewer.tsx # Edit results ├── CostEstimator.tsx # Cost calculation └── ui/ # Shared UI components ├── GlassyCard.tsx ├── SectionHeader.tsx ├── StatusChip.tsx ├── LoadingSkeleton.tsx └── AsyncStatusBanner.tsx ``` ### Shared Components #### ImageStudioLayout **Purpose**: Consistent layout wrapper for all Image Studio modules **Features**: - Unified navigation - Consistent styling - Responsive design - Glassmorphic theme #### Shared UI Components - **GlassyCard**: Glassmorphic card component - **SectionHeader**: Consistent section headers - **StatusChip**: Status indicators - **LoadingSkeleton**: Loading states - **AsyncStatusBanner**: Async operation status ### React Hooks #### useImageStudio **Location**: `frontend/src/hooks/useImageStudio.ts` **Functions**: - `generateImage()`: Create images - `processEdit()`: Edit images - `processUpscale()`: Upscale images - `optimizeForSocial()`: Optimize for social platforms - `getPlatformFormats()`: Get platform formats - `loadEditOperations()`: Load available edit operations - `estimateCost()`: Estimate operation costs **State Management**: - Loading states - Error handling - Result caching - Cost tracking #### useContentAssets **Location**: `frontend/src/hooks/useContentAssets.ts` **Functions**: - `getAssets()`: Fetch assets with filters - `toggleFavorite()`: Mark/unmark favorites - `deleteAsset()`: Delete assets - `trackUsage()`: Track asset usage - `refetch()`: Refresh asset list ## Data Flow ### Image Generation Flow ```mermaid sequenceDiagram participant User participant Frontend participant API participant Manager participant Service participant Provider participant Storage User->>Frontend: Enter prompt, select template Frontend->>API: POST /api/image-studio/create API->>Manager: create_image(request) Manager->>Service: generate(request) Service->>Service: Select provider Service->>Service: Enhance prompt (optional) Service->>Provider: Generate image Provider-->>Service: Image result Service->>Storage: Save to asset library Service-->>Manager: Return result Manager-->>API: Return response API-->>Frontend: Return image data Frontend->>User: Display results ``` ### Image Editing Flow ```mermaid sequenceDiagram participant User participant Frontend participant API participant Manager participant Service participant Provider participant Storage User->>Frontend: Upload image, select operation Frontend->>API: POST /api/image-studio/edit API->>Manager: edit_image(request) Manager->>Service: process_edit(request) Service->>Service: Validate operation Service->>Service: Prepare inputs (mask, background, etc.) Service->>Provider: Execute edit operation Provider-->>Service: Edited image Service->>Storage: Save to asset library Service-->>Manager: Return result Manager-->>API: Return response API-->>Frontend: Return edited image Frontend->>User: Display results ``` ### Social Optimization Flow ```mermaid sequenceDiagram participant User participant Frontend participant API participant Manager participant Service participant Storage User->>Frontend: Upload image, select platforms Frontend->>API: POST /api/image-studio/social/optimize API->>Manager: optimize_for_social(request) Manager->>Service: optimize_image(request) Service->>Service: Load platform formats Service->>Service: Process each platform Service->>Service: Resize and crop Service->>Service: Apply safe zones (optional) Service->>Storage: Save optimized images Service-->>Manager: Return results Manager-->>API: Return response API-->>Frontend: Return optimized images Frontend->>User: Display results grid ``` ## Provider Integration ### Stability AI - **Endpoints**: Multiple endpoints for generation, editing, upscaling - **Authentication**: API key based - **Rate Limiting**: Credit-based system - **Error Handling**: Retry logic with exponential backoff ### WaveSpeed AI - **Endpoints**: Image generation (Ideogram V3, Qwen) - **Authentication**: API key based - **Rate Limiting**: Request-based - **Error Handling**: Standard HTTP error responses ### HuggingFace - **Endpoints**: FLUX model inference - **Authentication**: API token based - **Rate Limiting**: Free tier limits - **Error Handling**: Standard HTTP error responses ### Gemini - **Endpoints**: Imagen generation - **Authentication**: API key based - **Rate Limiting**: Quota-based - **Error Handling**: Standard HTTP error responses ## Asset Management ### Content Asset Service **Location**: `backend/services/content_asset_service.py` **Features**: - Automatic asset tracking - Search and filtering - Favorites management - Usage tracking - Bulk operations ### Asset Tracking **Location**: `backend/utils/asset_tracker.py` **Integration Points**: - Image Studio: All generated/edited images - Story Writer: Scene images, audio, videos - Blog Writer: Generated images - Other modules: All ALwrity tools ## Cost Management ### Cost Estimation - Pre-flight validation before operations - Real-time cost calculation - Credit system integration - Subscription tier validation ### Credit System - Operations consume credits based on complexity - Provider-specific credit costs - Quality level affects credit consumption - Batch operations aggregate costs ## Error Handling ### Backend Error Handling - Comprehensive error messages - Provider fallback logic - Retry mechanisms - Detailed logging ### Frontend Error Handling - User-friendly error messages - Retry options - Error state management - Graceful degradation ## Performance Optimization ### Backend - Async operations for long-running tasks - Caching for templates and platform specs - Connection pooling for providers - Efficient image processing ### Frontend - Lazy loading of components - Image optimization - Result caching - Debounced search ## Security ### Authentication - All endpoints require authentication - User ID validation - Subscription checks ### Data Protection - Secure API key storage - Base64 encoding for images - File validation - Size limits ## Testing ### Backend Testing - Unit tests for services - Integration tests for API endpoints - Provider mock testing - Error scenario testing ### Frontend Testing - Component unit tests - Hook testing - Integration tests - E2E tests for workflows ## Deployment ### Backend - FastAPI application - Environment-based configuration - Docker containerization - Health check endpoints ### Frontend - React application - Build optimization - CDN deployment - Route configuration --- *For API reference, see [API Reference](api-reference.md). For module-specific guides, see the individual module documentation.*