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.
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 imagesGET /api/image-studio/templates- Get templatesGET /api/image-studio/templates/search- Search templatesGET /api/image-studio/templates/recommend- Get recommendationsGET /api/image-studio/providers- Get available providers
Edit Studio¶
POST /api/image-studio/edit- Edit imagesGET /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 platformsGET /api/image-studio/social/platforms/{platform}/formats- Get platform formats
Utility¶
POST /api/image-studio/estimate-cost- Estimate operation costsGET /api/image-studio/platform-specs/{platform}- Get platform specificationsGET /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¶
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¶
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¶
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. For module-specific guides, see the individual module documentation.