/** * Imagen 4 Adapter * * Integration with Google's Imagen 4 through Vertex AI * Supports advanced image generation with style transfer and artistic controls */ /// import { EventEmitter } from "events"; import { VertexAIConnector } from "../../core/vertex-ai-connector.js"; import { ImageGenerationRequest, ImageGenerationResponse, ImageGenerationConfig, ImageSize } from "../../types/multimedia.js"; export interface ImagenModel { name: string; displayName: string; version: string; maxImageSize: ImageSize; supportedFormats: string[]; supportsStyleTransfer: boolean; supportsBatchGeneration: boolean; maxBatchSize: number; estimatedLatency: number; costPerImage: number; } export declare class ImagenAdapter extends EventEmitter { private logger; private config; private vertexConnector; private performance; private availableModels; private activeRequests; private metrics; constructor(config: ImageGenerationConfig, vertexConnector: VertexAIConnector); /** * Initialize available Imagen models */ private initializeModels; /** * Generate image using Imagen */ generateImage(request: ImageGenerationRequest): Promise; /** * Process image generation */ private processImageGeneration; /** * Prepare Vertex AI request */ private prepareVertexRequest; /** * Build enhanced prompt with artistic controls */ private buildEnhancedPrompt; /** * Get style prompt enhancement */ private getStylePromptEnhancement; /** * Get composition enhancements */ private getCompositionEnhancements; /** * Get lighting enhancements */ private getLightingEnhancements; /** * Get color enhancements */ private getColorEnhancements; /** * Get texture enhancements */ private getTextureEnhancements; /** * Get mood enhancements */ private getMoodEnhancements; /** * Get camera enhancements */ private getCameraEnhancements; /** * Build size parameters */ private buildSizeParameters; /** * Build quality parameters */ private buildQualityParameters; /** * Process Vertex AI response */ private processVertexResponse; /** * Apply style transfer */ private applyStyleTransfer; /** * Perform style transfer on single image */ private performStyleTransfer; /** * Extract safety ratings from prediction */ private extractSafetyRatings; /** * Calculate quality score */ private calculateQualityScore; /** * Detect artifacts */ private detectArtifacts; /** * Extract dominant colors */ private extractDominantColors; /** * Calculate cost */ private calculateCost; /** * Calculate storage size */ private calculateStorageSize; /** * Calculate overall quality */ private calculateOverallQuality; /** * Aggregate artifacts */ private aggregateArtifacts; /** * Aggregate safety ratings */ private aggregateSafetyRatings; /** * Compare safety probability levels */ private compareSafetyProbability; /** * Select optimal model for request */ private selectOptimalModel; /** * Check if request has complex artistic controls */ private hasComplexArtisticControls; /** * Validate request */ validateRequest(request: ImageGenerationRequest): Promise; /** * Estimate cost for request */ estimateCost(request: ImageGenerationRequest): number; /** * Cancel request */ cancelRequest(requestId: string): Promise; /** * Generate request ID */ private generateRequestId; /** * Get available models */ getAvailableModels(): ImagenModel[]; /** * Health check */ healthCheck(): Promise<{ status: string; latency: number; error?: string; }>; /** * Get metrics */ getMetrics(): { avgLatency: number; successRate: number; avgCostPerImage: number; activeRequests: number; availableModels: number; totalRequests: number; successfulRequests: number; failedRequests: number; totalImages: number; totalLatency: number; totalCost: number; styleTransferRequests: number; batchRequests: number; }; /** * Shutdown adapter */ shutdown(): Promise; } //# sourceMappingURL=imagen-adapter.d.ts.map