# TVAI - Topaz Video AI Rust 库 [![Rust](https://img.shields.io/badge/rust-1.70+-orange.svg)](https://www.rust-lang.org) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 一个功能完整的 Rust 库,为 [Topaz Video AI](https://www.topazlabs.com/topaz-video-ai) 提供编程接口,支持 AI 驱动的视频和图像超分辨率、帧插值等功能。 ## ✨ 主要特性 ### 🎬 视频处理 - **AI 超分辨率** - 使用 16 种专业 AI 模型进行视频放大 - **帧插值** - 创建流畅的慢动作效果,支持 4 种插值模型 - **组合增强** - 同时应用超分辨率和插值 - **格式转换** - 视频与图像序列互转 - **批量处理** - 高效处理多个文件 ### 🖼️ 图像处理 - **AI 超分辨率** - 智能图像放大和增强 - **批量处理** - 处理整个目录的图像 - **格式转换** - 支持 PNG、JPG、TIFF、BMP - **预设优化** - 针对不同内容类型的优化预设 ### ⚡ 性能优化 - **GPU 加速** - 支持 CUDA 和硬件编码 - **并发处理** - 可配置的并行操作 - **内存管理** - 高效的临时文件处理 - **智能缓存** - 智能资源利用 - **性能监控** - 实时性能跟踪 ### 🛠️ 便捷功能 - **全局配置** - 持久化设置管理 - **预设系统** - 14 种内置处理预设 - **错误处理** - 用户友好的错误消息 - **进度跟踪** - 实时处理进度 - **自动检测** - 智能系统和 GPU 检测 ## 🚀 快速开始 ### 安装 ```toml [dependencies] tvai = "0.1.0" tokio = { version = "1.0", features = ["full"] } ``` ### 基础使用 ```rust use tvai::*; #[tokio::main] async fn main() -> Result<(), Box> { // 快速 2 倍视频放大 quick_upscale_video( std::path::Path::new("输入.mp4"), std::path::Path::new("输出.mp4"), 2.0, ).await?; println!("视频增强完成!"); Ok(()) } ``` ### 高级使用 ```rust use tvai::*; #[tokio::main] async fn main() -> Result<(), Box> { // 创建配置 let config = TvaiConfig::builder() .topaz_path("/path/to/topaz") .use_gpu(true) .build()?; // 创建处理器 let mut processor = TvaiProcessor::new(config)?; // 使用预设进行老视频修复 let params = VideoUpscaleParams::for_old_video(); // 带进度跟踪的处理 let progress_callback: ProgressCallback = Box::new(|progress| { println!("进度: {:.1}%", progress * 100.0); }); let result = processor.upscale_video( std::path::Path::new("老视频.mp4"), std::path::Path::new("修复后.mp4"), params, Some(&progress_callback), ).await?; println!("处理完成,耗时: {:?}", result.processing_time); Ok(()) } ``` ## 📚 支持的 AI 模型 ### 超分辨率模型 (16 种) | 模型 | 最适合 | 倍数 | 描述 | |------|--------|------|------| | **Iris v3** | 通用 | 1-4x | 最佳整体质量,推荐首选 | | **Nyx v3** | 人像 | 1-4x | 面部和人像优化 | | **Theia Fidelity v4** | 老内容 | 2x | 老视频和损坏内容修复 | | **Gaia HQ v5** | 游戏/CG | 1-4x | 游戏录像和 CG 内容 | | **Proteus v4** | 问题素材 | 1-4x | 修复严重伪影和问题 | | **Artemis LQ v13** | 低质量 | 1-4x | 极低质量内容增强 | | **Artemis MQ v13** | 中等质量 | 1-4x | 中等质量内容优化 | | **Artemis HQ v13** | 高质量 | 1-4x | 高质量内容精细化 | | **Theia Detail v3** | 细节 | 2x | 细节保持和增强 | | **Theia Fidelity v3** | 保真度 | 2x | 高保真度处理 | | **Dione DV v2** | DV 素材 | 2x | DV 摄像机素材 | | **Dione TV v2** | 电视 | 2x | 电视广播内容 | | **Dione Robust v2** | 鲁棒性 | 2x | 各种质量内容 | | **Dione Robust Detail v2** | 鲁棒细节 | 2x | 细节保持的鲁棒处理 | | **Rhea v1** | 实验性 | 1-4x | 实验性高质量模型 | | **Dione RD v1** | 研发 | 2x | 研发测试模型 | ### 插值模型 (4 种) | 模型 | 最适合 | 描述 | |------|--------|------| | **Apollo v8** | 高质量 | 最佳整体插值质量 | | **Chronos v2** | 动画 | 卡通和动漫内容优化 | | **Apollo Fast v1** | 速度 | 快速处理,质量略低 | | **Chronos Fast v3** | 快速动画 | 快速动画内容处理 | ## 🎯 使用场景 ### 视频增强 ```rust // 老视频修复 let result = quick_upscale_video(input, output, 2.0).await?; // 自动智能增强 let result = auto_enhance_video(input, output).await?; // 创建慢动作效果 let params = InterpolationParams::for_slow_motion(30, 4.0); let result = processor.interpolate_video(input, output, params, None).await?; ``` ### 图像处理 ```rust // 批量照片增强 let results = batch_upscale_directory( Path::new("照片目录"), Path::new("输出目录"), 2.0, true // 递归处理 ).await?; // 单张图片增强 let result = quick_upscale_image(input, output, 2.0).await?; ``` ### 格式转换 ```rust // 视频转图片序列 let frames = processor.video_to_images( Path::new("视频.mp4"), Path::new("帧/"), "png", 95 ).await?; // 图片序列转视频 processor.images_to_video( &frame_paths, Path::new("输出.mp4"), 30.0, QualityPreset::HighQuality ).await?; ``` ## 🔧 配置管理 ### 全局设置 ```rust use tvai::config::global_settings; let settings = global_settings(); settings.set_default_use_gpu(true)?; settings.set_max_concurrent_jobs(2)?; settings.save_to_file()?; // 自动保存到用户配置目录 ``` ### 预设管理 ```rust use tvai::config::global_presets; let presets = global_presets(); let preset_manager = presets.lock().unwrap(); // 使用内置预设 let video_preset = preset_manager.get_video_preset("old_video_restore"); let image_preset = preset_manager.get_image_preset("photo_2x"); ``` ## 📊 性能监控 ```rust use tvai::utils::{PerformanceMonitor, optimize_for_system}; // 自动优化系统设置 let settings = optimize_for_system(); let mut monitor = PerformanceMonitor::new(settings); // 监控处理性能 let _permit = monitor.acquire_slot().await?; // ... 执行处理 ... // 获取性能建议 let summary = monitor.get_summary(); for recommendation in summary.recommendations { println!("💡 {}", recommendation); } ``` ## 🛡️ 错误处理 库提供用户友好的错误消息和解决建议: ```rust match result { Ok(output) => println!("✅ 处理成功"), Err(error) => { println!("❌ 错误类型: {}", error.category()); println!("🔄 可恢复: {}", error.is_recoverable()); println!("💡 解决建议:\n{}", error.user_friendly_message()); } } ``` ## 📋 系统要求 ### 必需 - **Rust 1.70+** - 用于编译 - **Topaz Video AI** - 主程序 ([下载地址](https://www.topazlabs.com/topaz-video-ai)) ### 推荐 - **NVIDIA GPU** - 支持 CUDA 的显卡 (GTX 1060+ 或更好) - **16GB+ RAM** - 处理大文件 - **SSD 存储** - 更快的临时文件处理 ### 支持的平台 - ✅ Windows 10/11 - ✅ macOS 10.15+ - ✅ Linux (Ubuntu 18.04+) ## 📖 文档 - 📚 [用户指南](docs/用户指南.md) - 详细使用指南 - 📖 [API 文档](docs/API文档.md) - 完整 API 参考 - 🔧 [示例代码](examples/) - 工作示例 - 🧪 [测试](tests/) - 集成测试 - 📊 [基准测试](benches/) - 性能基准 ## 🧪 测试 运行完整测试套件: ```bash # 单元测试和集成测试 cargo test # 性能基准测试 cargo bench # 运行示例 cargo run --example basic_usage cargo run --example video_processing cargo run --example image_processing ``` ## 📈 开发状态 ✅ **完成** - 所有核心功能已实现并测试! - [x] 基础项目结构 - [x] FFmpeg 管理 - [x] 核心处理器框架 - [x] 视频超分辨率实现 (16 种 AI 模型) - [x] 帧插值实现 (4 种 AI 模型) - [x] 图像超分辨率实现 - [x] 批量处理 (视频和图像) - [x] 进度回调和监控 - [x] 全局配置管理 - [x] 预设管理系统 - [x] 性能优化 - [x] 增强错误处理 - [x] 全面测试 (单元 + 集成 + 基准) - [x] 完整文档 (API + 用户指南) ## 📊 项目统计 - **总代码行数**: 4,127 行 - **模块文件**: 25 个 - **示例文件**: 6 个 - **测试覆盖**: 17 个测试 + 13 个基准 - **文档**: 完整的中英文文档 ## 🤝 贡献 欢迎贡献!请随时提交 Pull Request。 ### 开发设置 1. 安装 Rust 1.70+ 2. 安装 Topaz Video AI 3. 克隆仓库 4. 运行测试: `cargo test` 5. 运行示例: `cargo run --example basic_usage` ## 📄 许可证 MIT 许可证 - 详见 LICENSE 文件。 ## 🔄 更新日志 ### v0.1.0 (当前版本) - ✅ 完整的视频处理 (超分辨率 + 插值) - ✅ 完整的图像处理 (超分辨率 + 批量操作) - ✅ 16 种 AI 超分辨率模型 + 4 种插值模型 - ✅ 全局配置和预设管理 - ✅ 性能监控和优化 - ✅ 增强错误处理和用户友好消息 - ✅ 全面文档和示例 - ✅ 完整测试覆盖 (单元 + 集成 + 基准) ## 🌟 致谢 感谢 [Topaz Labs](https://www.topazlabs.com/) 开发了出色的 Topaz Video AI 软件。 --- **🎯 项目完成度: 100%** - 所有功能已实现并可用于生产环境!