#!/usr/bin/env python3 """ Test script for Gemini 2.0 Flash Preview Image Enhancement Tests the new Gemini-based image enhancement functionality """ import os import sys import logging from image_enhancer import ImageEnhancer from PIL import Image import io # Set up logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def create_test_image(): """Create a simple test image for testing""" # Create a simple test image img = Image.new('RGB', (200, 200), color='lightblue') # Save to file test_image_path = "test_enhancement_image.jpg" img.save(test_image_path, 'JPEG') return test_image_path def test_gemini_enhancer(): """Test the Gemini image enhancer""" print("๐Ÿงช Testing Gemini Image Enhancement") print("=" * 50) # Check Gemini API key api_key = os.getenv('GEMINI_API_KEY') if not api_key: print("โŒ GEMINI_API_KEY not found in environment variables") print(" To enable Gemini enhancement:") print(" 1. Get API key from: https://makersuite.google.com/app/apikey") print(" 2. Set GEMINI_API_KEY environment variable") return False print(f"โœ… Gemini API key found") # Initialize enhancer try: print("1. Initializing Gemini Image Enhancer...") enhancer = ImageEnhancer() print(" โœ… Enhancer initialized successfully") except Exception as e: print(f" โŒ Failed to initialize enhancer: {e}") return False # Create test image print("\n2. Creating test image...") test_image_path = create_test_image() print(f" โœ… Test image created: {test_image_path}") # Test enhancement print("\n3. Testing image enhancement...") try: # Test with user preferences user_preferences = { "aesthetic": "Minimalist", "niche": "Business Professional", "target_audience": "Professionals" } print(" ๐Ÿ“ธ Starting enhancement with user preferences...") result = enhancer.enhance_image(test_image_path, user_preferences) if result['status'] == 'success': print(f" โœ… Enhancement completed successfully!") print(f" ๐Ÿ“Š Generated {result['total_generated']} enhanced images") # Show enhancement details for i, enhanced_img in enumerate(result['enhanced_images'], 1): print(f" Version {i}: {enhanced_img['image_path']}") print(f" Method: {enhanced_img.get('generation_method', 'unknown')}") print(f" Prompt: {enhanced_img['prompt'][:100]}...") # Show original analysis if 'original_image' in result and 'analysis' in result['original_image']: analysis = result['original_image']['analysis'] print(f"\n ๐Ÿ” Original Image Analysis:") print(f" Issues found: {analysis.get('issues_found', [])}") print(f" Quality: {analysis.get('overall_quality', 'unknown')}") print(f" Main subject: {analysis.get('main_subject', 'unknown')}") return True else: print(f" โŒ Enhancement failed: {result.get('error', 'Unknown error')}") return False except Exception as e: print(f" โŒ Enhancement test failed: {e}") import traceback traceback.print_exc() return False finally: # Clean up test image if os.path.exists(test_image_path): os.remove(test_image_path) print(f"\n ๐Ÿงน Cleaned up test image: {test_image_path}") def test_enhancement_prompts(): """Test the enhancement prompt generation""" print("\n4. Testing Enhancement Prompt Generation...") try: enhancer = ImageEnhancer() # Test analysis data test_analysis = { "issues_found": ["blurry areas", "poor lighting", "closed eyes"], "enhancement_priorities": ["fix blur", "improve lighting", "open eyes"], "overall_quality": "poor", "main_subject": "person", "background": "office", "lighting": "dim" } # Test user preferences user_preferences = { "aesthetic": "Y2K", "niche": "Fashion Influencer", "target_audience": "Gen Z" } prompts = enhancer._generate_enhancement_prompts(test_analysis, user_preferences) print(f" โœ… Generated {len(prompts)} enhancement prompts") for i, prompt in enumerate(prompts, 1): print(f"\n Prompt {i}:") print(f" {prompt[:150]}...") # Check for key requirements if "Do NOT alter personal appearance" in prompt: print(f" โœ… Contains personal appearance protection") if "fix" in prompt.lower() or "improve" in prompt.lower(): print(f" โœ… Focuses on fixing imperfections") return True except Exception as e: print(f" โŒ Prompt generation test failed: {e}") return False def main(): """Main test function""" print("๐Ÿš€ Viral Velocity - Gemini Image Enhancement Test") print("=" * 60) # Test enhancement functionality enhancement_ok = test_gemini_enhancer() # Test prompt generation prompt_ok = test_enhancement_prompts() print("\n" + "=" * 60) if enhancement_ok and prompt_ok: print("โœ… All tests completed successfully!") print("๐ŸŽ‰ Gemini 2.0 Flash Preview Image Enhancement is working correctly") print("๐Ÿ“ Key features verified:") print(" - Gemini API integration") print(" - Image analysis for enhancement opportunities") print(" - 5 different enhancement prompts") print(" - Personal appearance protection") print(" - Focus on fixing imperfections (blur, lighting, objects)") print(" - User preference integration") else: print("โŒ Some tests failed - check the logs above") print("๐Ÿ“ To fix issues:") print(" 1. Ensure GEMINI_API_KEY is set correctly") print(" 2. Check internet connection") print(" 3. Verify Gemini API access") if __name__ == "__main__": main()