use tvai_sdk::*; fn main() -> Result<(), Box> { println!("Topaz Video AI SDK - Benchmarks Demo"); println!("==================================="); let sdk = TvaiSdk::new(); // Example 1: Image Enhancement Benchmarks println!("\n1. Image Enhancement Benchmarks:"); let enhancement_engines = vec![ ("Artemis", "alq-13", "Animation/Cartoon optimization"), ("Iris", "iris-3", "Low-light/Noise processing"), ("Proteus", "prob-4", "General purpose enhancement"), ("Gaia", "ghq-5", "Natural scene optimization"), ("Nyx", "nyx-2", "Noise reduction specialist"), ]; for (engine, model, description) in enhancement_engines { println!("\n {} Engine ({}):", engine, description); // Test different scales let scales = if engine == "Nyx" { vec![1, 2] } else { vec![1, 2, 4] }; for scale in scales { let template = TemplateBuilder::benchmark_template(engine, scale)?; let command = sdk.generate_ffmpeg_command(&template, "input.mp4", &format!("benchmark_{}_{}.mp4", engine.to_lowercase(), scale))?; println!(" {}X Scale: {}", scale, command); } } // Example 2: Specialized Enhancement Benchmarks println!("\n2. Specialized Enhancement Benchmarks:"); // Rhea - 4X only let rhea_template = TemplateBuilder::benchmark_template("rhea", 4)?; let rhea_command = sdk.generate_ffmpeg_command(&rhea_template, "input.mp4", "benchmark_rhea_4x.mp4")?; println!(" Rhea 4X (Specialized): {}", rhea_command); // RXL - 4X ultra-high quality let rxl_template = TemplateBuilder::benchmark_template("rxl", 4)?; let rxl_command = sdk.generate_ffmpeg_command(&rxl_template, "input.mp4", "benchmark_rxl_4x.mp4")?; println!(" RXL 4X (Ultra-HQ): {}", rxl_command); // Hyperion HDR - 1X only let hdr_template = TemplateBuilder::benchmark_template("hyperion", 1)?; let hdr_command = sdk.generate_ffmpeg_command(&hdr_template, "input.mp4", "benchmark_hdr.mp4")?; println!(" Hyperion HDR: {}", hdr_command); // Example 3: Frame Interpolation Benchmarks println!("\n3. Frame Interpolation Benchmarks:"); // 4X Slow Motion engines let slowmo_4x_engines = vec![ ("Apollo", "apo-8", "High quality interpolation"), ("APFast", "apf-1", "Fast interpolation"), ("Chronos", "chr-2", "Balanced quality/speed"), ("CHFast", "chf-3", "Fast interpolation"), ]; for (engine, model, description) in slowmo_4x_engines { let template = TemplateBuilder::new(&format!("Benchmark {} 4X Slowmo", engine)) .description(&format!("{} - 4X slow motion benchmark", description)) .enable_enhancement("prob-4") // Base enhancement .enable_frame_interpolation(model, 4.0) // 4X slow motion .benchmark_mode(true) .build()?; let command = sdk.generate_ffmpeg_command(&template, "input.mp4", &format!("benchmark_slowmo_{}_{}.mp4", engine.to_lowercase(), 4))?; println!(" {} 4X ({}): {}", engine, description, command); } // 16X Slow Motion - Aion only let aion_template = TemplateBuilder::new("Benchmark Aion 16X Slowmo") .description("Aion ultra-high slow motion benchmark") .enable_enhancement("prob-4") .enable_frame_interpolation("aion-1", 16.0) // 16X slow motion .benchmark_mode(true) .build()?; let aion_command = sdk.generate_ffmpeg_command(&aion_template, "input.mp4", "benchmark_slowmo_aion_16x.mp4")?; println!(" Aion 16X (Ultra-slow): {}", aion_command); // Example 4: Performance Comparison Templates println!("\n4. Performance Comparison Templates:"); // Compare different engines at 2X scale println!(" 2X Upscaling Comparison:"); let comparison_engines = vec!["Artemis", "Iris", "Proteus", "Gaia"]; for engine in comparison_engines { let template = TemplateBuilder::benchmark_template(engine, 2)?; let command = sdk.generate_ffmpeg_command(&template, "test_input.mp4", &format!("compare_2x_{}.mp4", engine.to_lowercase()))?; println!(" {}: {}", engine, command); } // Example 5: Benchmark Mode Features println!("\n5. Benchmark Mode Features:"); let normal_template = TemplateBuilder::new("Normal Template") .description("Normal processing template") .enable_enhancement("prob-4") .enhancement_params(25, 30, 20) .enable_stabilization(60, 1) .audio_settings("aac", 192, 2) .build()?; let benchmark_template = TemplateBuilder::new("Benchmark Template") .description("Benchmark mode template") .enable_enhancement("prob-4") .enhancement_params(0, 0, 0) // No additional processing .benchmark_mode(true) // Disables non-essential features .build()?; println!(" Normal Template Features:"); println!(" Stabilization: {}", normal_template.settings.stabilize.active); println!(" Grain: {}", normal_template.settings.grain.active); println!(" Audio: {}", normal_template.settings.output.audio_codec.is_some()); println!(" Benchmark Template Features:"); println!(" Stabilization: {}", benchmark_template.settings.stabilize.active); println!(" Grain: {}", benchmark_template.settings.grain.active); println!(" Audio: {}", benchmark_template.settings.output.audio_codec.is_some()); let normal_command = sdk.generate_ffmpeg_command(&normal_template, "input.mp4", "normal_output.mp4")?; let benchmark_command = sdk.generate_ffmpeg_command(&benchmark_template, "input.mp4", "benchmark_output.mp4")?; println!(" Normal Command: {}", normal_command); println!(" Benchmark Command: {}", benchmark_command); // Example 6: Engine Capabilities Summary println!("\n6. Engine Capabilities Summary:"); println!(" šŸ“Š Scaling Capabilities:"); println!(" Artemis: 1X āœ… 2X āœ… 4X āœ… (Animation optimized)"); println!(" Iris: 1X āœ… 2X āœ… 4X āœ… (Low-light optimized)"); println!(" Proteus: 1X āœ… 2X āœ… 4X āœ… (General purpose)"); println!(" Gaia: 1X āœ… 2X āœ… 4X āœ… (Natural scenes)"); println!(" Nyx: 1X āœ… 2X āœ… 4X āŒ (Noise reduction)"); println!(" Nyx Fast: 1X āœ… 2X āŒ 4X āŒ (Fast noise reduction)"); println!(" Rhea: 1X āŒ 2X āŒ 4X āœ… (Specialized 4X)"); println!(" RXL: 1X āŒ 2X āŒ 4X āœ… (Ultra-high quality 4X)"); println!(" Hyperion: 1X āœ… 2X āŒ 4X āŒ (HDR processing)"); println!("\n šŸŽ¬ Frame Interpolation:"); println!(" Apollo: 4X Slowmo āœ… (High quality)"); println!(" APFast: 4X Slowmo āœ… (Fast processing)"); println!(" Chronos: 4X Slowmo āœ… (Balanced)"); println!(" CHFast: 4X Slowmo āœ… (Fast processing)"); println!(" Aion: 16X Slowmo āœ… (Ultra-slow motion)"); println!("\n šŸŽÆ Recommended Use Cases:"); println!(" • Animation/Cartoons: Artemis"); println!(" • Low-light footage: Iris"); println!(" • General content: Proteus"); println!(" • Nature/Landscapes: Gaia"); println!(" • Noisy footage: Nyx/Nyx Fast"); println!(" • Maximum 4X quality: RXL"); println!(" • HDR content: Hyperion"); println!(" • Slow motion: Apollo/Chronos"); println!(" • Ultra-slow motion: Aion"); println!("\nāœ… Benchmarks demo completed successfully!"); println!("\nKey Features Demonstrated:"); println!(" • Comprehensive AI engine benchmarking"); println!(" • Scale-specific performance testing"); println!(" • Frame interpolation benchmarks"); println!(" • Benchmark mode optimization"); println!(" • Engine capability comparison"); println!(" • Performance-focused command generation"); Ok(()) }