use tvai_sdk::*; fn main() -> Result<(), Box> { println!("Topaz Video AI SDK - AI Engines Demo"); println!("==================================="); let sdk = TvaiSdk::new(); // Example 1: Animation Enhancement with Artemis println!("\n1. Animation Enhancement (Artemis AI):"); let animation_template = TemplatePresets::animation_enhance()?; println!(" Template: {}", animation_template.name); println!(" Description: {}", animation_template.description); println!(" AI Engine Flags:"); println!(" Artemis: {}", animation_template.settings.enhance.is_artemis); println!(" Gaia: {}", animation_template.settings.enhance.is_gaia); println!(" Theia: {}", animation_template.settings.enhance.is_theia); println!(" Proteus: {}", animation_template.settings.enhance.is_proteus); println!(" Iris: {}", animation_template.settings.enhance.is_iris); let animation_command = sdk.generate_ffmpeg_command(&animation_template, "anime_input.mp4", "anime_enhanced.mp4")?; println!(" Command:"); println!(" {}", animation_command); // Example 2: Natural Scene Enhancement with Gaia println!("\n2. Natural Scene Enhancement (Gaia AI):"); let nature_template = TemplatePresets::natural_scene_enhance()?; println!(" Template: {}", nature_template.name); println!(" AI Engine: Gaia (is_gaia: {})", nature_template.settings.enhance.is_gaia); let nature_command = sdk.generate_ffmpeg_command(&nature_template, "landscape_input.mp4", "landscape_enhanced.mp4")?; println!(" Command:"); println!(" {}", nature_command); // Example 3: Detail Recovery with Theia println!("\n3. Detail Recovery (Theia AI):"); let detail_template = TemplatePresets::detail_recovery()?; println!(" Template: {}", detail_template.name); println!(" AI Engine: Theia (is_theia: {})", detail_template.settings.enhance.is_theia); println!(" Focus Fix Level: {}", detail_template.settings.enhance.focus_fix_level.as_ref().unwrap_or(&"Off".to_string())); println!(" Second Enhancement: {}", detail_template.settings.enhance.is_second_enhancement.unwrap_or(false)); if let Some(ref fm) = detail_template.settings.filter_manager { println!(" Second Enhancement Enabled: {}", fm.second_enhancement_enabled); println!(" Intermediate Resolution: {}", fm.second_enhancement_intermediate_resolution); } let detail_command = sdk.generate_ffmpeg_command(&detail_template, "blurry_input.mp4", "detail_recovered.mp4")?; println!(" Command:"); println!(" {}", detail_command); // Example 4: Low Light Enhancement with Iris println!("\n4. Low Light Enhancement (Iris AI):"); let lowlight_template = TemplatePresets::low_light_enhance()?; println!(" Template: {}", lowlight_template.name); println!(" AI Engine: Iris (is_iris: {})", lowlight_template.settings.enhance.is_iris); println!(" Focus Fix Level: {}", lowlight_template.settings.enhance.focus_fix_level.as_ref().unwrap_or(&"Off".to_string())); let lowlight_command = sdk.generate_ffmpeg_command(&lowlight_template, "dark_input.mp4", "lowlight_enhanced.mp4")?; println!(" Command:"); println!(" {}", lowlight_command); // Example 5: General Purpose with Proteus println!("\n5. General Purpose (Proteus AI):"); let general_template = TemplatePresets::general_purpose_proteus()?; println!(" Template: {}", general_template.name); println!(" AI Engine: Proteus (is_proteus: {})", general_template.settings.enhance.is_proteus); let general_command = sdk.generate_ffmpeg_command(&general_template, "general_input.mp4", "general_enhanced.mp4")?; println!(" Command:"); println!(" {}", general_command); // Example 6: Custom Template with AI Engine Selection println!("\n6. Custom Template with AI Engine Selection:"); let custom_template = TemplateBuilder::new("Custom AI Engine Demo") .description("Custom template demonstrating AI engine selection") .enable_enhancement("prob-4") .enhancement_params(30, 25, 15) .ai_engine("gaia") // Switch to Gaia for this content .focus_fix_level("Low") // Add focus fix .resolution(2560, 1440) // 1440p .video_codec("libx265", Some(22)) .build()?; println!(" Template: {}", custom_template.name); println!(" Selected AI Engine: Gaia"); println!(" Engine Flags:"); println!(" Artemis: {}", custom_template.settings.enhance.is_artemis); println!(" Gaia: {}", custom_template.settings.enhance.is_gaia); println!(" Theia: {}", custom_template.settings.enhance.is_theia); println!(" Proteus: {}", custom_template.settings.enhance.is_proteus); println!(" Iris: {}", custom_template.settings.enhance.is_iris); let custom_command = sdk.generate_ffmpeg_command(&custom_template, "input.mp4", "custom_output.mp4")?; println!(" Command:"); println!(" {}", custom_command); // Example 7: AI Engine Comparison println!("\n7. AI Engine Comparison for Same Content:"); let base_params = (25, 20, 10); // denoise, detail, sharpen // Create templates with different AI engines let artemis_comp = TemplateBuilder::new("Artemis Comparison") .enable_enhancement("prob-4") .enhancement_params(base_params.0, base_params.1, base_params.2) .ai_engine("artemis") .build()?; let gaia_comp = TemplateBuilder::new("Gaia Comparison") .enable_enhancement("prob-4") .enhancement_params(base_params.0, base_params.1, base_params.2) .ai_engine("gaia") .build()?; let theia_comp = TemplateBuilder::new("Theia Comparison") .enable_enhancement("prob-4") .enhancement_params(base_params.0, base_params.1, base_params.2) .ai_engine("theia") .build()?; let artemis_cmd = sdk.generate_ffmpeg_command(&artemis_comp, "test.mp4", "test_artemis.mp4")?; let gaia_cmd = sdk.generate_ffmpeg_command(&gaia_comp, "test.mp4", "test_gaia.mp4")?; let theia_cmd = sdk.generate_ffmpeg_command(&theia_comp, "test.mp4", "test_theia.mp4")?; println!(" Artemis (Animation optimized):"); println!(" {}", artemis_cmd); println!("\n Gaia (Natural scenes optimized):"); println!(" {}", gaia_cmd); println!("\n Theia (Detail recovery optimized):"); println!(" {}", theia_cmd); println!("\nāœ… AI Engines demo completed successfully!"); println!("\nAI Engine Summary:"); println!(" šŸŽØ Artemis - Best for animation, cartoons, and stylized content"); println!(" 🌿 Gaia - Best for natural scenes, landscapes, and organic content"); println!(" šŸ” Theia - Best for detail recovery, sharpening, and restoration"); println!(" 🌟 Proteus - General purpose, works well with most real-world content"); println!(" šŸŒ™ Iris - Best for low light, noisy, and challenging footage"); println!("\nFeatures Demonstrated:"); println!(" • AI engine flag management"); println!(" • Engine-specific parameter optimization"); println!(" • Focus fix level configuration"); println!(" • Second enhancement with intermediate resolution"); println!(" • Model-specific FFmpeg parameter generation"); Ok(()) }